# Rahvastiku jaotamine (WorldPop)

## Eesmärk

Määrata igale teede sõlmele "rahvastikukoormus" — kui palju inimesi elab selle sõlme läheduses. See on liikumiste genereerimise (trip generation) aluseks.

## Andmeallikas

**WorldPop** 100 m rahvastikuruudustik:
```
https://data.worldpop.org/GIS/Population/Global_2000_2020/2020/EST/est_ppp_2020.tif
```
Iga 100 m × 100 m ruudustiku lahtris on hinnanguline rahvaarv. Cache: `liiklussagedus/data/est_ppp_2020.tif`.

## Meetod

### 1. Rasteri kärpimine valla piirile

```python
with rasterio.open(POP_TIF) as src:
    pop_clipped, pop_transform = mask(src, geom, crop=True, nodata=-99999)
```

Raster lõigatakse valla piiriga (`rasterio.mask`), et töötada ainult piirkonna andmetega.

### 2. Teede sõlmede kaugus rasterist

Iga sõlme kohta määratakse lähedal asuv rahvastik (100 m raadiuses) kas:
- puhvri abil (`geometry_mask` vms), või
- lähima lahtri väärtusena

### 3. Rahvastiku liitmine väljapääsupunkti teenindusalale

Kasutades teenindusala jaotust ([[Liiklussageduse kaudne hindamine/02_Metoodika/03 Väljapääsupunktid ja teenindusalad]]), summeeritakse iga väljapääsupunkti teenindusala rahvastik:

```python
catchment_df   # exit_node, population_catchment, nodes_served, ...
```

### 4. Trippide genereerimine (trip generation)

```python
TRIPS_PER_PERSON = 2.0
daily_trips_to_exit = population_catchment * TRIPS_PER_PERSON
```

Iga inimene teeb eeldatavalt 2 päevast liikumist (kodust välja + tagasi) → päevane trippide arv väljapääsupunkti.

### 5. Hõreda asustuse analüüs

```python
SPARSE_THRESHOLD = 10  # inimest/km²
```

Piirkonnad alla tihedusläve määratletakse "hõreda asustusega" (`sparse_*` väljundid) — nendes on liiklusnõudlus minimaalne.

## Väljundid

- `{prefix}_catchment.csv` — `exit_node, population_catchment, nodes_served, avg_distance_m, daily_trips_to_exit, edge_length_km, trips_per_km`
- `{prefix}_pop_vulnerability.csv` — rahvastikupõhine haavatavus (ümbersõit, inim-km detour)
- `{prefix}_critical_edges.csv` — kriitilised lõigud (`trapped_nodes`, `trapped_population`)
- `{prefix}_sparse_*.csv` — hõreda asustusega alad
- PNG-kaardid: rahvastikujaotus, kriitilised lõigud

## Kriitiliste lõikude tuvastamine

Lõigud, mille eemaldamisel jäävad sõlmed (ja rahvastik) ilma ühenduseta väljapääsupunktini — "bridge" analüüs + teisejärgulised (suur ümbersõit).

## Täpsuspiirangud

- WorldPop on **modelleeritud** rahvastik, mitte loendus — võib erineda tegelikust kuni märkimisväärselt väikestes külades
- `TRIPS_PER_PERSON = 2.0` on lihtsustus (ei arvesta kaubavedu, läbisõitu, turismi)
- Need on metoodika peamised täpsusallikad
