<div dir="ltr"><div>Hello Silvia,</div><div><br></div><div>Like you I am new to PDAL and have been trying to optimize the output and filtering steps. As you suggested, I would also like to participate in a collabration efforts to improve ground filtering efforts.</div><div><br></div><div>I have been looking at a similar approach as yours. I have a little programming background, so am working on an automated process (custom or using pipeline). From what I have seen, pmf & smrf tends to include the low vegetation as ground points. <br></div><div>About clustering: I do not understand, how clustering would help with classifying ground. With default settings, the whole file might end within a single cluster. Best use I can think of is filtering the noise points. <br></div><div><br></div><div>I confess, I am not an expert and dont understand many of the Innards.</div><div><br></div><div>Can you explain what is normalZ and its relation to ground?<br></div><div><br></div><div>Let me know what you think.</div><div><br></div><div>Warm Regards,</div><div>Thejus</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 12, 2019 at 2:17 AM Silvia Franceschi <<a href="mailto:silvia.franceschi@gmail.com">silvia.franceschi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Karl,</div><div class="gmail_default" style="font-size:small">i am also trying to use the PDAL to extract a good DTM with my data on a mixed vegetated terrain.</div><div class="gmail_default" style="font-size:small">I am new to PDAL so I can't really help you, but we could share a bit the experience: commands, parameters and flowchart of the approach, what do you think?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">My own approach is the follow:</div><div class="gmail_default" style="font-size:small">1. denoise the data: using filters.elm and filters.ouliers and after this </div><div class="gmail_default" style="font-size:small">2. classify ground/no ground points: alternatively used filters.smrf, filters.pmf and filters.mongus (this unfortunately still do not work on my data, but I will try again to test it during the next week)</div><div class="gmail_default" style="font-size:small">3. create the DTM: export the data with writers.gdal</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The DTM I obtained is not really nice and I am trying to fix it by working on the parameters and looking for further analysis to add. There are now two possibilities:</div><div class="gmail_default" style="font-size:small">A. try to clusterize as suggested by Howard: did you already tried? is this a good solution for a good final product? which threshold of the dimension of the cluster did you use to select the ground points to keep and ignore?</div><div class="gmail_default" style="font-size:small">B. try to follow the instructions given by Luigi and do the following steps:</div><div class="gmail_default" style="font-size:small">    - filters.pmf</div><div class="gmail_default" style="font-size:small">    - calculate normalZ and assign: normalZ ! [0:0.6] : Classification ->2</div><div class="gmail_default" style="font-size:small">    - calculate kDistance and assign: KD <1 : classification = 2</div><div class="gmail_default" style="font-size:small">    - apply pmf again on the new dataset</div><div class="gmail_default" style="font-size:small">The problem in the second case is to store the results and do the checks on each point. I am blocked here because even if I can store the results in an extra_dimension of the las, then I am not able to do the check on the values in the interval [0:0.6] using PDAL and I don't have any other possibilities for a separate software.</div><div class="gmail_default" style="font-size:small">C. find a better solution for the final step: interpolation to create the DTM, what do you use for this purpose?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I'll go on with some tests these days, finger cross!!!</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Regards</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Silvia</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">    </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 12, 2019 at 8:41 PM Karl North <<a href="mailto:karln@surdex.com" target="_blank">karln@surdex.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_-2524107187220767623gmail-m_7966901454737371973gmail-m_8332811335602290212WordSection1">
<p class="MsoNormal">Moving along here, and have encountered a new question…<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m getting some promising results from filters.cluster but would certainly like to be able to apply this filter ( and others ) multiple times with different settings while using writers.las after each filter so that I can review the progress
 of the overall pipeline processing after each step completes.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Is there a way to get my pipeline to write a LAS after each of the steps/filters?  I’d like to save interim results for review, but cannot find a good example in the docs or in the list archive.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in">
<p class="MsoNormal"><b>From:</b> Howard Butler <<a href="mailto:howard@hobu.co" target="_blank">howard@hobu.co</a>> <br>
<b>Sent:</b> Wednesday, June 12, 2019 9:41 AM<br>
<b>To:</b> Karl North <<a href="mailto:karln@surdex.com" target="_blank">karln@surdex.com</a>><br>
<b>Cc:</b> Bradley Chambers <<a href="mailto:brad.chambers@gmail.com" target="_blank">brad.chambers@gmail.com</a>>; <a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a><br>
<b>Subject:</b> Re: [pdal] tweaking parameters in filters.smrf<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal">On Jun 12, 2019, at 9:36 AM, Karl North <<a href="mailto:karln@surdex.com" target="_blank">karln@surdex.com</a>> wrote:<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">Brad:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Thanks for the suggestions.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">I’ve done some reading and begun playing around with the cluster filter.  One problem is that I’m new enough to PDAL that I cannot find a way to add/define a dimension and store the cluster ID into either LAS or LAZ format on output.  I
 think it should be possible to just hijack an existing field in the point data records for current testing purposes.  Does this sound possible?  I’m floundering a bit trying to find an example of something similar.  Can you point me in the right direction?<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Use the filters.ferry to copy ClusterID => PointSourceId downstream of your filters.cluster invocation.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpdal.io%2Fstages%2Ffilters.ferry.html&data=02%7C01%7C%7C5dc2119c10ca44f84e9008d6ef43fd22%7Cbf4323beeac04c8eb466c7924493cbee%7C0%7C0%7C636959472628150563&sdata=hKaN0thXKKf7fE%2F5nqkAZcSq8YMCR26WM7xkkz5IINI%3D&reserved=0" target="_blank">https://pdal.io/stages/filters.ferry.html</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal">I can get a BPF output, but currently have no way to review the result.  I’m now downloading 64-bit QT Reader, after finding a thread by HoBu saying that this viewer would work for a quick review.<u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I don't know if that is still viable.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">You can also write to LAS with extra bytes<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">--writers.las.extra_dims=ClusterID<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">but you'll need something that can view extra LAS dimensions. <u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Howard<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

_______________________________________________<br>
pdal mailing list<br>
<a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/pdal" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/pdal</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_-2524107187220767623gmail-m_7966901454737371973gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div style="font-size:small">ing. Silvia Franceschi<br>Via Roma, 64</div><div style="font-size:small">38030 Castello di Fiemme (TN)<br><br>tel: 0039 -3384501332</div></div></div></div></div></div></div></div></div>
_______________________________________________<br>
pdal mailing list<br>
<a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/pdal" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/pdal</a></blockquote></div>