Răsfoiți Sursa

Liiklussageduse kaudne hindamine: gravitatsioonipõhine süsteem

ardo 3 săptămâni în urmă
părinte
comite
bbb41f7657

+ 25 - 3
Doktoritöö/Liiklussageduse kaudne hindamine/02_Metoodika/05 Gravitatsioonimudel.md

@@ -4,6 +4,18 @@
 
 Jaotada liikumised väljapääsupunktide vahel nii, et **ühtegi sihtpunkti ei eelistata a priori** — sarnaselt jõgikonna vee liikumisele. See on gravitatsioonimudeli (gravity model) põhiolemus.
 
+## Ühtne süsteem (2026-08)
+
+Rahvastiku ja liikumiste jaotus väljapääsupunktide vahel põhineb **gravitatsioonimudelil**:
+
+1. **Sõlme-taseme rahvastik** (`{prefix}_node_population.csv`) — WorldPop-i rahvastik igal kohaliku tee sõlmel (population-analüüs §5)
+2. **Gravitatsioonipõhine parim väljapääs** iga sõlme jaoks — impedants + gravitatsioonitõmme (vt allpool)
+3. **Gravitatsioonipõhine rahvastik väljapääsupunkti kohta** (`{prefix}_gravity_exit_population.csv`) — iga sõlme rahvastik liidetakse selle sõlme parima väljapääsupunkti alla
+   - `gravity_population`, `gravity_trips` (= 2 × pop)
+   - Võrdluseks `nearest_population`, `nearest_trips` (lähim-jaotus)
+
+See on **peamine rahvastiku hinnang** veebiatlasesse (popup "Elanikke (gravitatsioon)").
+
 ## Kontseptsioon
 
 Klassikalises gravitatsioonimudelis on kahe piirkonna vaheline liikumine võrdeline nende "masside" (rahvastiku) korrutisega ja pöördvõrdeline kauguse/kulu astmega:
@@ -64,15 +76,25 @@ switched = best_exit != nearest_exit
 - `{prefix}_gravity_node_exits.csv` — iga sõlm: `best_exit`, `impedance_to_exit`, `gravity_value`, `switched`
 - `{prefix}_gravity_segment_exits.csv` — iga lõik: `best_exit`, `impedance_to_exit`, `assignment_type`
 
+### 5. Gravitatsioonipõhine rahvastik väljapääsupunkti kohta
+
+```python
+for node, e in best_exit.items():
+    grav_exit_pop[e] += node_population[node]
+```
+
+`{prefix}_gravity_exit_population.csv` — iga väljapääsupunkti rahvastik + päevased sõidud (2× pop).
+
 ## Gravitatsioon vs lähim väljapääs
 
 - **Lähim (nearest):** aluseks [[Liiklussageduse kaudne hindamine/02_Metoodika/03 Väljapääsupunktid ja teenindusalad]] — iga sõlm lähima väljapääsupunkti teenindusalasse
 - **Gravitatsioon:** suuremad keskused tõmbavad kauemalt liikumisi — realistlikum "voolupilt"
 
-Mõlemad on võrdlusena: gravitatsioon annab realistlikuma liikluskoormuse, lähim-alus on lihtsam ja läbipaistvam.
+**Veebiatlases:** väljapääsupunkti `pop`/`trips` = **gravitatsioonipõhine** (peamine). Lähim-jaotus on võrdluseks popupis ("Lähim-jaotus") ja `nearest_pop_catch` veeruna.
 
 ## Rakendus
 
 Skript: `pipeline/gravity_exit_analysis.py`
-Loeb: `{prefix}_pop_catchment.csv` (rahvastik väljapääsupunkti kohta)
-Kirjutab: `{prefix}_gravity_node_exits.csv`, `{prefix}_gravity_segment_exits.csv`
+Loeb: `{prefix}_pop_catchment.csv` (väljapääsu rahvastik), `{prefix}_node_population.csv` (sõlmede rahvastik)
+Kirjutab: `{prefix}_gravity_node_exits.csv`, `{prefix}_gravity_segment_exits.csv`, `{prefix}_gravity_exit_population.csv`
+

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

@@ -24,6 +24,12 @@
   - pipeline cache/data `.gitignore`-isse
 - **Obsidian:** `Doktoritöö/Liiklussageduse kaudne hindamine/` loodud — struktureeritud märkmed metoodika ja tulemuste kohta
 - **Parandused (veebiatlas):** valla-spetsiifilised rühmakoodid (`VAL_`, `OTE_`, `VOR_` — mitte `VLG_`), `_pop_` failinimede ühtlustamine (population kirjutas `{prefix}_catchment.csv`, tarbijad otsisid `{prefix}_pop_catchment.csv` → väljapääsupunktide andmed puudusid Otepääl/Võrus), popup-id näitavad õiget valla nime + null-kaitse
+- **Ühtne gravitatsioonipõhine süsteem:** väljapääsupunktide rahvastik/liikumised arvutatakse nüüd gravitatsioonimudeliga (mitte ainult lähim-jaotusega):
+  - `valga_population_analysis.py` kirjutab `{prefix}_pop_node_population.csv` (sõlme-taseme rahvastik)
+  - `gravity_exit_analysis.py` §9 loeb selle, liidab iga sõlme rahvastiku selle gravitatsioonipõhise parima väljapääsupunkti alla → `{prefix}_gravity_exit_population.csv` (`gravity_population`, `gravity_trips`, `nearest_population` võrdluseks)
+  - `export_qgis.py` määrab `pop_catch`/`daily_trips` gravitatsiooniväärtustega
+  - Popup näitab "Elanikke (gravitatsioon)" + lähim-jaotuse võrdluse
+  - Tulemus: suuremad keskused tõmbavad rahvastikku (nt Valga suurim väljapääs: gravity 1 682 vs nearest 83)
 
 ## Tehtud otsused ja õppetunnid