At PhoWo and INTERGEO 2015 rapidlasso was spending quality time with VisionMap who make the A3 Edge camera that provides fine resolution images from high altitudes and can quickly cover large areas. Under the hood of their LightSpeed software is the SURE dense-matching algorithm from nframes that turns images into photogrammetric point clouds. We were asked whether LAStools is able to create bare-earth DTM rasters from such points. If you have read our first, second, or third blog post on the topic you know that our asnwer was a resounding „YES!“. But we ran into an issue due to the large amount of low noise. Maybe the narrow angle between images at a high flying altitude affects the semi-global matching (SGM) algorithm. Either way, in the following we show how we use lascanopy and lasheight to mark low points as noise in a preprocessing step.
We obtained a USB stick containing a 2.42 GB file called „valparaiso_DSM_SURE_100.las“ containing about 100 million points spaced 10 cm apart generated by SURE and stored with an (unnecessary high) resolution of millimeters (aka „resolution fluff“) as the third digit of all coordinates was always zero:
las2txt -i F:\valparaiso_DSM_SURE_100.las -stdout | more 255991.440 6339659.230 89.270 255991.540 6339659.240 89.270 255991.640 6339659.240 88.660 255991.740 6339659.230 88.730 [...]
We first compressed the bulky 2.42 GB LAS file into a compact 0.23 GB LAZ to our local hard drive – a file that is 10 times smaller and that will be 10 times faster to copy:
laszip -i F:\valparaiso_DSM_SURE_100.las ^ -rescale 0.01 0.01 0.01 ^ -o valparaiso_DSM_SURE_100.laz ^
Then we tiled the 100 million points into 250 meter by 250 meter tiles with 25 meter buffer using lastile. We use the new option ‚-flag_as_withheld‘ to mark all buffer points with the withheld flag so they can be easily removed on-the-fly via the ‚-drop_withheld‘ command-line filter (also see the README file).
lastile -i valparaiso_DSM_SURE_100.laz ^ -tile_size 250 -buffer 25 ^ -flag_as_withheld ^ -odir valparaiso_tiles_raw -o val.laz
lascanopy -i val_256750_6338500.laz ^ -height_cutoff -1000 -step 5 ^ -p 5 10 15 20 ^ -obil
lasview -i val_256750_6338500_*.bil -files_are_flightlines
lasheight -i val_256750_6338500.laz ^ -ground_points val_256750_6338500_p10.bil ^ -classify_below -0.5 7 ^ -odix _denoised -olaz
Above you see the generated DTM and the corresponding DSM. So yes, LAStools can create DTMs from points that are result of dense-matching photogrammetry … even when there is a lot of low noise. There are many other ways to mix and match the modules of LAStools for more refined workflows. Sometimes declaring all points below the 10th percentile surface as noise may be too agressive. In a future blog post we will look how to combine lascanopy and lasnoise for a more adaptive approach.
:: compute 10th percentile for entire area lascanopy -i valparaiso_DSM_SURE_100.laz ^ -height_cutoff -1000 -step 5 ^ -p 10 ^ -obil :: tile input into 250 meter tiles with buffer lastile -i valparaiso_DSM_SURE_100.laz ^ -tile_size 250 -buffer 25 ^ -flag_as_withheld ^ -odir valparaiso_tiles_raw -o val.laz :: mark points below as noise lasheight -i valparaiso_tiles_raw/*.laz ^ -ground_points valparaiso_DSM_SURE_100_p10.bil ^ -classify_below -0.5 7 ^ -odir valparaiso_tiles_denoised -olaz ^ -cores 4 :: ground classify while ignoring noise points lasground -i valparaiso_tiles_denoised\*.laz ^ -ignore_class 7 ^ -town -bulge 0.5 ^ -odir valparaiso_tiles_ground -olaz ^ -cores 4 :: create 50 cm DTM rasters in BIL format las2dem -i valparaiso_tiles_ground\*.laz ^ -keep_class 2 ^ -step 0.5 -kill 200 -use_tile_bb ^ -odir valparaiso_tiles_dtm -obil ^ -cores 4 :: average 50 cm DTM values into single 1m DTM lasgrid -i valparaiso_tiles_dtm\*.bil -merged ^ -step 1.0 -average ^ -o valparaiso_dtm.bil :: create hillshade adding in UTM 19 southern blast2dem -i valparaiso_dtm.bil ^ -hillshade -utm 19M ^ -o valparaiso_dtm_hill.png :: create DSM hillshade with same three steps las2dem -i valparaiso_tiles_raw\*.laz ^ -step 0.5 -kill 200 -use_tile_bb ^ -odir valparaiso_tiles_dsm -obil ^ -cores 4 lasgrid -i valparaiso_tiles_dsm\*.bil -merged ^ -step 1.0 -average ^ -o valparaiso_dsm.bil blast2dem -i valparaiso_dsm.bil ^ -hillshade -utm 19M ^ -o valparaiso_dsm_hill.png
Pingback: Creating a Better DTM from Photogrammetic Points by Avoiding Shadows | rapidlasso GmbH
Pingback: Integrating External Ground Points in Forests to Improve DTM from Dense-Matching Photogrammetry | rapidlasso GmbH
Pingback: Removing Excessive Low Noise from Dense-Matching Point Clouds | rapidlasso GmbH
Pingback: Digital Pothole Removal: Clean Road Surface from Noisy Pix4D Point Cloud | rapidlasso GmbH