# Rahvastiku jaotamine (OSM-hooned) ## 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. ## Meetod (alates 2026-08: OSM-hooned) ### 1. Hoonete laadimine ```python bld = ox.features_from_polygon(boundary, {"building": True}) 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. Rahvastiku variandid Kuna üks lävi ei tööta kõigis piirkondades, arvutatakse **mitu varianti**: - **`population` (PEAMINE, kalibreeritud)** — OSM aadressiga hooned, skaleeritud **Rahvastikuregistri ametliku valla rahvaarvuga**: ``` skaala = ametlik_rahvaarv / valla_OSM-addr_hoonete_arv ``` Elanikud jaotatakse proportsionaalselt eluruumi aadressidele — valla kogusumma = ametlik arv. Valga 14 813, Otepää 6 225, Võru 10 310 (ametlikud). - **`population_ads` (ADS, võrdluseks)** — riikliku aadressiregistri (ADS) hooned, **deduplikeeritud unikaalse aadressi järgi**. Mitu hoonet samal aadressil (taluõu: elamu + kuur + ait) = **üks eluruum** (leibkond). Näitab, kus on maju, mida OSM-il pole (nt VAL_0193: OSM-addr 0, ADS 4.4 = 2 aadressi). **Omistamine katastriüksuse (KÜ) kaudu** — vaata allpool. - **`population_res` (kombineeritud)** — OSM aadressiga + ilma aadressita `building=yes` hooned 50–200m². - **`population_all` (laiapõhjaline)** — kõik OSM elamutüübid + `building=yes`. Tugevalt ülehinnatud. Iga hoone → **lähim tee sõlm** (max 300 m). Ei loeta hoonet mitu korda. ADS-i puhul loetakse **unikaalseid aadresse**, mitte hoonete arvu. ### ADS-i omistamine katastriüksuse (KÜ) kaudu ADS-i hoonete omistamine teedevõrgule kasutab **katastriüksuse (KÜ) piiri** (`aks:ads_ky`, sama AKS-teenus): 1. Iga ADS-hoone → tema **katastriüksus** (ruumiline ühendus: hoone KÜ polügoonis). 2. Iga KÜ → **lõikumispunkt(id) kohaliku teedevõrguga** (spatial join). 3. KUI KÜ puutub teega kokku → omistatakse KÜ kõik unikaalsed aadressid **lõikumiskoha lähimale sõlmele** — juurdepääs maale on seal, kus KÜ teed kohtab. 4. MUIDU (KÜ ilma teekontaktita, hoone KÜ-st väljas) → kauguspõhine fallback (≤300 m). **Miks:** talu on suur maa-ala — elamu võib olla teest 300+ m kaugusel, aga KÜ piir puutub teega kokku (juurdepääs). Varem jäi selline aadress (nt Loigu, 356 m) kauguspiiri taha. KÜ põhjal omistatakse see õigele teesõlmele. Samuti ei loeta ühte aadressi mitu korda (taluõue hooned eri sõlmede juures). **Andmeallikas:** `pipeline/ads_ky.py` (WFS `aks:ads_ky`, atribuudid `orig_tunnus`, `taisaadress`). Vajalik `{prefix}_ads_ky.gpkg`. ### 3. Elanike arv hoone kohta ```python PERSONS_PER_BUILDING = 2.2 # Eesti keskmine leibkond PERSONS_PER_APARTMENT = 12.0 # korterelamu ``` ### 4. Variantide ülekandmine väljapääsupunktidesse `gravity_exit_analysis.py` §9 arvutab gravity-jaotuse osakaalud (shares) **ühe korra** (ei sõltu rahvastiku suurusest) ja korrutab kõigi variantidega: - `gravity_population` / `gravity_trips` — OSM aadressiga (peamine) - `gravity_population_ads` / `gravity_trips_ads` — ADS (võrdluseks) - `gravity_population_res` / `gravity_trips_res` — kombineeritud - `gravity_population_all` / `gravity_trips_all` — laiapõhjaline ### 5. Trippide genereerimine (trip generation) ```python TRIPS_PER_PERSON = 2.0 daily_trips_to_exit = population_catchment * TRIPS_PER_PERSON ``` ## Väljundid - `{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 ## Veebiatlas Popup näitab selget infot: - "Elanikke" — peamine (kalibreeritud Rahvastikuregistriga) - "Päeva sõidud" — trips (2× elanikud) - "ADS (aadressid)" — riiklik register, unikaalsed aadressid (võrdluseks) - "Detour" — haavatavus ## VAL_0193 näide (miks ADS-i võrrelda) Valga grupp VAL_0193 — kohalikud teeharud riigitee "Puurina" küljes. Kungla talu on väljapääsu 13645879019 juures: - `pop` (kalibreeritud) = 0 — OSM-i aadressikate puudulik, aadressid pole OSM-is - `pop_ads` (ADS, EE+ehr) = 2.2 — **ainult Kungla (1 eluruum)** **Kriitiline parandus (KÜ-tee otspunkt):** Loigu talu KÜ puutub teega kokku unclassified teel 846244516-846244594. Varasem "lähim sõlm" loogika omistas Loigu (2.2) ekslikult Kungla sõlmele 13645879022 → väljapääs näitas 4.4 (Kungla+Loigu). **Parandus:** aadress omistatakse LÕIKUVA TEE otspunktile — Loigu läheb nüüd väljapääsu 846244516 juurde (õigesse komponenti), Kungla jääb 13645879019-le (2.2 = 1 talu). **ADS-i loenduse reegel (2026-08):** loendatakse AINULT ehitisregistris (EHR) olevad elamud — `adob_liik=="EE"` **ja** `ehr_kood` olemas. Välistab kirikud, laudad, aidad, suvilad jne (Valga: 1 289 mitteeluruumi-aadressi). ## Valla kogurahvastik (2026-08, kalibreeritud) | Vald | Peamine (kalibreeritud) | Ametlik (RR) | ADS (EE+ehr, KÜ-omistatud) | res | |------|------------------------|--------------|---------------------------|-----| | Valga | 14 813 | 14 813 | 8 978 | 23 716 | | Otepää | 6 225 | 6 225 | 6 733 | 15 309 | | Võru | 10 310 | 10 310 | 12 044 | 26 311 | **Põhimõte:** ametlik valla rahvaarv jaotatakse proportsionaalselt eluruumi aadressidele (`skaala = ametlik / OSM-addr hooned`). Nii on kogusumma täpne ja jaotus proportsionaalne aadressitihedusega. **ADS-i parandus (2026-08):** katastriüksuse (KÜ) kaudu omistamine vähendas ADS-i arve (Valga 13 031→12 438, Otepää 9 910→9 163, Võru 17 304→15 607) — üks aadress loetakse nüüd üks kord ja suunatakse KÜ-tee lõikumiskohale, mitte iga hoone lähima sõlme järgi. ## Uurimismärkused - **Rahvastikuregister** (Statistikaamet RV0291U) annab ametliku valla rahvaarvu 1.01 seisuga. Valga 14 813, Otepää 6 225, Tõrva 5 777 (2026), Võru 10 310 (2024) - **Leibkonnad (tulevikuplaan):** 1 majas võib elada 4 inimest = 1 leibkond; liikumine võib olla leibkonna-põhine (kogu pere sõidab linna tööle/kooli). Statistikaametil on leibkonnaandmed (REL2021 "Leibkonnad ja perekonnad") — uurida, kas saab ruutstatistikana - **Ruutstatistika (tulevikuplaan):** Statistikaameti rahvastiku ruutvõrk (1km/100m) võimaldaks veelgi täpsemat proportsionaalset jaotust — aga privaatsusläve tõttu ei ole detailne info alati avalik