Sidewalk Vegetation Accessibility Monitoring

What This Tool Does

Sidewalk Vegetation Accessibility Monitoring uses LiDAR point cloud data to assess vegetation clearance along sidewalk corridors. It classifies each sidewalk segment as obstructed, clear, or no_lidar_coverage and delivers a GeoPackage with per-segment metrics, a JSON summary report, and an HTML report.

Typical Questions This Tool Helps Answer

  • Which sidewalk or trail segments have vegetation encroachment that currently violates minimum pedestrian clearance standards?
  • Where is the maintenance backlog most severe, and which corridor segments should be prioritized for this season's vegetation crew?
  • What percentage of total corridor length currently meets versus fails the clearance requirements based on this LiDAR survey?

When To Use

  • Systematic vegetation clearance compliance audits against a minimum clearance height
  • Dispatch prioritization for maintenance crews based on LiDAR-identified obstructions
  • Pre-growing-season and post-storm screening of pedestrian corridor accessibility
  • Monitoring program baselines for year-over-year clearance trend tracking

What You Need

InputDescription
LiDAR tilesLAS/LAZ tile files or a directory path containing tiles.
Sidewalk networkA line or polygon vector layer of the sidewalk network to audit.

Key Settings

SettingDefaultGuidance
clearance_height_m2.5 mMinimum vegetation height considered obstructive. Adjust to match local standards (e.g., 2.4 m for ADA contexts).
buffer_distance_m3.0 mRadius around each segment sampled for vegetation height. Should exceed the sidewalk half-width.
segment_length_m10.0 mSplits long sidewalk lines into segments for fine-grained mapping. Use a large value (e.g., 9999) to keep original features unsegmented.

What You Get

DeliverableFormatDescription
sidewalk_accessibilityGeoPackagePer-segment classification with obstruction metrics.
summaryJSONRun-level statistics and QA assessment.
html_reportHTMLVisual summary of the monitoring run.

The output GeoPackage contains a field STATUS with values obstructed, clear, or no_lidar_coverage for each analysis unit, plus MAX_OBSTR (maximum vegetation height m), MEAN_OBSTR (mean obstruction m), and TILE_HITS (number of tiles covering the unit).

Reading the Summary Report

The JSON summary key items to review:

  • status: "pass" (coverage adequate) or "review" (coverage below 75% threshold)
  • summary.coverage_fraction: proportion of sidewalk units with LiDAR data
  • summary.obstructed_fraction_of_observed: fraction of covered units classified as obstructed
  • summary.no_lidar_coverage_features: count of units without data (coverage gaps)
  • interpretation.qa_assessment: plain-language guidance based on run statistics

Runtime Output Keys

result.outputs["sidewalk_accessibility"]  # path to output GeoPackage
result.outputs["summary"]                 # path to summary JSON
result.outputs["html_report"]             # path to HTML report

Common Questions

Q: What does STATUS=no_lidar_coverage mean? A: No LiDAR tiles with data were found near that segment. These units are not included in obstruction statistics. Confirm tile coverage extent and reprocess after adding missing tiles if applicable.

Q: The obstruction fraction looks higher than expected. What should I check? A: First confirm clearance_height_m matches the local standard — a lower threshold will flag more units. Also check season: summer LiDAR will include full-leaf canopy. Values above 80% in a relatively open area should trigger a spot-check of several obstructed units in the field.

Q: Why does the output have many more features than my input sidewalk layer? A: The tool splits line features into segments of segment_length_m (default 10 m) for fine-grained location of obstructions. Each output segment has a SOURCE_FID field pointing back to the original sidewalk feature.

Q: How do I filter just the obstructed segments for field dispatch? A: In QGIS or ArcGIS, filter the GeoPackage layer by STATUS = 'obstructed'. For severe priority, add a secondary filter on MAX_OBSTR (e.g., MAX_OBSTR > 3.5).

Results Delivery Checklist

  • summary["status"] confirmed as "pass" (or coverage gaps documented)
  • Output GeoPackage reviewed — STATUS field populated for all analysis units
  • obstructed_fraction_of_observed reviewed for plausibility given season and land cover
  • HTML report reviewed and archived with project deliverables
  • clearance_height_m and segment_length_m values recorded in project documentation

Operational Notes

  • This workflow classifies each analysis unit strictly as obstructed, clear, or no_lidar_coverage using LiDAR-derived obstruction heights and local coverage.
  • Priority dispatch should be based on STATUS plus obstruction magnitude (MAX_OBSTR, MEAN_OBSTR), not on corridor length alone.
  • This workflow does not output a separate confidence raster; QA confidence is represented through coverage and summary diagnostics (status, coverage_fraction, and tile-hit statistics).
  • lidar_change_and_disturbance_analysis
  • lidar_terrain_product_suite
  • lidar_qa_and_confidence

References

  • Runtime implementation: wbtools_pro/src/tools/lidar_processing/change_and_accessibility.rs
  • LiDAR and Forest Analytics bundle overview: manual/pro-tools-customer/src/lidar_forest/overview.md

When To Use This Workflow

Use Sidewalk Vegetation Accessibility Monitoring when you need repeatable, segment-level accessibility screening from LiDAR tiles to drive maintenance triage and dispatch planning.