Eesti gravitatsioonikaardi loomine OSM teede põhjal on huvitav ja mitmetahuline ülesanne. Siin on, kuidas seda saab teha: --- ### 🧭 **Mis on gravitatsioonikaart?** Gravitatsioonikaart (või **liiklusgravitatsiooni mudel**) ei tähenda füüsikalist gravitatsiooni, vaid **ruumilist mudelit, mis näitab, kui tõenäoliselt inimesed liiguvad ühest punktist teise**, arvestades teedevõrku, kaugust, ligipääsetavust ja sihtkohtade atraktiivsust. --- ### 🛠️ **Kuidas luua gravitatsioonikaart OSM teede põhjal?** #### 1. **Impordi OSM teed PostGIS andmebaasi** - Kasuta `osm2pgsql`, nagu sul juba on. - Tee eraldi tabel `osm_roads`, mis sisaldab ainult teid (`highway IS NOT NULL`). #### 2. **Loo teede võrgustik** - Kasuta `pgRouting` PostGISis, et luua graaf teede ühendustest. - Vajalikud väljad: `source`, `target`, `cost`, `reverse_cost`. #### 3. **Defineeri sihtkohad ja lähtekohad** - Näiteks: linnad, asulad, koolid, tööpiirkonnad (võib võtta OSMist või HOTOSM-ist). #### 4. **Rakenda gravitatsioonimudelit** - Klassikaline mudel: $$T_{ij} = \frac{P_i \cdot P_j}{D_{ij}^2}$$ Kus: - $(T_{ij})$ = liikumise intensiivsus punktide $(i)$ ja $(j)$ vahel - $(P_i, P_j)$ = lähtekoha ja sihtkoha "mass" (nt rahvaarv, töökohtade arv) - $(D_{ij})$ = kaugus (või aeg) teedevõrgus #### 5. **Visualiseeri tulemus** - Kasuta `QGIS` või `Python` (nt `matplotlib`, `geopandas`) gravitatsioonivälja visualiseerimiseks. --- ### 📜 **Skriptide ja töövoo pakkumine** Kas soovid, et: - Aitan luua **pgRouting graafi** sinu OSM teede põhjal? - Koostan **Python-skripti**, mis arvutab gravitatsioonivälja ja visualiseerib selle? - Loome **väiksemate piirkondade jaoks** eraldi kaardid? Anna teada, millise osa soovid kõigepealt automatiseerida või visualiseerida, ja ma koostan vastava skripti! Et luua pgRouting graaf sinu OSM teede andmete põhjal, tuleb järgida järgmisi samme. Allpool on täielik **bash-skript + SQL**, mis: 1. **Valmistab teetabeli** (`osm_roads`) OSM andmetest. 2. **Lisab vajalikud veerud** pgRoutingu jaoks. 3. **Käivitab `pgr_createTopology`**, et luua graaf. --- ### 📝 **1. Bash-skript: `create_pgrouting_graph.sh`** ```bash #!/usr/bin/env bash # Ühenduse andmed destination_host='localhost' destination_port='5432' destination_user='osm' destination_password='osm' destination_dbname='data' destination_schema='aaa_osm' table_name='osm_roads' export PGPASSWORD=${destination_password} CONNECTION_NAME="-h ${destination_host} -p ${destination_port} -d ${destination_dbname} -U ${destination_user}" # Loome pgRoutingu jaoks sobiva teetabeli psql ${CONNECTION_NAME} <