Canopy Products

canopy module. Algorithms for creating canopy metrics

Vertical Foliage Profiles

Functions for calculating vertical plant profiles (Calders et al., 2014)

pylidar.toolbox.canopy.pavd_calders2014.calcHingePlantProfiles(heightbinsize, zenith, pgapz)[source]

Calculate the hinge angle PAI/PAVD (see Jupp et al., 2009)

pylidar.toolbox.canopy.pavd_calders2014.calcLinearPlantProfiles(height, heightbinsize, zenith, pgapz)[source]

Calculate the linear model PAI/PAVD (see Jupp et al., 2009)

pylidar.toolbox.canopy.pavd_calders2014.calcSolidAnglePlantProfiles(zenith, pgapz, heightbinsize, zenithbinsize, totalpai)[source]

Calculate the Jupp et al. (2009) solid angle weighted PAI/PAVD

pylidar.toolbox.canopy.pavd_calders2014.extractPointHeightsFromDEM(x, y, z, otherargs)[source]

Extract point heights from an external DEM For points outside the DEM extent, we use nearest neighbour values TODO: Interpolate DEM elevations to actual point locations

pylidar.toolbox.canopy.pavd_calders2014.getProfileAsArray(zenith, height, pgapz, lpp_pai, lpp_pavd, lpp_mla, hpp_pai, hpp_pavd, sapp_pai, sapp_pavd)[source]

Returns the vertical profile information as a single structured array

pylidar.toolbox.canopy.pavd_calders2014.planeFitHubers(x, y, z, r, reportfile=None)[source]

Plane fitting (Huber’s T norm with median absolute deviation scaling) Prior weights are set to 1 / point range.

pylidar.toolbox.canopy.pavd_calders2014.runXYMinGridding(data, otherargs)[source]

Derive a minimum Z surface following plane correction procedures outlined in Calders et al. (2014)

pylidar.toolbox.canopy.pavd_calders2014.runZenithHeightStratification(data, otherargs)[source]

Derive Pgap(z) profiles following vertical profile procedures outlined in Calders et al. (2014)

pylidar.toolbox.canopy.pavd_calders2014.run_pavd_calders2014(dataFiles, controls, otherargs, outfile)[source]

Main function for PAVD_CALDERS2014

pylidar.toolbox.canopy.pavd_calders2014.writeProfiles(outfile, zenith, height, pgapz, lpp_pai, lpp_pavd, lpp_mla, hpp_pai, hpp_pavd, sapp_pai, sapp_pavd)[source]

Write out the vertical profiles to file

Voxel Traversal and Vertical Cover Profiles

Functions for voxelization of TLS scans (Hancock et al., 2016)

pylidar.toolbox.canopy.voxel_hancock2016.classify_voxels(hits, miss, occl, classification, ground=None)[source]

Classification of voxels

Class Value Hits Misses Occluded Observed 5 >0 >=0 >=0 Empty 4 =0 >0 >=0 Hidden 3 =0 =0 >0 Unobserved 2 =0 =0 =0 Ground 1

pylidar.toolbox.canopy.voxel_hancock2016.runVoxelization(data, otherargs)[source]

Voxelization function for the lidar processor

pylidar.toolbox.canopy.voxel_hancock2016.run_voxel_hancock2016(infiles, controls, otherargs, outfiles)[source]

Main function for VOXEL_HANCOCK2016

The gap fraction of each voxel is the ratio of the number of beams that reach the voxel to the number that could have passed through.