PRO Production

Workflow-grade Pro analysis with audit-ready outputs.

workflow pro

## Workflow Narrative

Service Area Planning and Coverage Optimization

### Problem It Solves

Which facilities and scenarios provide the strongest service coverage, and where do unmet demand gaps remain?

### Who It Is For

- Accessibility planners, emergency coverage teams, and utility service design analysts.

### Primary User

Municipal/public safety GIS teams, utilities, and logistics planners managing service-area targets.

### What It Does

- Builds network-based multi-ring service-area polygons from facility points over a line network.
- Flags uncovered demand points outside baseline service coverage.
- Produces scenario summary and candidate ranking CSV outputs for open/close planning workflows.

### How It Works

- Validates network/facility geometry types and parses ring costs.
- Runs network service-area generation using the OSS network engine with polygon outputs.
- Computes demand coverage and uncovered demand diagnostics against generated polygons.
- Optionally evaluates scenario CSV variants (`scenario_id,facility_id,is_open[,capacity]`) and exports comparative KPI rows.
- Indicative KPI formula: `coverage_pct = 100 * covered_demand / total_demand`.

### Why It Wins

- Replaces disconnected manual GIS steps with a reproducible network-derived coverage workflow and explicit planning artifacts.

### Typical Buying Trigger

Teams need auditable facility coverage plans with scenario comparison outputs for governance or budget review.

### Typical Presets

- baseline-only: generate default service areas + uncovered demand.
- scenario-planning: include open/close scenario CSV for option analysis.
- candidate-screening: rank facilities by demand coverage proxy for expansion planning.

## Inputs

Parameter | Optional | Description
--- | --- | ---
network | no | Input line network layer (roads, trails, utility lines).
facilities | no | Input facility point layer used as service origins.
demand_points | yes | Optional demand point layer used for covered/uncovered diagnostics and KPI generation.
ring_costs | no | Numeric array of travel-cost ring thresholds (e.g., `[5, 10, 15]`).
scenarios | yes | Optional CSV with `scenario_id,facility_id,is_open[,capacity]` for open/close scenario runs.
service_areas | no | Output vector path for service-area polygons.
uncovered_demand | no | Output vector path for uncovered demand points.
scenario_summary_csv | no | Output CSV path for scenario KPIs.
ranked_candidates_csv | no | Output CSV path for candidate ranking metrics.

## Outputs

Parameter | Type | Description
--- | --- | ---
service_areas | GeoJSON/GeoPackage/Shapefile | Baseline network-derived multi-ring service-area polygons.
uncovered_demand | GeoJSON/GeoPackage/Shapefile | Demand points outside baseline service-area coverage.
scenario_summary_csv | CSV | Scenario-level KPI table (`scenario_id,total_demand_covered_pct,avg_accessibility,outlier_count`).
ranked_candidates_csv | CSV | Candidate ranking table (`candidate_id,coverage_gain_pct,avg_distance_improvement,rank`).

## Python Example

    import whitebox_workflows as wbw

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

    result = wbe.service_area_planning_and_coverage_optimization(
        network="data/street_network.shp",
        facilities="data/facilities.shp",
        demand_points="data/demand_points.shp",
        ring_costs=[5.0, 10.0, 15.0],
        scenarios="data/service_scenarios.csv",
        service_areas="output/service_areas.geojson",
        uncovered_demand="output/uncovered_demand.geojson",
        scenario_summary_csv="output/scenario_summary.csv",
        ranked_candidates_csv="output/ranked_candidates.csv",
    )

    print(result)

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