bluegreencity-ki

Subway Tunnel Criterion

Overview

The subway_tunnel criterion evaluates drought risk from proximity to underground Stadtbahn/subway tunnels. Tunnels limit the available rooting volume, can act as local drainage (lowering the groundwater table) and warm the surrounding soil — all factors that increase drought stress for nearby street trees (original motivation: issue #139, based on a suggestion by LHH).

The criterion is currently configured with weight 0.0: it contributes extras and the ML feature subway_tunnel_dist_m to the AutoGluon training dataset, but not to the weighted total score (pending weight recalibration).

Implementation

Location

Data Source

The issue originally referenced the Basis-DLM (ver03_l, BKT=1200), which contains the whole Stadtbahn network including surface sections. Overture was chosen instead because its is_tunnel flag directly identifies the underground sections.

How It Works

  1. Load tunnels: GPKG cache or Overture fetch (bbox from config).
  2. Nearest distance: sjoin_nearest computes the distance from each tree to the nearest tunnel segment.
  3. Distance breaks: The distance is mapped to a risk score via configurable breaks.

Scoring Logic

distance ≤ 15 m  → 0.8   (tree directly above/beside the tunnel)
distance ≤ 30 m  → 0.5   (within the influence zone)
distance > 30 m  → 0.1   (no tunnel influence)

Trees receive the neutral score when no tunnel data is available.

Configuration

inputs:
  overture_transportation:
    bbox_wgs84: [9.60, 52.30, 9.92, 52.46]
    rail_classes: ["subway"]
    tunnel_only: true
    cache_path: "./data/derived/transport/subway_tunnels.gpkg"
    refresh_days: 365

criteria:
  - name: "subway_tunnel"
    weight: 0.0
    params:
      distance_breaks: [15, 30]
      distance_scores: [0.8, 0.5, 0.1]

Parameters

Parameter Type Default Description
distance_breaks list[float] [15, 30] Distance thresholds in metres
distance_scores list[float] [0.8, 0.5, 0.1] Risk score per class (one more than breaks)

Output Fields

  1. subway_tunnel_risk — risk score (0–1)
  2. subway_tunnel_dist_m — distance to the nearest tunnel segment in metres (ML feature)

Known Limitations

  1. Weight 0.0 until weights are recalibrated.
  2. 2D distance only: tunnel depth is not considered.
  3. Overture completeness: relies on OSM-derived tunnel mapping quality.

Changelog

2026-07-22: Initial Implementation (#139)


Author: BlueGreenCity-KI Team Last Updated: 2026-07-22