[pdal] Surface modeling

Andrew Bell andrew.bell.ia at gmail.com
Thu Apr 29 14:38:53 PDT 2021


For the record, I ran the posted pipeline with no error.

On Thu, Apr 29, 2021 at 5:21 PM Bradley Chambers <brad.chambers at gmail.com>
wrote:

> This may be an error. Do please open a ticket. Still, check your output. I
> think I saw this too and noted that it wasn’t actually a fatal error, and
> that I actually got the output I expected. Something that needs to be
> cleaned up regardless.
>
> On Thu, Apr 29, 2021 at 16:15 Andrew Bell <andrew.bell.ia at gmail.com>
> wrote:
>
>> Andreas,
>>
>> You'd need to open a ticket and include your exact pipeline in order to
>> debug this, but I suspect there is an error in your syntax. Still, the
>> error you're getting seems odd.
>>
>> On Thu, Apr 29, 2021 at 5:01 PM Andreas Yankopolus <andreas at yank.to>
>> wrote:
>>
>>> Bradley,
>>>
>>> Thanks for your example pipeline. Running it here with pdal 2.2.0, it
>>> prints “Parser error = !” when sent a pipeline with these statements. I’ve
>>> tracked the error messages to the blocks with "Classification = 6 WHERE …”
>>> and "Classification = 4 WHERE  …”.
>>>
>>> These blocks look valid based one the filters.assign description:
>>> https://pdal.io/stages/filters.assign.html
>>>
>>> For generating the surface height raster, I’d think to write the point
>>> with the highest Z value for the raster pixel. For surface type, perhaps
>>> label the raster pixel with the most common point classification. I’ll post
>>> a first cut.
>>>
>>> Cheers,
>>>
>>> Andreas
>>>
>>>
>>> On Apr 28, 2021, at 11:44, Bradley Chambers <brad.chambers at gmail.com>
>>> wrote:
>>>
>>> On Wed, Apr 28, 2021 at 9:34 AM Howard Butler <howard at hobu.co> wrote:
>>>
>>>>
>>>> > On Apr 27, 2021, at 4:11 PM, Andreas Yankopolus <andreas at yank.to>
>>>> wrote:
>>>>
>>>> > Is there previous work in these areas that I can build on with PDAL?
>>>> I’m also looking at LAStools, which appears to have binaries that could be
>>>> replicated with PDAL pipelines.
>>>>
>>>> I like to say that "PDAL is something you can use to build LAStools"
>>>> about its scope in relation to that product. PDAL isn't pre-canned
>>>> workflows for attacking a few kinds of LiDAR processing challenges. It's a
>>>> bunch of building blocks for processing point cloud data in the context of
>>>> ETL pipelines.
>>>>
>>>> That said, once constructed, those workflows can be quite valuable.
>>>> Fancy classification pipelines haven't typically been shared freely,
>>>> however.
>>>
>>>
>>> Your mileage will certainly vary, but one pipeline that was derived from
>>> this notebook (
>>> https://github.com/rockestate/point-cloud-processing/blob/master/notebooks/point-cloud-processing.ipynb)
>>> is shared below. It classifies noise, ground, vegetation, and building
>>> returns. In my experience, it does a reasonable job but can still require
>>> fine tuning of the parameters.
>>>
>>> [
>>>     {
>>>         "type": "filters.assign",
>>>         "assignment": "Classification[:]=0"
>>>     },
>>>     {
>>>         "type": "filters.elm"
>>>     },
>>>     {
>>>         "type": "filters.smrf",
>>>         "where": "Classification != 7"
>>>     },
>>>     {
>>>         "type": "filters.hag_delaunay"
>>>     },
>>>     {
>>>         "type": "filters.outlier",
>>>         "multiplier": 16,
>>>         "class": 18,
>>>         "where": "!(Classification==2 || Classification==7)"
>>>     },
>>>     {
>>>         "type": "filters.approximatecoplanar",
>>>         "where": "HeightAboveGround >= 2 && !(Classification==2 ||
>>> Classification==7 || Classification==18)"
>>>     },
>>>     {
>>>         "type": "filters.outlier",
>>>         "class": 18,
>>>         "where": "!(Classification==2 || Classification==7 ||
>>> Classification==18) && Coplanar == 1"
>>>     },
>>>     {
>>>         "type": "filters.assign",
>>>         "value": "Classification=6 WHERE (Coplanar == 1 &&
>>> !(Classification == 7 || Classification==18))"
>>>     },
>>>     {
>>>         "type": "filters.covariancefeatures",
>>>         "mode": "normalized",
>>>         "feature_set": "Dimensionality",
>>>         "knn": 45
>>>     },
>>>     {
>>>         "type": "filters.assign",
>>>         "value": "Classification=4 WHERE (!(Classification==2 ||
>>> Classification==6) && HeightAboveGround >= 3.0 && Planarity < 0.8 &&
>>> Scattering > 0.1 && Verticality > 0.1)"
>>>     }
>>> ]
>>>
>>>
>>> _______________________________________________
>>> pdal mailing list
>>> pdal at lists.osgeo.org
>>> https://lists.osgeo.org/mailman/listinfo/pdal
>>>
>>
>>
>> --
>> Andrew Bell
>> andrew.bell.ia at gmail.com
>>
>

-- 
Andrew Bell
andrew.bell.ia at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20210429/ebc9783e/attachment.html>


More information about the pdal mailing list