Määrata igale teede sõlmele "rahvastikukoormus" — kui palju inimesi elab selle sõlme läheduses. See on liikumiste genereerimise (trip generation) aluseks.
bld = ox.features_from_polygon(boundary, {"building": True})
bld = bld[bld["addr:housenumber"].notna()] # ainult aadressiga = eluruumid
pipeline/building_population.pyKuna ü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).
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.
PERSONS_PER_BUILDING = 2.2 # Eesti keskmine leibkond
PERSONS_PER_APARTMENT = 12.0 # korterelamu
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 — kombineeritudgravity_population_all / gravity_trips_all — laiapõhjalineTRIPS_PER_PERSON = 2.0
daily_trips_to_exit = population_catchment * TRIPS_PER_PERSON
{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õigudPopup näitab selget infot:
Valga grupp VAL_0193 — kohalikud teeharud riigitee "Puurina" küljes. Sõlmede lähedal (≤200m) on building=yes hooned ilma aadressita:
pop (kalibreeritud) = 0 — OSM-i aadressikate puudulik, aadressid pole OSM-ispop_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.
| Vald | Peamine (kalibreeritud) | Ametlik (RR) | ADS (unikaalne aadress) | res |
|---|---|---|---|---|
| Valga | 14 813 | 14 813 | 13 031 | 23 716 |
| Otepää | 6 225 | 6 225 | 9 910 | 15 309 |
| Võru | 10 310 | 10 310 | 17 304 | 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.