Solar Site Suitability Analysis

Purpose

Solar Site Suitability Analysis creates a terrain-based suitability map, visual-impact proxy, and ranked candidate sites for early solar siting.

Typical Questions This Tool Helps Answer

  • Which candidate areas are strongest when balancing terrain suitability and visual impact?
  • How much do transmission lines, substations, and roads change candidate ranking?
  • Are top candidates stable under threshold/profile sensitivity checks?

Background

Solar siting is a screening and prioritization workflow, not a final approval workflow. This chapter is designed to support early-stage shortlist generation by combining terrain-derived suitability with optional infrastructure-aware reranking.

The workflow separates base score and final reranked score so teams can explain why rank changes occurred when infrastructure context is introduced. Final decisions still require permitting, interconnection, land-control, and environmental review.

Methodological Considerations

  • Use a DEM appropriate to your planning scale and keep it consistent across comparisons.
  • Add infrastructure layers when you want practical deployment-aware ranking behavior.
  • Use sweep outputs to test shortlist stability before operational decisions.

Practical Interpretation Pitfalls

Common mistakes include treating top-ranked outputs as final decisions, ignoring sensitivity diagnostics, and comparing runs with different profile/threshold settings without documenting those differences.

Inputs

InputRequiredNotes
demYesInput DEM raster.
candidate_thresholdNoCandidate score threshold (default 0.7).
max_candidate_sitesNoCandidate cap (default 200).
min_candidate_separation_cellsNoMinimum candidate spacing in cells (default 3, set 0 to disable).
transmission_linesNoOptional transmission lines for infrastructure-aware ranking.
substationsNoOptional substations for infrastructure-aware ranking.
road_networkNoOptional roads for access-aware ranking.
infra_weight_profileNobalanced, grid_priority, or access_priority (default balanced).
sweep_specNoOptional JSON sweep specification. When supplied, the tool executes sweep runs and writes run-matrix and sensitivity outputs.
output_prefixNoOutput prefix (default solar_siting).

Outputs

Output KeyDescription
suitability_scoreSuitability raster.
visual_impactVisual-impact proxy raster.
candidate_sitesRanked candidate points.
summaryJSON summary with candidate and infrastructure reranking metrics.
run_matrix_summaryOptional CSV sweep run matrix.
sensitivity_reportOptional JSON sweep sensitivity report with normalized span and stability_class indicators.
sensitivity_report_htmlOptional HTML sweep sensitivity report.
stability_mapOptional GeoTIFF sweep stability classes (3=high, 2=medium, 1=low).
html_reportOptional HTML report.

Candidate-site attributes include RANK, SCORE, VIS_IMPACT, FINAL_SCORE, INFRA_BONUS, GRID_DIST_M, and ACCESS_DIST_M.

When sweep_spec is supplied, summary includes an executed sweep block and companion run-matrix/sensitivity artifacts for scenario traceability, including primary_relative_span and stability_class.

Example

import whitebox_workflows as wbw

env = wbw.WbEnvironment()
result = env.solar_site_suitability_analysis(
        dem="dem_30m.tif",
        transmission_lines="grid/transmission_lines.gpkg",
        substations="grid/substations.gpkg",
        road_network="transport/roads.gpkg",
        infra_weight_profile="grid_priority",
        output_prefix="solar_siting"
)

Common Questions

Q: What changes when infrastructure layers are added? A: Candidate ranking is adjusted using infrastructure bonus, and reranking impact is reported in summary metrics.

Q: Which setting usually changes shortlist size the most? A: candidate_threshold, followed by separation and max-site limits.

Q: Are top scores always final decisions? A: No. Use this as screening output and combine with land-control, permitting, and interconnection checks.