Although not strictly a 'Python' library but rather a set of wrappers for other tools, in particular GRASS, there are the 'ARSF DEM Scripts' which I have written:
https://github.com/pmlrsg/arsf_dem_scripts
One of the aims was to provide a common set of Python functions for different command line tools (called using subprocess) with a method
flag used to specify the tool.
Example usage to generate a DSM, intensity and density image is:
from arsf_dem import dem_lidar
# DSM image (GRASS, points2grid, SPDLib, FUSION or licensed LAStools)
dem_lidar.las_to_dsm('in_las.las', 'out_dsm.tif',
method='points2grid')
# Intensity image (GRASS or licensed version of LAStools)
dem_lidar.las_to_intensity('in_las.las', 'out_intensity.tif',
method='GRASS')
# Density image (GRASS only)
dem_lidar.grass_lidar.las_to_density('in_las.las', 'out_density.tif',
bin_size=10)
There are quite a few LiDAR processing tools available through the GRASS Python wrapper which could also be used instead of / in addition to what is available through arsf_dem
.