Tehtud töö ajalugu.md 4.6 KB

Tehtud töö ajalugu

2026-08-04 — Veebiatlas + esimesed vallad

  • F0: Veebiatlase algversioon liiklusatlas (FastAPI + MapLibre GL + PDF-raport)
    • preprocess_web.py — gpkg → GeoJSON kihid
    • server.py — API /api/maps/*, /api/report.pdf
    • report.py — A4 PDF (reportlab)
    • web/index.html — MapLibre kaart
    • Gogs repo ardo/liiklusatlas loodud
    • Deploy: ohmu (dev, 8074) + hetzner (prod, atlas.see1.ee, traefik + Let's Encrypt)
    • DNS: A-kirje lisatud; AAAA eemaldatud (hetzner IPv6 katki)
  • F1: Valla valija (79 KOV-i), legend, KOV-selgitused; mitme valla andmestruktuur
    • municipalities.py — 79 KOV-i register
    • API /api/municipalities, /api/maps/{vald}/{layer}
  • F2: Üldistatud pipeline + Otepää vald
    • 4 analüüsiskripti üldistatud (--place/--prefix)
    • run_municipality.py — orkestreerija
    • Otepää vald analüüsitud (2. vald)
    • Raport valla parameetriga (?vald=)
  • F2b: Võru vald (3. vald) + pipeline parandused
    • --results-dir — väljund liiklussagedus/results/ (mitte pipeline/results)
    • gravity-le --skip-plot tugi
    • 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)
  • Pehme gravity-jaotus (nulli parandus): hard-assignment (iga sõlm AINULT parimasse väljapääsu) jättis väiksed põhikomponendi punktid tühjaks (Valga 57/71, Otepää 27/28, Võru 28/36 pop=0). Asendatud probabilistliku jaotusega:
    • weight(e) = (pop_e + 1) / (impédance/1000)² — iga sõlme rahvastik jaotatakse kõigi väljapääsupunktide vahel proportsionaalselt
    • Nüüd kõik põhikomponendi punktid saavad mitte-null gravity-rahvastiku
  • ID-d popupides: teedel osm_u–osm_v, väljapääsupunktidel id (exit_node) — vigade kontrollimiseks
  • OSM-hooned rahvastiku proksina (WorldPop asendus): WorldPop-i 5 km omistamisraadius "imeb" linna rahvastikku põlluteede sõlmedesse (Otepää sõlm 281707587 sai 40.5 elanikku, kuigi teedegrupil OTE_0141 pole maju). Uus meetod:
    • pipeline/building_population.py — aadressiga hooned (eluruumid) → lähim tee sõlm (max 300 m), 2.2 inimest/hoone, korterelamu 12
    • Tulemus: OTE_0141 → 0 elanikku, OTE_0005 → 1 279 (Sihva, maju on), sõlm 281707587 → 0
    • Valla kogurahvastik realistlik: Valga 17 348, Otepää 6 607, Võru 9 622

Tehtud otsused ja õppetunnid

  • Väljundi asukoht: pipeline skriptid peavad kirjutama liiklussagedus/results/, sest preprocess_web.py otsib sealt — kinnitada --results-dir igas etapis
  • Failinimede konventsioon: valga_population_analysis.py kirjutab {prefix}_pop_*.csv (prefiks saab _pop-lõpu), gravity/export otsivad sama mustrit. Valga töötas juhuslikult (ajalooline prefiks valga_pop); ühtlustada uute valdadega
  • gpkg-otsing: preprocess_web.py leidis voru_qgis.gpkg ka voru-linn jaoks — klapp ainult täpse nimega + -vald sufiksi erandiga, mitte -linn päisega
  • WorldPop alahindab hõreasustust: elanike arv catchment'is on tunduvalt väiksem tegelikust — vajab validatsiooni/kalibreerimist
  • Gravitatsioon switched = 0: madala tihedusega valdades ei muuda gravitatsioonikorrektsioon valikuid — tuleb uurida, kas alpha on liiga väike või on see geograafiline reaalsus
  • AAAA kirje: ei tohi lisada, kui server kuulab ainult IPv4-l

Tuleviku sammud

  • Teaduskirjanduse kogumine (n8n)
  • Valideerimine riigiteede loendustega
  • Põhiartikli koostamine (3 valda)
  • Müügipaketi ettevalmistus