# Repo ja töövoog ## Projektid (Git: gogs.odamus.com, kasutaja `ardo`) ### `ardo/liiklusatlas` (aktive, veebirakendus + pipeline) - `pipeline/` — analüüsiahel: - `run_municipality.py` — orkestreerija ühele vallale - `ads_buildings.py`, `ads_ky.py` — ADS-i hooned + katastriüksused (Maa- ja Ruumiamet) - `building_population.py` — hoonepõhine rahvastik + kalibreerimine + ADS KÜ-omistamine (`ads_ky` aadress-kinnistu link) - `gravity_exit_analysis.py` — gravitatsioonijaotus, haavatavus, kriitilised lõigud - `export_qgis.py` — gpkg eksport (omand, kasutus, reisitee, tupikud, väljapääsud) - `teeregister_omand.py`, `teeregister_leping.py`, `kataster_laadimine.py` — omand/kasutus allikad - `offer.py` — hinnapakkumise PDF - `preprocess_web.py` — gpkg → GeoJSON kihid + raporti materjalid - `municipalities.py` — 79 KOV-i register (status + **public** märge) - `server.py` — FastAPI + **demo-koodi kaitse** (`ATLAS_ACCESS_TOKEN`) + **logimine** - `report.py` — PDF-raport (kokkuvõte, kriitilised lõigud, liikluskoormuse tabel) - `web/index.html` — MapLibre kaart (demo-koodi sisend, kaitstud vallad lukus) - `web/tutvustus.html` — referentsileht (avalik Valga, teised kaitstud 🔒) - `data/` — genereeritud GeoJSON + raportifailid (commititud), `data/logs/access.log` ### `ardo/Obsidian` — doktoritöö märkmed (koopiad) ### `ardo/ohmu-cron` — serverite varundusskriptid ## Lokaalne struktuur ``` Project/ liiklussagedus/ # analüüsi algandmed + tulemused (ei ole git-is) results/ # {prefix}_*.csv, {prefix}_*.png, {prefix}_qgis.gpkg results/validation/ # kataster, ADS, KÜ, teeregister gpkg-d cache/ # OSMnx vahemälu data/ # WorldPop raster liiklusatlas/ # GIT: veebirakendus + pipeline ``` ## Analüüsitöövoog (uue valla lisamine) ```bash # 0. Vajadusel: ADS hooned + KÜ + kataster + teeregister (automaatselt, kui puuduvad) # 1. Täisanalüüs (võtab 5–15 min olenevalt vallast) PYTHONPATH=. .venv/bin/python3 liiklusatlas/pipeline/run_municipality.py # 2. Veebiandmete genereerimine (GeoJSON + raport) PYTHONPATH=. .venv/bin/python3 liiklusatlas/preprocess_web.py # 3. Commit + push cd liiklusatlas && git add -A && git commit -m "..." && git push # 4. Redeploy (koodimuutus → image build; andmed → pull + restart) ssh ohmu # cd /data/docker/liiklusatlas && git pull && docker-compose build && docker-compose up -d --force-recreate ssh hetzner # cd ~/swarm/.../liiklusatlas && git pull && docker build -t liiklusatlas:latest . && export ATLAS_ACCESS_TOKEN= && docker stack deploy --compose-file=stack-prod.yml atlas && docker service update --force atlas_liiklusatlas ``` ## Avalik/kaistud mudel + token + logimine - `municipalities.py`: **Valga `public: True`**, teised `False`. Manifest kannab `access: public|protected`. - `server.py`: kaitstud valla `/api/maps/{vald}`, `/api/maps/{vald}/{layer}`, `/api/report.pdf` nõuavad `ATLAS_ACCESS_TOKEN` (`?token=` või `X-Access-Token`), muidu 403. - `data/logs/access.log` — iga andmepäring (aeg, IP, vald, kiht, staatus, UA, kas koodiga). - Token **`.env`-is (ohmu)** ja **eksporditud shellis (hetzner)** — `.env` on `.gitignore`-is (ei leki). ## Valla-id → analüüsiparameetrid `pipeline/run_municipality.py` KNOWN-tabelis: `vall_id → (place, prefix, area_km2, official_pop)`. Teadmata vallad: proovib `teedellm.config.MUNICIPALITIES` registrit. ## Väljundfailide konventsioon - Analüüs: `liiklussagedus/results/{prefix}_*` - Veeb: `liiklusatlas/data/web/{vall_id}/`, `liiklusatlas/data/report/{vall_id}/` - Raporti failid saavad **standardnimed** (valga_pop_*.png jne), sisu on valla-spetsiifiline ## Seos [[Liiklussageduse kaudne hindamine/04_Tehniline/Veebirakendus]] [[Liiklussageduse kaudne hindamine/04_Tehniline/Deploy ja infrastruktuur]]