PRO Production

Workflow-grade Pro analysis with audit-ready outputs.

workflow pro

## Workflow Narrative

Sidewalk Vegetation Accessibility Monitoring

### Problem It Solves

Which sidewalk segments are most obstructed by vegetation, and where is LiDAR coverage missing?

### Who It Is For

- Municipal accessibility teams, urban forestry programs, and public-works corridor management.

### Primary User

Municipal accessibility offices and operations teams responsible for pedestrian corridor clearance.

### What It Does

- Scores vegetation encroachment along sidewalks using tile-native LiDAR processing.
- Aggregates all tile evidence into one city-level output layer.
- Supports centerline segmentation for line inputs and feature-level fallback for polygon inputs.

### How It Works

- Reads LiDAR tiles from an array or directory and processes them one tile at a time.
- Builds per-tile DSM/DTM and computes height-above-ground obstruction surfaces.
- Reprojects sidewalks to tile CRS when needed, samples obstruction neighborhoods, and aggregates results.
- For line/multiline sidewalks, optionally segments centerlines into fixed-length analysis units.
- QA acceptance guidance:
- `status=pass` indicates coverage and obstruction diagnostics met baseline QA thresholds.
- `diagnostics.acceptance_thresholds.minimum_coverage_fraction` defaults to 0.75; values below this trigger review.
- `summary.no_lidar_coverage_features` are unresolved units and should be targeted for additional capture or fallback policy.
- Prioritize operational responses using `STATUS`, `MAX_OBSTR`, and tile-level diagnostics together.
- MVP hardening assets:
- Municipal ingestion guide: `docs/internal/development/LIDAR_CHANGE_SIDEWALK_MUNICIPAL_SCHEMA_INGESTION_GUIDE_2026_04_14.md`
- Benchmark fixture scaffold: `tests/fixtures/sidewalk_accessibility_city_benchmark/`

## Inputs

Parameter | Optional | Description
--- | --- | ---
lidar_tiles | no | LiDAR tiles as array or directory path (LAS/LAZ/ZLidar).
sidewalks | no | Sidewalk layer (line, multiline, polygon, or multipolygon).
sidewalks_epsg | yes | EPSG override when sidewalk CRS metadata is missing.
resolution | yes | Intermediate tile raster resolution in map units.
segment_length_m | yes | Segment length for line inputs; ignored for polygon inputs.
clearance_height_m | yes | Height threshold used to label obstruction status.
buffer_distance_m | yes | Neighborhood sampling radius around sidewalk geometry.

## Outputs

Parameter | Type | Description
--- | --- | ---
sidewalk_accessibility | GeoPackage | City-level aggregated sidewalk/segment accessibility layer.
summary | JSON | Machine-readable summary report containing coverage, obstruction counts, and QA diagnostics.
html_report | HTML | Human-readable customer-facing report generated from the summary contract for stakeholder review and QA traceability.

## Python Example

    import whitebox_workflows as wbw

    wbe = wbw.WbEnvironment(include_pro=True, tier="pro")

    access, summary = wbe.sidewalk_vegetation_accessibility_monitoring(
        lidar_tiles="data/lidar_1km_tiles/",
        sidewalks="data/sidewalk_centerlines.gpkg",
        segment_length_m=10.0,
        clearance_height_m=2.5,
        output_prefix="output/sidewalk_access",
    )

    print(access)
    print(summary)

## License Notice

Use of this function requires a license for Whitebox Workflows Professional (WbW-Pro). Please visit www.whiteboxgeo.com to purchase a license.

## Project Links

WbW Homepage User Manual Support WbW