This tool can be used to map and/or remove road embankments from an input fine-resolution digital elevation model (dem
). Fine-resolution LiDAR DEMs can represent surface features such as road and railway embankments with high fidelity. However, transportation embankments are problematic for several environmental modelling applications, including soil an vegetation distribution mapping, where the pre-embankment topography is the contolling factor. The algorithm utilizes repositioned (search_dist
) transportation network cells, derived from rasterizing a transportation vector (road_vec
), as seed points in a region-growing operation. The embankment region grows based on derived morphometric parameters, including road surface width (min_road_width
), embankment width (typical_width
and max_width
), embankment height (max_height
), and absolute slope (spillout_slope
). The tool can be run in two modes. By default the tool will simply map embankment cells, with a Boolean output raster. If, however, the remove_embankments
flag is specified, the tool will instead output a DEM for which the mapped embankment grid cells have been excluded and new surfaces have been interpolated based on the surrounding elevation values (see below).
Hillshade from original DEM:
Hillshade from embankment-removed DEM:
Van Nieuwenhuizen, N, Lindsay, JB, DeVries, B. 2021. Automated mapping of transportation embankments in fine-resolution LiDAR DEMs. Remote Sensing. 13(7), 1308; https://doi.org/10.3390/rs13071308
remove_off_terrain_objects, smooth_vegetation_residual
def embankment_mapping(self, dem: Raster, roads_vector: Vector, search_dist: float = 2.5, min_road_width: float = 6.0, typical_embankment_width: float = 30.0, typical_embankment_max_height: float = 2.0, embankment_max_width: float = 60.0, max_upwards_increment: float = 0.05, spillout_slope: float = 4.0, remove_embankments: bool = False) -> Tuple[Raster, Union[Raster, None]]: ...