This tool can be used to interpolate a regular grid raster from a point cloud LiDAR dataset where each grid cell contains the point density within a user-specified radius. This can be useful for identifying areas of insufficient point density for interpolation of a DEM from LiDAR data. The user inputs a LiDAR dataset in LAS file format (.las) and the name of the output raster grid to be created. Interpolation can be based on all of the points in the dataset, first return points, or last return points. The user must also specify the rotation value, if any.
The output raster is of the float data type and continuous data scale.
If the LiDAR data you wish to interpolate is not contained in the LAS file format, but rather an ASCII text file, you may use one of the interpolation tools contained in the Raster Creation toolbox to interpolate the dataset.
The following is an example of a Python script using this tool:
wd = pluginHost.getWorkingDirectory()
# You may have multiple input files but they must
# be separated by semicolons in the string.
inputs = wd + "input1.las" + ";" + wd + "input2.las" + ";" + wd + "input3.las"
suffix = "density"
ptReturn = "all points"
gridRes = "1.0"
# excluded points...
neverClassified = "false"
unclassified = "false"
bareGround = "false"
lowVeg = "false"
mediumVeg = "false"
highVeg = "false"
buildings = "false"
lowPoints = "false"
keyPoints = "false"
water = "false"
args = [inputs, suffix, ptReturn, gridRes,
neverClassified, unclassified, bareGround, lowVeg, mediumVeg,
highVeg, buildings, lowPoints, keyPoints, water]
pluginHost.runPlugin("LiDAR_PointDensity", args, False)
This is a Groovy script also using this tool:
def wd = pluginHost.getWorkingDirectory()
// You may have multiple input files but they must
// be separated by semicolons in the string.
def inputs = wd + "input1.las" + ";" + wd + "input2.las" + ";" + wd + "input3.las"
def suffix = "density"
def ptReturn = "last return"
def gridRes = "1.0"
// excluded points...
def neverClassified = "false"
def unclassified = "false"
def bareGround = "false"
def lowVeg = "false"
def mediumVeg = "false"
def highVeg = "false"
def buildings = "false"
def lowPoints = "false"
def keyPoints = "false"
def water = "false"
String[] args = [inputs, suffix, ptReturn, gridRes,
neverClassified, unclassified, bareGround, lowVeg, mediumVeg,
highVeg, buildings, lowPoints, keyPoints, water]
pluginHost.runPlugin("LiDAR_PointDensity", args, false)