Ground Filters¶
grdfilter module. A algorithms for filter ground returns using pylidar.
Classify Ground Returns¶
Functions to classify the ground returns within the point cloud.

pylidar.toolbox.grdfilters.classGrdReturns.
classifyGroundReturns
(ptBinVals, grdSurf, thres)[source]¶ A function to classify the ground return points within a distance from a ground surface. * ptBinVals is a binned list of points * grdSurf ground surface with the same dimensions as the binned points * thres is the threshold for defining whether a point is ground or not.
Progressive Morphology Filter¶
Functions used to implement the progressive morphological filter algorithm (Zhang et al., 2003) to generate a raster surface which can be used to classify the ground returns.
Zhang, K., Chen, S., Whitman, D., Shyu, M., Yan, J., & Zhang, C. (2003). A progressive morphological filter for removing nonground measurements from airborne LIDAR data. IEEE Transactions on Geoscience and Remote Sensing, 41(4), 872882.

pylidar.toolbox.grdfilters.pmf.
applyPMF
(dataArr, noDataMask, binGeoSize, initWinSize=1, maxWinSize=12, winSizeInc=1, slope=0.3, dh0=0.3, dhmax=5, expWinSizes=False)[source]¶ Apply the progressive morphology filter (PMF) to the input data array (dataArr) filtering the surface to remove regions which are not ground.
 dataArr is a numpy array, usually defined as minimum Z LiDAR return within bin, on which the filter is to be applied.
 noDataMask is a numpy array specifying the cells in the input dataArr which do not have data (i.e., there were no points in the bin)
 binGeoSize is the geographic (i.e., in metres) size of each square bin (i.e., 1 m)
 initWinSize is the initial window size (Default = 1)
 maxWinSize is the maximum window size (Default = 12)
 winSizeInc is the increment for the window size (Default = 1)
 slope is the slope within the scene (Default = 0.3)
 dh0 is the initial height difference threshold for differentiating ground returns (Default = 0.3)
 dhmax is the maximum height difference threshold for differentiating ground returns (Default = 5)
 expWinSizes is a boolean specifying whether the windows sizes should increase exponentially or not (Default = False)
Returns: PMF Filtered array with the same data type as the input.

pylidar.toolbox.grdfilters.pmf.
disk
(radius, dtype=<type 'numpy.uint8'>)[source]¶ Generates a flat, diskshaped structuring element. A pixel is within the neighborhood if the euclidean distance between it and the origin is no greater than radius. Parameters:
 radius : int The radius of the diskshaped structuring element.
Other Parameters:
 dtype : datatype The data type of the structuring element.
Returns:
 selem : ndarray The structuring element where elements of the neighborhood are 1 and 0 otherwise.

pylidar.toolbox.grdfilters.pmf.
doNearestNeighbourInterp
(data, noDataMask, m, n)[source]¶ Function to do nearest neighbout interpolation of filling in no data area

pylidar.toolbox.grdfilters.pmf.
doOpening
(iarray, maxWindowSize, winSize1, c, s, dh0, dhmax)[source]¶ A function to perform a series of iterative opening operations on the data array with increasing window sizes.

pylidar.toolbox.grdfilters.pmf.
elevationDiffTreshold
(c, wk, wk1, s, dh0, dhmax)[source]¶ Function to determine the elevation difference threshold based on window size (wk) c is the bin size is metres. Default values for site slope (s), initial elevation differents (dh0), and maximum elevation difference (dhmax). These will change based on environment.