bluegreencity-ki

Pit Size / Root Space Criterion

Overview

The pit_size criterion evaluates below-ground root space quality based on the Wurzel Wurzelraum attribute from the tree inventory. Larger, unsealed root zones allow better water uptake and mycorrhizal networks, reducing drought risk. Small, sealed tree pits restrict root development and water access.

This criterion is distinct from:

Implementation

Location

How It Works

  1. Read mapping from config.yaml (STRICT mode — RuntimeError if missing)
  2. Read source column (pit_size, mapped from Wurzel Wurzelraum via column_mapping)
  3. Normalise raw values to lowercase/stripped for robust matching
  4. Map each category to a risk score via the configured mapping
  5. Fill missing values with neutral_score (default 0.5)

Scoring Logic

Category                              →  Risk Score
────────────────────────────────────────────────────
gesamter Wurzelbereich versiegelt     →  0.9 (highest risk)
Baumscheibe kleiner als 2 x 2 m      →  0.8
Baumstreifen schmaler als 2 m        →  0.7
Baumscheibe, 2 x 2 m bis 3 x 3 m    →  0.5
Baumstreifen, 2 m bis 3 m breit      →  0.4
Baumscheibe, größer als 3 x 3 m      →  0.3
Graben / Böschung                     →  0.3
Baumstreifen, breiter als 3 m        →  0.2
gesamter Wurzelbereich unversiegelt   →  0.1 (lowest risk)
NaN / missing                         →  0.5 (neutral)

Data Availability

Configuration

Basic Configuration

criteria:
  - name: "pit_size"
    weight: 0.5  # example; current calibrated weight in config/config.yaml
    params:
      mapping:
        "gesamter wurzelbereich versiegelt": 0.9
        "baumscheibe kleiner als 2 x 2 m": 0.8
        "baumstreifen schmaler als 2 m": 0.7
        "baumscheibe, 2 x 2 m bis 3 x 3 m": 0.5
        "baumstreifen, 2 m bis 3 m breit": 0.4
        "baumscheibe, größer als 3 x 3 m": 0.3
        "baumstreifen, breiter als 3 m": 0.2
        "gesamter wurzelbereich unversiegelt": 0.1
        "graben / böschung": 0.3
        "nan": 0.5
        "": 0.5

Column Mapping

The CSV column Wurzel Wurzelraum is mapped to pit_size in the pipeline via:

column_mapping:
  "Wurzel Wurzelraum": "pit_size"

Parameters

Parameter Type Required Description
mapping dict Yes Category → risk score mapping (STRICT: must be in config)

Data Source

Outputs

Column Type Description
pit_size_risk float [0, 1] Risk score from root space category
pit_size_value str Raw category label (extras)

Changelog