[pdal] Extract terrain from TLS point cloud

michael.smith.erdc at gmail.com michael.smith.erdc at gmail.com
Sun May 26 07:06:22 PDT 2019


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#/15
>>>>> 
>>>>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20190526/771d602a/attachment.html>


More information about the pdal mailing list