lidar package¶
Submodules¶
filtering module¶
Module for applying filters to image.
-
lidar.filtering.
GaussianFilter
(in_dem, sigma=1, out_file=None)[source]¶ Applies a Gaussian filter to an image.
Parameters: - in_dem (str) – File path to the input image.
- sigma (int, optional) – Standard deviation. Defaults to 1.
- out_file (str, optional) – File path to the output image. Defaults to None.
Returns: The numpy array containing the filtered image.
Return type: np.array
-
lidar.filtering.
MeanFilter
(in_dem, kernel_size=3, out_file=None)[source]¶ Applies a mean filter to an image.
Parameters: - in_dem (str) – File path to the input image.
- kernel_size (int, optional) – The size of the moving window. Defaults to 3.
- out_file (str, optional) – File path to the output image. Defaults to None.
Returns: The numpy array containing the filtered image.
Return type: np.array
-
lidar.filtering.
MedianFilter
(in_dem, kernel_size=3, out_file=None)[source]¶ Applies a median filter to an image.
Parameters: - in_dem (str) – File path to the input image.
- kernel_size (int, optional) – The size of the moving window. Defaults to 3.
- out_file (str, optional) – File path to the output image. Defaults to None.
Returns: The numpy array containing the filtered image.
Return type: np.array
-
lidar.filtering.
np2rdarray
(in_array, no_data, projection, geotransform)[source]¶ Converts an numpy array to rdarray.
Parameters: - in_array (np.array) – The input numpy array.
- no_data (float) – The no_data value of the array.
- projection (str) – The projection of the image.
- geotransform (str) – The geotransform of the image.
Returns: The richDEM array.
Return type: object
filling module¶
Module for filling surface depressions.
-
class
lidar.filling.
Depression
(id, count, size, volume, meanDepth, maxDepth, minElev, bndElev, perimeter, major_axis, minor_axis, elongatedness, eccentricity, orientation, area_bbox_ratio)[source]¶ Bases:
object
The class for storing depression info.
-
lidar.filling.
ExtractSinks
(in_dem, min_size, out_dir, filled_dem=None)[source]¶ Extract sinks (e.g., maximum depression extent) from a DEM.
Parameters: - in_dem (str) – File path to the input DEM.
- min_size (int) – The minimum number of pixels to be considered as a sink.
- out_dir (str) – File path to the output directory.
- fill_dem (str, optional) – The filled DEM.
Returns: The richDEM array containing sinks.
Return type: object
-
lidar.filling.
extract_sinks_by_bbox
(bbox, filename, min_size=10, tmp_dir=None, mask=None, crs='EPSG:5070', kernel_size=3, resolution=10, to_cog=False, keep_files=True, ignore_warnings=True)[source]¶ Extract sinks from a DEM by HUC8.
Parameters: - bbox (list) – The bounding box in the form of [minx, miny, maxx, maxy].
- filename (str, optional) – The output depression file name.
- min_size (int, optional) – The minimum number of pixels to be considered as a sink. Defaults to 10.
- tmp_dir (str, optional) – The temporary directory. Defaults to None, e.g., using the current directory.
- mask (str, optional) – The mask file path. Defaults to None.
- crs (str, optional) – The coordinate reference system. Defaults to “EPSG:5070”.
- kernel_size (int, optional) – The kernel size for smoothing the DEM. Defaults to 3.
- resolution (int, optional) – The resolution of the DEM. Defaults to 10.
- to_cog (bool, optional) – Whether to convert the output to COG. Defaults to False.
- keep_files (bool, optional) – Whether to keep the intermediate files. Defaults to True.
- ignore_warnings (bool, optional) – Whether to ignore warnings. Defaults to True.
-
lidar.filling.
extract_sinks_by_huc8
(huc8, min_size=10, filename=None, tmp_dir=None, wbd=None, crs='EPSG:5070', kernel_size=3, resolution=10, keep_files=True, error_file=None, ignore_warnings=True)[source]¶ Extract sinks from a DEM by HUC8.
Parameters: - huc8 (str) – The HUC8 code, e.g., 01010002
- min_size (int, optional) – The minimum number of pixels to be considered as a sink. Defaults to 10.
- filename (str, optional) – The output depression file name. Defaults to None, e,g., using the HUC8 code.
- tmp_dir (str, optional) – The temporary directory. Defaults to None, e.g., using the current directory.
- wbd (str | GeoDataFrame, optional) – The watershed boundary file. Defaults to None.
- crs (str, optional) – The coordinate reference system. Defaults to “EPSG:5070”.
- kernel_size (int, optional) – The kernel size for smoothing the DEM. Defaults to 3.
- resolution (int, optional) – The resolution of the DEM. Defaults to 10.
- keep_files (bool, optional) – Whether to keep the intermediate files. Defaults to True.
- error_file (_type_, optional) – The file to save the error IDs. Defaults to None.
- ignore_warnings (bool, optional) – Whether to ignore warnings. Defaults to True.
-
lidar.filling.
extract_sinks_by_huc8_batch
(huc_ids=None, min_size=10, out_dir=None, tmp_dir=None, wbd=None, crs='EPSG:5070', kernel_size=3, resolution=10, keep_files=False, reverse=False, error_file=None, ignore_warnings=True, ignored_ids=[], overwrite=False)[source]¶ Extract sinks from NED by HUC8.
Parameters: - huc8 (str) – The HUC8 code, e.g., 01010002
- min_size (int, optional) – The minimum number of pixels to be considered as a sink. Defaults to 10.
- filename (str, optional) – The output depression file name. Defaults to None, e,g., using the HUC8 code.
- tmp_dir (str, optional) – The temporary directory. Defaults to None, e.g., using the current directory.
- wbd (str | GeoDataFrame, optional) – The watershed boundary file. Defaults to None.
- crs (str, optional) – The coordinate reference system. Defaults to “EPSG:5070”.
- kernel_size (int, optional) – The kernel size for smoothing the DEM. Defaults to 3.
- resolution (int, optional) – The resolution of the DEM. Defaults to 10.
- keep_files (bool, optional) – Whether to keep the intermediate files. Defaults to True.
- reverse (bool, optional) – Whether to reverse the HUC8 list. Defaults to False.
- error_file (_type_, optional) – The file to save the error IDs. Defaults to None.
- ignore_warnings (bool, optional) – Whether to ignore warnings. Defaults to True.
- overwrite (bool, optional) – Whether to overwrite the existing files. Defaults to False.
-
lidar.filling.
get_dep_props
(objects, resolution)[source]¶ Computes depression attributes.
Parameters: - objects (object) – The labeled objects.
- resolution (float) – The spatial reoslution of the image.
Returns: A list of depression objects with attributes.
Return type: list
-
lidar.filling.
image_to_cog
(source, dst_path=None, profile='deflate', **kwargs)[source]¶ Converts an image to a COG file.
Parameters: - source (str) – A dataset path, URL or rasterio.io.DatasetReader object.
- dst_path (str, optional) – An output dataset path or or PathLike object. Defaults to None.
- profile (str, optional) – COG profile. More at https://cogeotiff.github.io/rio-cogeo/profile. Defaults to “deflate”.
Raises: ImportError
– If rio-cogeo is not installed.FileNotFoundError
– If the source file could not be found.
-
lidar.filling.
np2rdarray
(in_array, no_data, projection, geotransform)[source]¶ Converts an numpy array to rdarray.
Parameters: - in_array (array) – The input numpy array.
- no_data (float) – The no_data value of the array.
- projection (str) – The projection of the image.
- geotransform (str) – The geotransform of the image.
Returns: The richDEM array.
Return type: object
-
lidar.filling.
polygonize
(img, shp_path)[source]¶ Converts a raster image to vector.
Parameters: - img (str) – File path to the input image.
- shp_path (str) – File path to the output shapefile.
-
lidar.filling.
regionGroup
(img_array, min_size, no_data)[source]¶ IdentifIies regions based on region growing method
Parameters: - img_array (array) – The numpy array containing the image.
- min_size (int) – The minimum number of pixels to be considered as a depression.
- no_data (float) – The no_data value of the image.
Returns: The labelled objects and total number of labels.
Return type: tuple
slicing module¶
Module for the level-set algorithm.
-
lidar.slicing.
DelineateDepressions
(in_sink, min_size, min_depth, interval, out_dir, bool_level_shp=False)[source]¶ Delineates nested depressions.
Parameters: - in_sink (str) – The file path to the sink image.
- min_size (int) – The minimum number of pixels to be considered as a depression.
- min_depth (float) – The minimum depth to be considered as a depression.
- interval (float) – The slicing interval.
- out_dir (str) – The file path to the output directory.
- bool_level_shp (bool, optional) – Whether to generate shapefiles for each individual level. Defaults to False.
Returns: The output level image, and the output object image.
Return type: tuple
-
class
lidar.slicing.
Depression
(id, level, count, size, volume, meanDepth, maxDepth, minElev, bndElev, inNbrId, regionId, perimeter, major_axis, minor_axis, elongatedness, eccentricity, orientation, area_bbox_ratio)[source]¶ Bases:
object
The class for storing depression info.
-
lidar.slicing.
extract_levels
(level_img, obj_img, min_size, no_data, out_img_dir, out_shp_dir, template, bool_comb=False)[source]¶ Extracts individual level image.
Parameters: - level_img (np.array) – The numpy array containing the level image.
- obj_img (np.array) – The numpy array containing the object image.
- min_size (int) – The minimum number of pixels to be considered as a depression.
- no_data (float) – The no_data value of the image.
- out_img_dir (str) – The output image directory.
- out_shp_dir (str) – The output shapefile directory.
- template (str) – The file path to the template image.
- bool_comb (bool, optional) – Whether to extract combined level image. Defaults to False.
Returns: The single level image, properties of region grouped level image, properties of region grouped object image.
Return type: tuple
-
lidar.slicing.
getMetadata
(img)[source]¶ Gets rdarray metadata.
Parameters: img (rdarray) – The richDEM array containing the image. Returns: no_data, projection, geotransform, cell_size Return type: tuple
-
lidar.slicing.
get_image_paras
(image_paras)[source]¶ Gets image parameters.
Parameters: image_paras (dict) – The dictionary containing image parameters. Returns: A tuple containing no_data, min_size, min_depth, interval, resolution. Return type: tuple
-
lidar.slicing.
get_min_max_nodata
(image)[source]¶ Gets the minimum, maximum, and no_data value of a numpy array.
Parameters: image (np.array) – The numpy array containing the image. Returns: The minimum, maximum, and no_data value. Return type: tuple
-
lidar.slicing.
img_to_shp
(in_img_dir, out_shp_dir)[source]¶ Converts images in a selected folder to shapefiles
Parameters: - in_img_dir (str) – The input iimage directory.
- out_shp_dir (str) – The output shapefile directory.
-
lidar.slicing.
levelSet
(img, region_id, obj_uid, image_paras)[source]¶ Identifies nested depressions using level-set method.
Parameters: - img (np.array) – The numpy array containing the image.
- region_id (int) – The unique id of the region.
- obj_uid (int) – The object id of the region.
- image_paras (dict) – The dictionary containing image parameters.
Returns: (level image, depression list)
Return type: tuple
-
lidar.slicing.
np2rdarray
(in_array, no_data, projection, geotransform)[source]¶ Converts numpy array to rdarray.
Parameters: - in_array (np.array) – The input numpy array containing the image.
- no_data (float) – The no_data value of the image.
- projection (str) – The projection coordinate system of the image.
- geotransform (str) – The geotransform of the image.
Returns: The richDEM array containing the image.
Return type: rdarray
-
lidar.slicing.
obj_to_level
(obj_img, dep_list)[source]¶ Derives depression level image based on the depression id image and depression list.
Parameters: - obj_img (np.array) – The numpy array containing the object image.
- dep_list (list) – A list containing depression info.
Returns: The numpy array containing the object level image.
Return type: np.array
-
lidar.slicing.
polygonize
(img, shp_path)[source]¶ Converts a raster image to vector.
Parameters: - img (str) – File path to the input image.
- shp_path (str) – File path to the output shapefile.
-
lidar.slicing.
regionGroup
(img_array, min_size, no_data)[source]¶ IdentifIies regions based on region growing method
Parameters: - img_array (np.array) – The numpy array containing the image.
- min_size (int) – The minimum number of pixels to be considered as a depression.
- no_data (float) – The no_data value of the image.
Returns: The labelled objects and total number of labels.
Return type: tuple
-
lidar.slicing.
set_image_paras
(no_data, min_size, min_depth, interval, resolution)[source]¶ Sets the input image parameters for level-set method.
Parameters: - no_data (float) – The no_data value of the input DEM.
- min_size (int) – The minimum number of pixels to be considered as a depression.
- min_depth (float) – The minimum depth to be considered as a depression.
- interval (float) – The slicing interval.
- resolution (float) – The spatial resolution of the DEM.
Returns: A dictionary containing image parameters.
Return type: dict
-
lidar.slicing.
updateLevel
(dep_list, obj_uid)[source]¶ Updates the inner neighbors of each depression.
Parameters: - dep_list (list) – A list containing depression info.
- obj_uid (int) – The unique id of an object.
Returns: A list containing depression info.
Return type: list
-
lidar.slicing.
writeObject
(img_array, obj_array, bbox)[source]¶ Writes depression objects to the original image.
Parameters: - img_array (np.array) – The output image array.
- obj_array (np.array) – The numpy array containing depression objects.
- bbox (list) – The bounding box of the depression object.
Returns: The numpy array containing the depression objects.
Return type: np.array
-
lidar.slicing.
writeRaster
(arr, out_path, template)[source]¶ Saves an numpy array as a GeoTIFF.
Parameters: - arr (np.array) – The numpy array containing the image.
- out_path (str) – The file path to the output GeoTIFF.
- template (str) – The file path to the template image containing projection info.
Returns: The numpy array containing the image.
Return type: np.array
mounts module¶
Module for delineating the nested hierarchy of elevated features (i.e., mounts).
-
lidar.mounts.
DelineateMounts
(in_dem, min_size, min_height, interval, out_dir, bool_shp=False)[source]¶ Delineates the nested hierarchy of elevated features (i.e., mounts).
Parameters: - in_dem (str) – File path to the input DEM.
- min_size (int) – The minimum number of pixels to be considered as an object.
- min_height (float) – The minimum depth of the feature to be considered as an object.
- interval (float) – The slicing interval.
- out_dir (str) – The output directory.
- bool_shp (bool, optional) – Whether to generate shapefiles. Defaults to False.
Returns: File paths to the depression ID and level.
Return type: tuple
-
lidar.mounts.
FlipDEM
(dem, delta=100, out_file=None)[source]¶ Flips the DEM.
Parameters: - dem (np.array) – The numpy array containing the image.
- delta (int, optional) – The base value to be added to the flipped DEM. Defaults to 100.
- out_file (str, optional) – File path to the output image. Defaults to None.
Returns: The numpy array containing the flipped DEM.
Return type: np.array
Module contents¶
Top-level package for lidar.