Learn R Programming

spanner

Definition of spanner 1 (chiefly British): WRENCH 2: a wrench that has a hole, projection, or hook at one or both ends of the head for engaging with a corresponding device on the object that is to be turned 3: implements algorithms for terrestrial, mobile, and airborne lidar processing, tree detection, segmentation, and attribute estimation (Donager et al., 2021), and hierarchical patch delineation (Girvetz & Greco, 2007).

Install spanner

Get the latest released version of spanner from github.

remotes::install_github('bi0m3trics/spanner')

Workflows

Terrestrial Lidar Tree Attributes and Segmentation

This package implements the tree detection and segmentation algorithm described in Donager et al. (2021). The algorithm estimates tree locations and DBH by rasterizing individual point cloud values of relative neighborhood density and verticality within a slice of the normalized point cloud around breast height (1.37 m), then performs individual tree (instance) segmentation following ecological principles for "growing" trees based on input locations in a graph-theory approach. Implementation relies on work of Roussel et al. (2020), Tao et al. (2015), and de Conto et al. (2017).

Citation: Donager, Jonathon J., Andrew J. Sánchez Meador, and Ryan C. Blackburn 2021. Adjudicating Perspectives on Forest Structure: How Do Airborne, Terrestrial, and Mobile Lidar-Derived Estimates Compare? Remote Sensing 13, no. 12: 2297. https://doi.org/10.3390/rs13122297

PatchMorph: Patch Delineation Algorithm

The patchwoRk function implements a patch delineation algorithm [at present it only implements 'PatchMorph' (Girvetz & Greco 2007), which can delineate patches across a range of spatial scales based on three organism-specific thresholds - (1) land cover density threshold, (2) habitat gap maximum thickness (gap threshold), and (3) habitat patch minimum thickness (spur threshold)].

Citation: Girvetz EH, and Greco SE. 2007. How to define a patch: a spatial model for hierarchically delineating organism-specific habitat patches. Landscape Ecology 22: 1131-1142. http://dx.doi.org/10.1007/s10980-007-9104-8

Copy Link

Version

Install

install.packages('spanner')

Version

1.0.2

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Andrew Sanchez Meador

Last Published

February 3rd, 2026

Functions in spanner (1.0.2)

create_rotation_gif

Create animated GIF of rotating 3D point cloud
download_naip_for_las

Download NAIP Imagery for LiDAR Extent
colorize_las

Colorize a LAS object using multiple methods
get_raster_eigen_treelocs

Obtain tree information by rasterizing point cloud values of relative neighborhood density and verticality within a slice of a normalized point cloud
las2xyz

Convert LAS object to XYZ matrix
cylinderFit

Point cloud cylinder fitting as per de Conto et al. 2017 as implemented here: https://github.com/tiagodc/TreeLS
compute_ssao

Compute SSAO (Screen Space Ambient Occlusion) for point cloud
merge_las_colors

Merge RGB colors from two colorized LAS objects
eigen_metrics

Calculates eigen decomposition metrics for fixed neighborhood point cloud data
spanner_pal

Spanner color palette
sum_rasters_by_suitability

Sum rasters by suitability level
process_rasters_patchmorph

Process rasters based on suitability, gap, and spur parameters
plot_raster_by_name

Plot a raster by its name
process_tree_data

Obtain tree information by processing point cloud data
segment_graph

Segment a terrestrial point cloud using graph theory.
compute_pcv

Compute PCV (Portion de Ciel Visible) for point cloud