Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
giswqs
GitHub Repository: giswqs/geemap
Path: blob/master/docs/notebooks/122_lidar.ipynb
2313 views
Kernel: Python 3

image image

LiDAR data analysis and visualization with whitebox and geemap

Create a new conda env to install required packages:

conda create -n geo python conda activate geo conda install -c conda-forge mamba mamba install -c conda-forge pygis pip install laspy[lazrs]

Uncomment the following line to install packages in Google Colab.

# !pip install geemap[lidar]

Import libraries

import os import geemap import whitebox

Set up whitebox

wbt = whitebox.WhiteboxTools() wbt.set_working_dir(os.getcwd()) wbt.set_verbose_mode(False)

Download sample data

url = "https://github.com/giswqs/data/raw/main/lidar/madison.laz" if not os.path.exists("madison.laz"): geemap.download_file(url)

Read LAS/LAZ data

laz = geemap.read_lidar("madison.laz")
laz
str(laz.header.version)

Upgrade file version

las = geemap.convert_lidar(laz, file_version="1.4")
str(las.header.version)

Write LAS data

geemap.write_lidar(las, "madison.las")

Histogram analysis

wbt.lidar_histogram("madison.las", "histogram.html")

Visualize LiDAR data

geemap.view_lidar("madison.las")

Remove outliers

wbt.lidar_elevation_slice("madison.las", "madison_rm.las", minz=0, maxz=450)

Visualize LiDAR data after removing outliers

geemap.view_lidar("madison_rm.las", cmap="terrain")

Create DSM

wbt.lidar_digital_surface_model( "madison_rm.las", "dsm.tif", resolution=1.0, minz=0, maxz=450 )
geemap.add_crs("dsm.tif", epsg=2255)

Visualize DSM

m = geemap.Map() m.add_raster("dsm.tif", colormap="terrain", layer_name="DSM") m

Create DEM

wbt.remove_off_terrain_objects("dsm.tif", "dem.tif", filter=25, slope=15.0)

Visualize DEM

m.add_raster("dem.tif", colormap="terrain", layer_name="DEM") m

Create CHM

chm = wbt.subtract("dsm.tif", "dem.tif", "chm.tif")
m.add_raster("chm.tif", colormap="gist_earth", layer_name="CHM") m