[pdal] Extract terrain from TLS point cloud

Silvia Franceschi silvia.franceschi at gmail.com
Sun May 26 08:05:19 PDT 2019


Thank you all for the clarifications,
I guessed that mixing different variables with conditions was not possible
wth the ferry and assign filters, I definitely tried but no success... and
you confirmed me this.

So the best way to do this is finally to write the variables to a new LAS,
then work with an externa program on the assignments between one variable
and the other and then come back to PDAL with the modified LAS to do the
final operations?

Really thanks for the help!

Silvia



On Sun, May 26, 2019 at 4:16 PM Bradley Chambers <brad.chambers at gmail.com>
wrote:

> You are also not going to be able to do the conditional assignment and
> ferry approaches you are attempting. Please read the documentation
> carefully for each of these filters. Ferry can either create a new
> dimension or copy one dimension to another. Assignment can assign a static
> value to a range in a single dimension, but cannot mix dimensions (i.e.,
> assign classification = 2 where normalZ = whatever). Luigi's pipelines have
> solved this problem using either Python filters are through using the tag
> and inputs options to create more complex pipelines.
>
> On Sun, May 26, 2019 at 10:06 AM <michael.smith.erdc at gmail.com> wrote:
>
>> Yes, you can use the new dimensions in filters after the ferry filter.
>> You just can’t persist them in the output file without the extra dims
>> parameter as they are not standard las dimensions.
>>
>> Michael Smith
>> RSGIS center
>> US Army Corps
>>
>> On May 26, 2019, at 9:46 AM, Silvia Franceschi <
>> silvia.franceschi at gmail.com> wrote:
>>
>> Thank you Luigi,
>> so the only possibility to access to the values of NormalZ is by writing
>> them into the LAS?
>> The documentation says: "The filter produces four new dimensions
>> (NormalX, NormalY, NormalZ, and Curvature), which can be analyzed directly,
>> or consumed by downstream stages for more advanced filtering."
>>
>> Is it possible to access these new variables via pipeline without writing
>> and reading them from LAS?
>>
>> Thanks
>>
>> Silvia
>>
>>
>>
>>
>> On Sun, May 26, 2019 at 10:38 AM Luigi Pirelli <luipir at gmail.com> wrote:
>>
>>> writer LAS does not write automatically any field that is not specified
>>> by LAS format => extra_dims option of writers.las have to be set... eg.
>>> "extra_dims":"all"
>>>
>>> cheers
>>>
>>> Luigi Pirelli
>>>
>>>
>>> **************************************************************************************************
>>> * LinkedIn: https://www.linkedin.com/in/luigipirelli
>>> * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
>>> * GitHub: https://github.com/luipir
>>> * Mastering QGIS 2nd Edition:
>>> *
>>> https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition
>>> * Hire me: http://goo.gl/BYRQKg
>>>
>>> **************************************************************************************************
>>>
>>>
>>> On Sat, 25 May 2019 at 22:40, Silvia Franceschi <
>>> silvia.franceschi at gmail.com> wrote:
>>>
>>>> Sorry Luigi...
>>>> I realized that the filter to use is the filter.ferry with a pipeline
>>>> like this:
>>>>  {
>>>>             "type":"filters.ferry",
>>>>             "dimensions":"NormalZ[0:6]=>Classification[2]"
>>>>     },
>>>> or at least, I guess because now I have the problem that the NormalZ
>>>> field do not exist. So my question is: should I write the file after
>>>> filter.normal to have this field or is it possible to use it in the same
>>>> pipeline? from the documentation it seems that it should be possible but I
>>>> can not find an example or something which could help...
>>>> If I have to write the file, should I specify also to insert the
>>>> NormalZ field or is it automatic?
>>>>
>>>> Thank you in advance for the help!
>>>>
>>>> Best regards
>>>>
>>>> Silvia
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, May 25, 2019 at 10:16 PM Silvia Franceschi <
>>>> silvia.franceschi at gmail.com> wrote:
>>>>
>>>>> Dear Luigi,
>>>>> finally I could start to work again on the DTM extraction and I was
>>>>> trying to apply the same commands as in your slides.
>>>>> Unfortunately I am not so smart to understand how to do this kind of
>>>>> assignment in a PDAL pipeline:
>>>>>
>>>>> - normalZ [0:0.6] : Classification ->1
>>>>> - normalZ ! [0:0.6] : Classification ->2
>>>>> - merge soil / no soil
>>>>>
>>>>> I tried using the filter.assign but it seems that I can not assign
>>>>> values of a field while filtering on an other field.
>>>>> And also I can not understand what you mean with merge soil/no soil...
>>>>>
>>>>> The pipeline I did is like this:
>>>>>
>>>>> {
>>>>>     "pipeline": [
>>>>> {
>>>>>             "type": "readers.las",
>>>>>             "filename":"aaa.las"
>>>>>         },
>>>>> {
>>>>>             "type":"filters.range",
>>>>>             "limits":"Classification[2:2]"
>>>>>         },
>>>>> {
>>>>>             "type":"filters.normal",
>>>>>             "knn": 30
>>>>>     },
>>>>> {
>>>>>             "type":"filters.assign",
>>>>>             "assignment" : "normalZ[0:6]=Classification[2]",
>>>>>             "assignment" : "normalZ[0:6]!=Classification[1]"
>>>>>     },
>>>>>         {
>>>>>             "type": "writers.las",
>>>>>             "filename":"bbb.las"
>>>>>         }
>>>>>     ]
>>>>> }
>>>>>
>>>>> Could you please address me to the right commands to use to finalize
>>>>> the pipeline?
>>>>>
>>>>> Thank you for the big help!
>>>>>
>>>>> Best regards
>>>>>
>>>>> Silvia
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, May 13, 2019 at 9:24 AM Luigi Pirelli <luipir at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> we had similar problems with TLS in urban context regarding first
>>>>>> part pf the cars
>>>>>> you can see our strategy to clean the first PMF effect in slides from
>>>>>> http://slides.com/darango/deck-10-11-12-11-12#/11
>>>>>> to
>>>>>> http://slides.com/darango/deck-10-11-12-11-12#/1
>>>>>> <http://slides.com/darango/deck-10-11-12-11-12#/11>5
>>>>>>
>>>>>> the main idea is to do noise cleaning, PMF, filter on normal, filter
>>>>>> on kdistance, PMF again
>>>>>>
>>>>>> not clear to me if you can have a good discrimination of the ground
>>>>>> part of the threes using normals due to nature of these surfaces.
>>>>>>
>>>>>> cheers
>>>>>>
>>>>>> Luigi Pirelli
>>>>>>
>>>>>>
>>>>>> **************************************************************************************************
>>>>>> * LinkedIn: https://www.linkedin.com/in/luigipirelli
>>>>>> * Stackexchange:
>>>>>> http://gis.stackexchange.com/users/19667/luigi-pirelli
>>>>>> * GitHub: https://github.com/luipir
>>>>>> * Mastering QGIS 2nd Edition:
>>>>>> *
>>>>>> https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition
>>>>>> * Hire me: http://goo.gl/BYRQKg
>>>>>>
>>>>>> **************************************************************************************************
>>>>>>
>>>>>>
>>>>>> On Sat, 11 May 2019 at 10:01, Silvia Franceschi <
>>>>>> silvia.franceschi at gmail.com> wrote:
>>>>>>
>>>>>>> Dear all,
>>>>>>> I am trying to extract the ground points from a point cloud of a
>>>>>>> terrestrial laser scanner (TLS) in a forestry environment, but the result
>>>>>>> is not so good as the one I got using data from ALS.
>>>>>>> What I did is:
>>>>>>> 1. denoise the dataset using the filter.outlier and a filter.range
>>>>>>> for Z ranges:
>>>>>>>             "type": "filters.outlier",
>>>>>>>             "method": "statistical",
>>>>>>>             "multiplier": 3,
>>>>>>>             "mean_k": 8
>>>>>>> 2. apply a filter.elm and a filter.smrf to the cleaned dataset
>>>>>>> For the SMRF filter I used these parameters:
>>>>>>>             "type": "filters.smrf",
>>>>>>>             "slope":0.2,
>>>>>>>             "window":16,
>>>>>>>             "threshold":0.45,
>>>>>>>             "scalar":1.2
>>>>>>>
>>>>>>> Unfortunately the resulting ground points contain also the first
>>>>>>> part of of the trunks of the trees, how is it possible?
>>>>>>>
>>>>>>> I am doing some testing changing the values of the SMRF parameters
>>>>>>> but the results are almost the same.
>>>>>>>
>>>>>>> Do some of you have experience with such kind of data? Am I missing
>>>>>>> some operation for filtering? Could you please help me understanding at
>>>>>>> least where to focus the attention to try to obtain something...
>>>>>>>
>>>>>>> Thank you in advance.
>>>>>>>
>>>>>>> Silvia
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> ing. Silvia Franceschi
>>>>>>> Via Roma, 64
>>>>>>> 38030 Castello di Fiemme (TN)
>>>>>>>
>>>>>>> tel: 0039 -3384501332
>>>>>>> _______________________________________________
>>>>>>> pdal mailing list
>>>>>>> pdal at lists.osgeo.org
>>>>>>> https://lists.osgeo.org/mailman/listinfo/pdal
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> ing. Silvia Franceschi
>>>>> Via Roma, 64
>>>>> 38030 Castello di Fiemme (TN)
>>>>>
>>>>> tel: 0039 -3384501332
>>>>>
>>>>
>>>>
>>>> --
>>>> ing. Silvia Franceschi
>>>> Via Roma, 64
>>>> 38030 Castello di Fiemme (TN)
>>>>
>>>> tel: 0039 -3384501332
>>>> _______________________________________________
>>>> pdal mailing list
>>>> pdal at lists.osgeo.org
>>>> https://lists.osgeo.org/mailman/listinfo/pdal
>>>
>>>
>>
>> --
>> ing. Silvia Franceschi
>> Via Roma, 64
>> 38030 Castello di Fiemme (TN)
>>
>> tel: 0039 -3384501332
>>
>> _______________________________________________
>> pdal mailing list
>> pdal at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/pdal
>>
>> _______________________________________________
>> pdal mailing list
>> pdal at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/pdal
>
>

-- 
ing. Silvia Franceschi
Via Roma, 64
38030 Castello di Fiemme (TN)

tel: 0039 -3384501332
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20190526/d8f821ef/attachment-0001.html>


More information about the pdal mailing list