Short answer
Route screening uses GIS to narrow a wide search area down to a defensible corridor for a pipeline, road, transmission line or cable, before expensive ground investigation. The method is a weighted least-cost path over a cost surface built from terrain, geohazard, environmental and land-use constraints. The output is never a final alignment — it is a corridor and a transparent argument about why this route beats the alternatives. The quality of that argument lives entirely in the weighting scheme and the constraint data behind it.
From constraints to a cost surface
A cost surface is a raster where each cell's value represents how undesirable it is to route through that cell. Building it is a three-step move: gather constraints, classify each into comparable cost values, then combine with weights.
Constraints for a linear project typically include:
- Terrain: slope (derived from a DEM), and for some projects ruggedness or aspect. Steep ground raises construction cost and stability risk.
- Geohazards: landslide inventory and susceptibility, karst/dissolution, active faults, liquefiable or soft ground, mining legacy.
- Hydrology: flood zones, watercourse crossings, wetlands, groundwater protection zones.
- Environment and heritage: protected areas, priority habitats, archaeology.
- Human: settlements, buildings, land use, existing infrastructure to follow or avoid.
Start from a DEM and derive slope:
gdaldem slope -p dem.tif slope_pct.tif
The -p flag outputs slope as percent. Make sure the DEM is in a projected, metric CRS so horizontal and vertical units agree, otherwise slope is wrong.
Classifying and weighting
Each constraint must be expressed on a common cost scale (say 1 = easy to 10 = avoid, with hard exclusions set to NoData or a very high cost). Reclassify slope into cost bands — for example 0–5% → 1, 5–15% → 3, 15–30% → 6, >30% → 9 — using QGIS Raster calculator or Reclassify by table, or:
gdal_calc.py -A slope_pct.tif \
--calc="1*(A<5)+3*((A>=5)*(A<15))+6*((A>=15)*(A<30))+9*(A>=30)" \
--outfile=slope_cost.tif
Rasterise vector constraints (landslide polygons, flood zones, designations) onto the same grid and resolution, then combine into a weighted sum:
gdal_calc.py -A slope_cost.tif -B hazard_cost.tif -C env_cost.tif \
--calc="0.4*A + 0.35*B + 0.25*C" --outfile=cost_surface.tif
The weights (0.4 / 0.35 / 0.25 here) are the most contestable part of the whole study. Choose them with the project engineers, document the reasoning, and plan to test alternatives.
Least-cost path, step by step
A least-cost path (LCP) finds the route that minimises accumulated cost between two points — not the shortest line, but the cheapest one given the cost surface.
- Accumulated cost surface: from the start point, compute the cumulative cost to reach every cell. In QGIS use GRASS r.cost (
grass7:r.cost), in ArcGIS the Distance Accumulation / Cost Distance tools. - Back-link / direction raster: produced alongside the accumulated-cost surface, it records the least-cost direction out of each cell.
- Trace the path: from the destination, follow the back-link downhill to the source. In GRASS, r.drain (
grass7:r.drain); in ArcGIS, Optimal Path As Line / Cost Path.
GRASS example inside the QGIS Processing toolbox: run r.cost with cost_surface.tif and the start point to get cumulative.tif and direction.tif, then r.drain with the destination to extract the line.
To express a corridor rather than a single line — which is what screening should deliver — sum the accumulated cost from both endpoints and threshold the result. Cells whose combined cost is within, say, 10% of the minimum define a band of near-optimal routes. ArcGIS Corridor does this directly.
Worked example
For a 25 km gas pipeline between two valves:
- Project DEM and all constraints to the local UTM zone (EPSG:326xx) at 10 m resolution.
- Derive and reclassify slope; rasterise landslide susceptibility, flood zones and a 100 m buffer around dwellings as hard high-cost.
- Weight terrain 0.4, geohazard 0.35, environment 0.25; set protected areas to NoData (absolute exclusion).
- Run
r.costfrom the start valve; runr.drainto the end valve. - Generate a corridor at the 10% threshold and clip it to a 500 m working width.
- Tabulate what the centreline crosses: number of watercourse crossings, length on slopes >30%, hectares of priority habitat, fault crossings.
That crossing table is the deliverable engineers and regulators actually compare between options.
Common pitfalls and why they happen
- Confusing shortest with cheapest. An LCP that ignores cost weighting just returns a straight-ish line. The symptom is a route that marches across steep, hazardous ground — check that costs actually vary across the surface.
- Mismatched grids. Cost rasters at different resolutions or extents produce garbage when combined. Align them to one grid (
gdalwarp -tr 10 10 -te ...) first. - Geographic CRS for slope. Computing slope from a DEM in degrees mixes angular horizontal units with metric vertical units; the slope values are meaningless. Reproject to metres.
- Over-trusting a single weight set. A route is only as credible as its weights. If you never sensitivity-test, you have an opinion dressed as analysis.
- Treating the line as the design. The LCP is one path through a corridor; it crosses cells, not real ground. Always widen to a corridor and field-check.
- Stale or coarse hazard data. A 1:50,000 susceptibility map cannot resolve a single unstable slope. Match data resolution to the decision; flag where it is too coarse.
Validation and QA
- Sensitivity analysis: rerun with terrain-dominant and hazard-dominant weightings; if the corridor shifts wildly, the result is fragile and you must say so.
- Resolution check: confirm the DEM and constraints can actually resolve the features driving cost.
- Overlay on imagery and high-resolution terrain (lidar where available) to catch cliffs, gullies and structures the coarse surface missed.
- Crossing audit: verify each watercourse, road and fault crossing the route table claims.
- Field reconnaissance of the worst constraint points before the corridor informs design.
Bathyl perspective
We build route screening so the weighting is visible and the corridor is testable. A route that can survive a sensitivity analysis and a crossing audit is worth far more than a single confident-looking line, because it tells the engineering team where the real risk and the real choices are.
Related reading
- GIS for Landslide Inventory Mapping
- GIS for Environmental Impact Studies
- Remote Sensing for Geological Mapping
- GIS and spatial analysis