Canopy Height Model - Remove Buildings

188 views
Skip to first unread message

Mark Tukman

unread,
May 20, 2019, 11:38:36 PM5/20/19
to LAStools - efficient tools for LiDAR processing
Hi All:

I'm trying to create a simple canopy height model using the code below.  The problem is, for some reason at least some buildings are still showing up as tall objects.  I am wondering the best way to zero out buildings in the chm.  For example, ts there a way to have lasheight automatically assign 0s to points classified as buildings (with replace_z).

Here is my code:

lastile -i *.laz ^
-tile_size 250 -buffer 20 ^
-extra_pass ^
-o tiled\b75.laz ^
-v

lasheight -i tiled\b75*.laz ^
-class 2 -replace_z -drop_below 0.0 ^
-odir height -olaz ^
-v -cores 6

lasthin -i %BLOCK%\classified\*.laz ^
        -subcircle 0.1 ^
        -step %SUBGRIDSTEP% -highest ^
        -odir %BLOCK%\tmp_dir -olaz ^
        -cores %CORES%

las2dem -i %BLOCK%\tmp_dir\*.laz ^
        -step %STEP% ^
-elevation ^
-set_min_max %MIN_MAX% ^
        -use_tile_bb ^
        -odir %BLOCK%\tiles_chm  -obil ^
        -cores %CORES%

Terje Mathisen

unread,
May 21, 2019, 11:27:02 AM5/21/19
to last...@googlegroups.com, Mark Tukman
I also need to remove all buildings, this is in order to use the remaining non-ground points to develop a good vertical model of vegetation densities in order to determine runnability, which is sorted in multiple ranges on an orienteering map.

The approach I'm currently using starts with lasheight, ignoring classes 7,9,10&11, storing the new data as a layer:
lasheight -cores %CORES% -i adaptive\*.laz -ilay -ignore_class 7 9 10 11 -olay

Next I use lasclassify to determine the buildings, adding one more layer:
lasclassify -cores %CORES% -i adaptive\*.laz -ilay -ignore_class 7 9 10 11 -planar 0.1 -olay

Finally I run lasheight once more, this time ignoring any buildings and writing the output to "tiles_classified":
lasheight -cores %CORES% -i adaptive\*.laz -ilay -ignore_class 6 9 10 11 -drop_class 7\
 -drop_below -5 -drop_above 100 -classify_between 0.3 1.3 3 -classify_between 1.3 3.5 4\
 -classify_between 3.5 100 5 -odir tiles_classified -olaz

If the source laz files don't have usable ground classifications then I'll precede the steps above with a call to lasground_new:
lasground_new -cores %CORES% -i adaptive\*.laz -ignore_class 6 7 9 10 11 -fine -town -non_ground_unchanged -spike 3.0 -olay

In this stage I use -town instead of -wilderness in order for the lasground algorithm to not identify all larger buildings as vegetation!

Terje

Mark Tukman wrote:
--
Download LAStools at
http://lastools.org
http://rapidlasso.com
Be social with LAStools at
http://facebook.com/LAStools
http://twitter.com/LAStools
http://linkedin.com/groups/LAStools-4408378
Manage your settings at
http://groups.google.com/group/lastools/subscribe
---
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/c7f7cfc1-353d-4c16-af1f-9b824ed6cb19%40googlegroups.com.


-- 
- <Terje.M...@tmsw.no>
"almost all programming can be viewed as an exercise in caching"

George S. Mercier

unread,
May 21, 2019, 11:27:37 AM5/21/19
to last...@googlegroups.com
I'd probably just drop the building points all together rather than redefining there elevation data.
-George

--
Reply all
Reply to author
Forward
0 new messages