[pdal] Extract terrain from TLS point cloud

Silvia Franceschi silvia.franceschi at gmail.com
Sat May 25 13:39:55 PDT 2019


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20190525/5fc664a0/attachment-0001.html>


More information about the pdal mailing list