Lv osm analysis

From OpenStreetMap Wiki
Jump to navigation Jump to search

Atskaites OSM ceļu pilnīgums sagatavošana.

Šeit ir piezīmes par OSM ceļu pilnīguma atskaites sagatavošanu (http://gisnet.lv/osm)

OSM datu pilnīgums.

Mērķis ir OSM izveidot pilnu Latvijas ceļu tīklu. Pilns ceļu tīkls būtu visu MK noteikumos 1104 ceļu iekļaušana OSM. Kāpēc pilns tīkls ir labāks par daļēju šeit neizskatīsim.

Šī atskaite tika radīta lai 1) varētu novērtēt šī brīža OSM ceļu pilnīgumu 2) OSM kopiena zinātu, kuri ceļi trūkst vai atšķiras no oficiāliem datiem un, attiecīgi, kur var pielikt roku.

Datu avots 1: MK noteikumi

Tie ir izmantoti kā bāze. Noteikumu pielikumā ir pilns ceļu uzskaitījums. No šī uzskaitījuma tika izveidots tab-separated teksta fails. Process notika izklājlapās, nometot liekās rindas un minimāli pielabojot rezultātu. (txt

Datu avots 2: Geofabrik

http://download.geofabrik.de/osm/europe/

No šejienes tiek ņemts latvia.osm.bz2 fails.

Fails tika importēts datorā izveidotā un nokonfigurētā Postgresql+postGIS datubāzē as osmosis utilītu.

Atskaites iegūšana

Atskaiti sagatavo šim mērķim speciāli uzrakstīts Python scripts. (kods tālāk).

Skripts nolasa MK ceļu sarakstu un katram atrastajam ceļam meklē relāciju un arī referencētos ceļus.

Atbilstoša relācija satur šādus tagus:

               Tag: network=lv:national
               Tag: ref=? (atbilstošā ref vērtība, piemēram A1)

Bez relācijas tiek sameklēti visi ceļi (ways), kuri nav relācijā, bet kuriem ir tag:ref=A1. Tie tiek atsevišķi parādīti kā ceļi, kas nav relācijā. (šāds ceļš varbūt ir jāpievieno relācijai).


Ceļa garuma noteikšana

Katram ceļa posmam (starp divām punktiem) attālumu nosaka ar POSTGIS funkciju distance_sphere(curnode.geom, prevnode.geom). Funkcija atgriež attālumu „pa taisno”, ņemot vērā punktu koordinātas un zemes izliekumu.

Ceļa garums ir visu ceļā ietverto posmu garumu summa. Ceļa līkumos tas varētu radīt nelielas novirzes no pilnīgi precīza izliekuma garuma, bet šosejas salīdzinājumam precizitāte ir pilnīgi pietiekama.

Vienvirziena kustības ceļiem (tag:oneway=yes), garums tiek dalīts uz 2. Ja to nedarītu, katrs šosejas posms, kur kustības joslas ir atdalītas tiktu pieskaitīts divas reizes un padarītu salīdzinājumu daudz grūtāku. Kaut kādos gadījumos tas var radīt neprecizitāti, bet nevajadzētu būt būtiskai.

Relācijas garums ir visu relācijā ieskaitīto ceļu summa. Ir relācijas, kurās ceļi pievienoti vairakkārt. Šī atskaite šādus ceļus ieskaita tikai vienu reizi. (šādu relāciju sakārtošana arī būtu jāveic, bet to citreiz).


Kā lietot atskaiti

Būtu jānovērtē interesējošo ceļu atbilstība. Ja ceļu pārzinat un redzat atšķirību – vēlama apskatīt kas šobrīd ir iezīmēts kartē un izlabot.

Ja ceļam ir reference, bet nav relācija, vēlams izveidot relāciju (reference nav jādzēš).

Būtiski, ka MK noteikumi satur arī ielu sarakstu, kuras ir iekļautas šosejā. Tas var palīdzēt pareizi iemarķēt šoseju cauri pilsētai.

Koda fails: lv_stat.py