Creating Digital Surface Models GeoTIFF Using National Map Downloader, LiDAR Point Clouds and PDAL 🗺
Find LiDAR Point Clouds on the National Map Downloader: https://apps.nationalmap.gov/downloader/#/
Select Find Elevation Source Data (3DEP) – Lidar, IfSAR
Search for LiDAR Point Cloud (LPC)
Click Export all results as a TXT file and save to a directory.
Then run this Unix command on the text file to download point clouds:
cat data.txt | tr -d '\n' | xargs -d '\r' -I {} wget -c -nc '{}'
Next create a pipeline.txt for pdal with the classification (For DSM, 1 are unclassified points like buildings and treetops, while 2 are ground points, if you want a DEM, you can also make them this way too with Classification of 2:2):
{
"pipeline": [
{
"type": "readers.las"
},
{
"type": "filters.range",
"limits": "Classification[1:1]"
},
{
"gdaldriver":"GTiff",
"resolution": 1.0,
"output_type": "max",
"type":"writers.gdal"
}
]
}
Next convert the point clouds into digital surface model (GeoTIFF), you can use this shell command with xargs to go over each LAS file, using the above pipeline:
ls *.laz | xargs -I {} basename {} .laz | xargs -P3 -I {} pdal pipeline pipeline.txt --readers.las.filename={}.laz --writers.gdal.filename={}.tif
The above command can be somewhat slow depending on how many LAZ point clouds you need to go through and your selected resolution. -P3 sets the number of parallel process (3) which can help speed things up a bit.
Now we have the digital surface models raster that can be used in QGIS for hillshade for 3D.
Build a virtual raster (dsm.vrt) for easy loading into QGIS rather than loading separate files.
gdalbuildvrt dsm.vrt *.tif


