04 Rahvastiku jaotamine.md 6.7 KB

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

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

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)

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.csvexit_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