Lowest point from sample area

85 views
Skip to first unread message

TerraMap

unread,
May 16, 2022, 1:15:07 AM5/16/22
to LAStools - efficient tools for LiDAR processing
Hi All,
I am wanting a method to return the lowest elevation lidar point from a bunch of sample areas provided by a shp file. Like lasgrid can find the lowest point within a cell set by step size but using small sample areas instead.
Any ideas?
Thanks

Jochen Rapidlasso

unread,
May 16, 2022, 2:00:04 AM5/16/22
to LAStools - efficient tools for LiDAR processing
Hi TerraMap,
you may first limit the data to your shape using
lasclip -i in.laz -poly in.shp -o out.laz
then use anything else to work with this selected data, e.g.
lasinfo -i out.laz
to get the lowest point.
Best,
Jochen @rapidlasso

Jorge Delgado

unread,
May 16, 2022, 4:30:32 AM5/16/22
to LAStools - efficient tools for LiDAR processing
Hi LAStools users,

The solution provided for Jochen is ok, but LASinfo only provides the xmin, ymin, zmin in your area not for your point. In this case, the area is your data clipped by the polygon. That is, the zmin will be correct but it does not have to correspond to the xmin and ymin. If you need to obtain the x,y,z coordinates for your lowest point you can use:

lasclip -cpu64 -i <your LAS/LAZ file> -poly <your_shapefile> -split -stdout                 <clip your data according your polygon limits>
lasthin -cpu64 -stdin -step 1000 -lowest -classify_as 20 -stdout                                  <obtain your lowest point and classify as 20 -you can use any number that there is no present in your classified data>
las2txt -stdin -keep_class 20 -parse xyz -o <your XYZ ASCII text file result>              <convert your file into txt file, you introduce a filter in the reading in order to consider only class 20 points>

This can be another "fast" solution for 1-polygon shapefile using piping. I need to think in how we can apply the process for a multipoly shapefile, perhaps Jochen has a solution for this.

Jorge

TerraMap

unread,
May 16, 2022, 4:28:52 PM5/16/22
to LAStools - efficient tools for LiDAR processing
I came up with this solution which sort of works
lascanopy -i *.laz -lop PntsBuff2m.shp  -centroids -height_cutoff 0 -min -loc_radius 2 -o results.csv
I grabs the lowest point height within the plot and applies it to the centre of the plot. The problem with this method is that it applys the height to the centre of the plot. I want the lowest point in the plot. The data is not normalized but it seems to work anyway.
A bit more information:-
 I am trying to ground classify a field which is covered by a very low crop of approx 50cm height. Most of the time using ground classification methods we will end up with points on top of the crop. The field has tractor tracks running through it. I have found that by taking sample areas every 10m along the track and selecting the lowest point within each 2m radius plot I get a much better approximation of the actual ground. I also tried using lasthin 10m step select lowest on the sample areas but invariably you end up with 2 points in a sample area which causes a bump in the surface

Jorge Delgado García

unread,
May 16, 2022, 5:59:17 PM5/16/22
to last...@googlegroups.com
Could you send me some example? Considering your information perhaps you can combine a LASthin procedure using a large spacing, following of a LASground considering this selected points. Finally, you can density your model using LASheight according this initial low resolution model. 

Jorge 

--
Download LAStools at
https://rapidlasso.de
Manage your settings at
https://groups.google.com/g/lastools/membership
---
You received this message because you are subscribed to the Google Groups "LAStools - efficient tools for LiDAR processing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lastools+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lastools/493efc01-f4ba-4309-b1fd-9afa50aaf11bn%40googlegroups.com.
--

TerraMap

unread,
May 17, 2022, 1:48:50 AM5/17/22
to LAStools - efficient tools for LiDAR processing
Hi Jorge,
Thanks for having a look at this. My patches ignore the creek but ultimatly it would need to be included. I am also considering delineating the affected fields with a polygon to target this approach. 

TrackPntsBuff2m.dbf
TrackPntsBuff2m.shx
UnclassPoints_1.laz
TrackPntsBuff2m.prj
TrackPntsBuff2m.shp

Jorge Delgado García

unread,
May 17, 2022, 3:58:31 AM5/17/22
to last...@googlegroups.com
Thank you very much for the data, they have allowed me to have a much clearer idea of the problem and to check the validity or not of my proposal (although unfortunately this week I have "quite a few pending issues" and maybe I would need a little more adjustment in some parameters). I hope you find my proposal useful.

My proposal to try to automate everything would be the following:
1) Apply a LASthin to get the lowest point according to a given low-resolution grid. I have done some tests (I would have needed maybe some more) with 20m it works fine,  10m is too small. The selected points are assigned to class 8.
The command would be:
lasthin -cpu64 -i <your_input_file> -step 20 -lowest -classify_as 8 -odir <your_output_directory> -odix "_th20" -olaz.

2) In this case it has little effect because the terrain is quite regular, but it is advisable to analyze which of the selected points (Class 8) actually belong to the Ground class using LASground_new. In this case, it has no effect, but perhaps in other areas, it does. I have employed the Custom strategy, customizing the spikes parameter to 0.25.
The command would be:
lasground_new -cpu64 -i <your file result of task1> -ignore_class 0 -spike 0.25 -down_spike 0.25 -ultra_fine -compute_height -odir <your output directory> -odix "_gr" -olaz.

3) Once we have a "good" approximation of what would be the surface of our terrain. We try to "recover" the points that are part of it, according to the distance they have with respect to the initial surface. This is done by LASheight including tolerance of -0.1 to +0.1 for the point to be considered as Class 2 (Ground). Of course, these parameters would need a little more fine-tuning. As you can see in the UnclassPoints1_th20_gr_height.laz file they more or less match your own polygons in the crop corridors.

The command would be:
lasheight -cpu64 -i <your file result of task2> -classify_between -0.1 0.1 0.1 2 -odir <your output directory> -odix "_height" -olaz.


Perhaps the problem will be the final configuration for the digital terrain model calculation. It is evident that many points are "lost" and the geometry of the points is distributed almost at the level of the corridors in the crops, making it difficult to use a conventional triangulation. Perhaps a possible solution will be to use LASgrid and then "fill in the gaps". If you want tomorrow I could try to go a little deeper into this, as long as the first part you consider fits your needs.


Best regards,
Jorge Delgado
University of Jaén



--

TerraMap

unread,
May 18, 2022, 1:42:10 AM5/18/22
to LAStools - efficient tools for LiDAR processing
Thankyou for this Jorge. Using the lasthin and las ground works quite well. The Lasheight command added more points back in but I am not sure they are adding much useful information before they become crop points. I am looking at using less points and generalizing the DEM with Natural neighbor's or IDW. 

Jorge Delgado García

unread,
May 18, 2022, 2:35:03 AM5/18/22
to last...@googlegroups.com
I am glad that everything is working properly. As for the use of LASheight I think it is interesting, you must take into account that in fact what is done is to recover points (depending on the conditions that you have incorporated the distance with respect to the triangulation defined according to the points of the mesh at low resolution). You can adjust the distance to the parameter you consider appropriate, I, for example, considered 10cm.

Although some of the points are in the crop area, it is possible that if there is a certain penetrability, especially in areas where the crop is not so dense, you can have additional ground points that allow you to better define the small irregularities of the terrain. If you do not use it, even if you use another interpolation method, at the end you will have a series of lines (corridors) with information and a linear interpolation between them and that may introduce errors in the terrain characterization.

Best regards,
Jorge



--
Reply all
Reply to author
Forward
0 new messages