[pdal] Extract terrain from TLS point cloud

Luigi Pirelli luipir at gmail.com
Mon May 27 00:25:39 PDT 2019


python (or whatever language) filter is the answer for conditional
assignment (I didn't explored mongo filter yet)

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 Sun, 26 May 2019 at 17:05, Silvia Franceschi <silvia.franceschi at gmail.com>
wrote:

> 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
> _______________________________________________
> pdal mailing list
> pdal at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/pdal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20190527/bf894b37/attachment-0001.html>


More information about the pdal mailing list