This function superimposes a raster grid overtop of an input LiDAR point cloud (`input_lidar`) of a user-specified resolution (`cell_size`) and identifies the highest point in each block. The output raster therefore appoximates a digital surface model (DSM), representing the elevation of the ground surface in open areas and the elevations of off-terrain objects (OTOs), such as buildings and vegetation. While this function will be faster, it is recommended that if you use the `lidar_digital_surface_model` instead if you are trying to create a DSM. This method will generally produce better results.

Like many of the LiDAR functions, the input LiDAR point cloud (`input_lidar`) is optional. If an input LiDAR file is not specified, the tool will search for all valid LiDAR (.las, .laz, *.zlidar) files contained within the current working directory. This feature can be very useful when you need to process a large number of LiDAR files contained within a directory. This batch processing mode enables the function to run in a more optimized parallel manner. When run in this batch mode, no output LiDAR object will be created. Instead the function will create an output file (saved to disc) with the same name as each input LiDAR file, but with the .tif extension. This can provide a very efficient means for processing extremely large LiDAR data sets.

## See Also

lidar_block_minimum, lidar_digital_surface_model, filterfilter_lidar_by_percentile_lidar

## Function Signature

`def lidar_block_maximum(self, input_lidar: Optional[Lidar], cell_size: float = 1.0) -> Raster: ...`

## Project Links

WbW Homepage User Manual Support WbW