04 Rahvastiku jaotamine.md 4.8 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 (OSM aadressiga, PEAMINE) — AINULT aadressiga OSM-hooned. Valla tasandil kõige täpsem: Valga 17 346 vs ~16k, Otepää 6 610 vs ~6.7k, Võru 9 622 vs ~10k.
  • 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). Valla tasandil: Valga 13 031, Otepää 9 910, Võru 17 304. Näitab, kus on maju, mida OSM-il pole (nt VAL_0193: OSM-addr 0, ADS 4.4 = 2 aadressi).
  • 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.

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 mõlemat arvu, kui need erinevad:

  • "Elanikke" — peamine (OSM aadressiga)
  • "ADS (kõik hooned)" — riiklik register, ülehinnatud võrdlus

VAL_0193 näide (miks ADS-i võrrelda)

Valga grupp VAL_0193 — kohalikud teeharud riigitee "Puurina" küljes. Sõlmede lähedal (≤200m) on building=yes hooned ilma aadressita:

  • pop (OSM aadressiga) = 0 — OSM-i aadressikate puudulik
  • pop_ads (ADS, unikaalsed aadressid) = 4.4 elanikku (846244516 ja 846244647 juures, kokku ~4-5 aadressi)

Tähelepanek: ADS-is oli nende punktide ümber 22 hoonet, aga ainult ~5 unikaalset aadressi — taluõues on elamu + mitu kõrvalhoonet samal aadressil. Aadress on liikumiste aluseks, mitte hoonete arv. See oli just juhtum, mille omavalitsus tahtis teada.

Valla kogurahvastik (2026-08)

Vald OSM-addr (peamine) ADS (unikaalne aadress) res Tegelik
Valga 17 346 13 031 23 716 ~16 000
Otepää 6 610 9 910 15 309 ~6 700
Võru 9 622 17 304 26 311 ~10 000

Järeldus: OSM-addr on valla tasandil täpseim. ADS unikaalsete aadresside põhjal on realistlikum kui hoonete arv, kuid hõlmab ka hõreda piirkonna suvilaid. Kalibreerimine EHR-i sihtotstarbega on järgmine samm.

Uurimismärkused

  • Privaatsuslävi (alla 4 = 0) EI ole meie probleemi põhjus: WorldPop-i raster on dasymetriliselt määritud (murdarvulised väärtused, isegi põldudel); Statistikaamet kasutab cell key meetodit (müra 1-2 väärtustele), mitte "alla 4 = 0"
  • ADS on riiklik register, kõik hooned aadressiga — Valga 17 452 vs OSM 14 728. Kuid kõik ei ole eluruumid (kõrvalhooned, suvilad)
  • 96% OSM aadressita hoonetest on <100m ADS-hoonest — ADS-i hooned asuvad samades kohtades, kuid täiendus ilma sihtotstarbeta ülehinnab
  • EHR-i sihtotstarve (eluhoone vs mitte) on täpsuse võti — plaanitud tulevikuks ehr_kood-i kaudu