Selaa lähdekoodia

simplify=False: degree-2 sõlmed eraldi lõikudeks + gravity optimeerimine (main-exitid)

ardo 2 viikkoa sitten
vanhempi
sitoutus
d91307ed56

+ 6 - 3
Doktoritöö/Liiklussageduse kaudne hindamine/02_Metoodika/02 Teedevõrgustiku moodustamine.md

@@ -17,12 +17,14 @@ OSMnx geokodeerib valla nime ja laeb halduspiiri (EPSG:4326).
 ### 2. Teedevõrgustiku laadimine
 
 ```python
-G = ox.graph_from_polygon(boundary.geometry.iloc[0], custom_filter=CUSTOM_FILTER)
+G = ox.graph_from_polygon(boundary.geometry.iloc[0], custom_filter=CUSTOM_FILTER, simplify=False)
 G_proj = ox.project_graph(G, to_crs=CRS)   # EPSG:3301
 ```
 
 **Filtri loogika:** võetakse kõik `highway` teed, välja arvatud jalgratta-/jalgteed jne (`CUSTOM_FILTER`). Oluline: **lisatakse ka `service` ja `track`**, mis on maapiirkondades olulised kohalikud teed (OSMnx vaikimisi `drive` filter jätaks need välja).
 
+**`simplify=False` (2026-08):** OSMnx vaikimisi `simplify=True` liidab degree-2 vahesõlmed (sõlmed, kus tee lihtsalt jätkub ilma harudeta) üheks servaks. See kaotab lõikude jaotuse: nt tee 13645879022–13645879019 (100m, OSM-is 4 sõlme: 22→21→20→19) kuvatakse 1 lõiguna. `simplify=False` hoiab iga OSM-node eraldi sõlmena → lõigud jagunevad õigesti (18m+33m+49m). **Vajalik** `is_deadend`/`is_exit` märgete täpsuseks. Mõju: lõikude arv kasvab ~6-7× (Valga 6779→42090).
+
 ### 3. Teede klassifitseerimine
 
 Iga serva `highway` tag alusel:
@@ -64,5 +66,6 @@ Kohalikest teedest moodustub palju eraldiseisvaid komponente (teed, mis ei ühen
 
 ## Märkused
 
-- Võrgustiku suurus varieerub valliti (Valga: ~6k sõlme, Otepää: ~4.2k, Võru: ~7k)
-- Eraldi komponentide arv on suur (Otepääl 771) — need on teed, mis ei ole ühendatud peamise võrgustikuga
+- Võrgustiku suurus varieerub valliti (Valga: ~21k sõlme / 42k lõiku, Otepää: ~26k/53k, Võru: ~56k/110k — simplify=False-ga)
+- **Gravity optimeerimine (2026-08):** `exit_distances` arvutatakse ainult põhikomponendi väljapääsude (~21-71) vahel, mitte kõigi ~2000 exit-i vahel — sest gravity jaotus kehtib ainult põhikomponendis. Kiirendus 40+ min → ~1 min.
+- Eraldi komponentide arv on suur — need on teed, mis ei ole ühendatud peamise võrgustikuga

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

@@ -1,5 +1,14 @@
 # Tehtud töö ajalugu
 
+## 2026-08-09 — simplify=False: degree-2 sõlmed eraldi lõikudeks
+
+- **Probleem:** OSMnx vaikimisi `simplify=True` liidab degree-2 vahesõlmed üheks servaks. Tee 13645879022–13645879019 (100m, OSM-is 4 node: 22→21→20→19) kuvati 1 lõiguna, mistõttu `is_deadend`/`is_exit` märked olid valed (kogu lõik sai mõlemad, kuigi tupik on ainult ots 22 ja väljapääs ainult ots 19).
+- **Parandus:** kõik graafi laadimised (`export_qgis`, `gravity`, `building_population`, `valga_analysis`, `valga_population_analysis`) nüüd `simplify=False` — iga degree-2 sõlm oma lõiguna.
+- **Gravity optimeerimine:** `exit_distances` arvutati kõigi ~2000 exit-i vahel (aeglane, Võru 40+ min). Kuna gravity jaotus kehtib ainult põhikomponendis, arvutatakse nüüd ainult main-exitide (~21-71) vahel → **40 min → ~1 min**.
+- **Tulemus:** tee 13645879022–13645879019 = 3 lõiku: 22-21 (18m, tupik), 21-20 (33m, vahepealne), 20-19 (49m, väljapääs). Märked täpsed.
+- **Lõikude arvud:** Valga 42090, Otepää 52620, Tõrva 33795, Võru 110243 (varem 6779/7107/5370/14999 — ~6-7× rohkem).
+- Deploy: ohmu + hetzner (gogs b2d9c43), kontrollitud mõlemas.
+
 ## 2026-08-09 — Vahemälu parandus (no-cache päised)
 
 - **Probleem:** tabaline brauser näitas vanu popup-andmeid, kuigi private-brauser oli korras. Põhjus: FastAPI serveeris `index.html`/GeoJSON-id `ETag`/`Last-Modified` vahemäluga, brauser ei küsinud uuesti.