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.

  1. 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.
  2. Back-link / direction raster: produced alongside the accumulated-cost surface, it records the least-cost direction out of each cell.
  3. 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:

  1. Project DEM and all constraints to the local UTM zone (EPSG:326xx) at 10 m resolution.
  2. Derive and reclassify slope; rasterise landslide susceptibility, flood zones and a 100 m buffer around dwellings as hard high-cost.
  3. Weight terrain 0.4, geohazard 0.35, environment 0.25; set protected areas to NoData (absolute exclusion).
  4. Run r.cost from the start valve; run r.drain to the end valve.
  5. Generate a corridor at the 10% threshold and clip it to a 500 m working width.
  6. 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

Sources