Sfoglia il codice sorgente

Liiklussageduse kaudne hindamine: kahte rahvastiku varianti (addr + all), VAL_0193

ardo 3 settimane fa
parent
commit
571529328b

+ 27 - 13
Doktoritöö/Liiklussageduse kaudne hindamine/02_Metoodika/04 Rahvastiku jaotamine.md

@@ -16,12 +16,12 @@ bld = bld[bld["addr:housenumber"].notna()]   # ainult aadressiga = eluruumid
 - **Aadressiga hooned** = tegelikud eluruumid. Hõreasustuses on palju suvilaid/abihooneid (greenhouse, shed, garage...) ilma aadressita — need välistatakse.
 - Skript: `pipeline/building_population.py`
 
-### 2. Hoonete omistamine sõlmedele
+### 2. Kahte rahvastiku varianti
 
-```python
-dists, idxs = node_tree.query(bld_xy, k=1)   # iga hoone lähim sõlm
-if dist <= 300: node_population[node] += persons
-```
+Kuna üks lävi ei tööta kõigis piirkondades, arvutatakse **kaks varianti**:
+
+- **`population` / `population_addr` (konservatiivne)** — AINULT aadressiga hooned. Otepääl õige (suvilad aadressita, väldib ülehinnangut), aga Valga/Võru maapiirkondades alahindab, sest seal on palju ilma aadressita elumaju.
+- **`population_all` (laiapõhjaline)** — kõik elamutüübid + `building=yes` (ka ilma aadressita). Katab Valga/Võru ilma aadressita majad, aga Otepääl/Võrus võib ülehinnata (suvilad, abihooned).
 
 Iga hoone → **lähim tee sõlm** (max 300 m). Ei loeta hoonet mitu korda.
 
@@ -32,9 +32,11 @@ PERSONS_PER_BUILDING = 2.2    # Eesti keskmine leibkond
 PERSONS_PER_APARTMENT = 12.0  # korterelamu
 ```
 
-### 4. Rahvastiku liitmine väljapääsupunkti teenindusalale
+### 4. Mõlema variandi ülekandmine väljapääsupunktidesse
 
-Kasutades teenindusala jaotust, summeeritakse iga väljapääsupunkti teenindusala rahvastik.
+`gravity_exit_analysis.py` §9 arvutab gravity-jaotuse osakaalud (shares) **ühe korra** (ei sõltu rahvastiku suurusest) ja korrutab mõlema variandiga:
+- `gravity_population` / `gravity_trips` — addr variant
+- `gravity_population_all` / `gravity_trips_all` — all variant
 
 ### 5. Trippide genereerimine (trip generation)
 
@@ -45,16 +47,28 @@ daily_trips_to_exit = population_catchment * TRIPS_PER_PERSON
 
 ## Väljundid
 
-- `{prefix}_pop_node_population.csv` — sõlme-taseme rahvastik (node, population)
+- `{prefix}_pop_node_population.csv` — sõlme-taseme rahvastik (node, population, population_addr, population_all)
+- `{prefix}_gravity_exit_population.csv` — väljapääsupunkti taseme (addr + all)
 - `{prefix}_catchment.csv` — `exit_node, population_catchment, nodes_served, ...`
 - `{prefix}_pop_vulnerability.csv` — rahvastikupõhine haavatavus
 - `{prefix}_critical_edges.csv` — kriitilised lõigud
 
-## Miks mitte WorldPop?
+## Veebiatlas
+
+Popup näitab mõlemat arvu, kui need erinevad:
+- "Elanikke (aadressiga)" — konservatiivne
+- "Elanikke (sh ilma aadressita)" — laiapõhjaline
+
+## VAL_0193 näide (miks kahte varianti)
+
+Valga grupp VAL_0193 — kohalikud teeharud riigitee "Puurina" küljes. Sõlmede lähedal (≤200m) on `building=yes` hooned ilma aadressita:
+- `pop` (aadressiga) = 0 — Valgas on aadressikate puudulik
+- `pop_all` = 26.4 elanikku, 53 sõitu — maju on, need jõuavad väljapääsupunktideni
 
-WorldPop-i 100 m raster omistab rahvastiku **lähimale sõlmele kuni 5 km** kaugusel. Otepääl sai põllutee sõlm 281707587 (Otepää linna serv, Kanepi tee ristmik) 40.5 elanikku, kuigi teedegrupil OTE_0141 pole maju. Hoonepõhine hinnang annab sellele 0 elanikku — täpselt nagu tegelikkuses.
+See oli just juhtum, mille omavalitsus tahtis teada — laiapõhjaline variant annab sellele vastuse.
 
-## Täpsus
+## Täpsus ja kalibreerimine (tulevikuplaan)
 
-- Aadressiga hoonete arv × 2.2 annab valla kogurahvastiku lähedase hinnangu (Valga 17 348 vs ~16k, Otepää 6 607 vs ~6.7k, Võru 9 622 vs ~10k)
-- Piirangud: OSM-i hõlmatus (mitte kõik majad on kaardistatud), korterelamute suurus hinnanguline
+- Aadressiga hooned × 2.2 annab valla kogurahvastiku lähedase hinnangu: Valga 17 348 vs ~16k, Otepää 6 607 vs ~6.7k, Võru 9 622 vs ~10k
+- `all` variant ülehinnab (suvilad): Otepää 22 714, Võru 40 579, Valga 30 895
+- **Kalibreerimine:** KOV-i tegelike andmetega (rahvastikuregister, statistikaamet) kohandada elamute tuvastust pere-regioon — nt `yes`-hoonete osakaal, suvilapiirkondade eristamine. Uurimistöö järgmine samm.

+ 6 - 0
Doktoritöö/Liiklussageduse kaudne hindamine/06_Logid/Tehtud töö ajalugu.md

@@ -38,6 +38,12 @@
   - `pipeline/building_population.py` — aadressiga hooned (eluruumid) → lähim tee sõlm (max 300 m), 2.2 inimest/hoone, korterelamu 12
   - Tulemus: OTE_0141 → 0 elanikku, OTE_0005 → 1 279 (Sihva, maju on), sõlm 281707587 → 0
   - Valla kogurahvastik realistlik: Valga 17 348, Otepää 6 607, Võru 9 622
+- **Kahte rahvastiku varianti (VAL_0193 juhtum):** Valga grupp VAL_0193 (teeharud riigitee "Puurina" küljes) — sõlmede lähedal `building=yes` hooned ilma aadressita:
+  - `pop` (aadressiga) = 0 — Valgas aadressikate puudulik
+  - `pop_all` = 26.4 elanikku, 53 sõitu
+  - Lahendus: arvutatakse mõlemad variandid läbi kogu ahela (building_population → gravity shares → export → veeb). Popup näitab mõlemat, kui erinevad.
+  - Tulemused: Valga addr 17 348 / all 30 895; Otepää 6 607 / 22 714; Võru 9 622 / 40 579
+  - **Kalibreerimine KOV tegelike andmetega on järgmine samm** (all ülehinnab suvilate tõttu, addr alahindab ilma aadressita maju)
 
 ## Tehtud otsused ja õppetunnid