PRO Production

Workflow-grade Pro analysis with audit-ready outputs.

workflow pro

## Workflow Narrative

Corridor Mapping and Route Planning

### Problem It Solves

What is the terrain-optimal route for this linear infrastructure, and what alternative corridor band exists within an acceptable cost margin?

### Who It Is For

- Infrastructure planners, environmental consultants, and natural resource agencies assessing route options for roads, pipelines, or utility lines.

### Primary User

Forestry companies, energy utilities, and environmental regulatory consultancies evaluating new linear infrastructure corridors.

### What It Does

- Builds a terrain impedance cost surface from DEM-derived slope and roughness.
- Finds the least-cost path between two user-specified endpoints using Dijkstra accumulation.
- Delineates a corridor suitability band of near-optimal alternative routes.
- Supports polygon exclusion zones (steep terrain, protected areas, existing infrastructure).

### How It Works

- Computes per-cell cost from slope (and optionally local roughness) normalised to [0, 1].
- Runs Dijkstra from both start and end to accumulate cost surfaces.
- Least-cost path traced back from end → start through predecessor pointers.
- Corridor band: cells where `acc_from_start + acc_from_end ≤ optimal_cost × (1 + tolerance)`.
- Indicative formula: cost ~= w_slope × slope_norm + w_rough × roughness_norm (profile-controlled weights).

### Why It Wins

- Compared with OSS least-cost building blocks (`cost_distance` + `cost_pathway` + `cost_allocation`), this tool is an end-to-end siting workflow: it derives the terrain cost surface from the DEM, computes the optimal route, delineates near-optimal corridor alternatives, and packages decision-ready outputs in one run.
- Why it wins vs OSS least-cost tools:
- Requires fewer analyst preparation steps (no separate friction-raster engineering pipeline required).
- Returns vector route geometry with engineering-friendly attributes, not just a path raster.
- Produces a corridor suitability band for option-space review, not only a single least-cost trace.
- Supports polygon exclusion constraints directly in the routing workflow.
- Emits a machine-readable summary contract for reproducible QA/reporting integration.

### Typical Buying Trigger

A feasibility study needs a first-pass route alignment and suitability band for stakeholder review before field surveys. Cost profiles: - `slope_only` — slope-only impedance; fastest, suitable for quick screening. - `slope_roughness` — balanced slope + roughness blend (default); recommended for road and pipeline siting. - `conservative` — equal slope/roughness weighting; preferred for sensitive terrain or pipelines.

## Inputs

Parameter | Optional | Description
--- | --- | ---
dem | no | Input DEM raster path.
start_features | no | Start feature vector path (point or polygon).
end_features | no | End feature vector path (point or polygon).
constraints | yes | Optional exclusion zone vector path (polygons to avoid).
cost_profile | yes | Cost weighting profile: `slope_only` | `slope_roughness` | `conservative`. Default: `slope_roughness`.
terminal_anchor_strategy | yes | Polygon terminal anchor mode: `mixed` | `centroid_only` | `boundary_only`. Default: `mixed`.
corridor_tolerance | yes | Fraction above optimal cost included in corridor suitability band. Default: `0.15`.
output_prefix | yes | Output prefix for generated artifacts.

## Outputs

Parameter | Type | Description
--- | --- | ---
cost_surface | GeoTIFF | Normalized terrain impedance surface [0-1].
accumulated_cost | GeoTIFF | Dijkstra accumulated cost from selected start anchor.
optimal_route | GeoPackage | Least-cost route LineString with route metrics.
corridor_suitability | GeoTIFF | Binary suitability band (`1` = within tolerance).
summary | JSON | Summary contract with metrics, selected anchors, and harmonization metadata.
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")

    cost, acc_cost, route, suitability, summary = wbe.corridor_mapping_intelligence(
        dem="data/dem.tif",
        start_features="data/start_access_points.gpkg",
        end_features="data/forest_block_targets.gpkg",
        cost_profile="slope_roughness",
        terminal_anchor_strategy="mixed",
        corridor_tolerance=0.15,
        output_prefix="output/access_road",
    )

    print(route)       # path to optimal_route.gpkg
    print(suitability) # path to corridor suitability raster
    print(summary)     # path to summary JSON

## 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