Konwersja UMP do OSM XML

Z UMP

(Różnice między wersjami)
(Opis konwersji z UMP do OSM XML)
Aktualna wersja (18:10, 20 sie 2014) (edytuj) (anuluj zmianę)
d (host powinien być @cvs.ump.waw.pl)
 
(Nie pokazano 21 wersji pośrednich.)
Linia 1: Linia 1:
-
= Wstęp =
+
== Wstęp ==
-
= Konwersja =
+
Coraz częściej mapa UMP jest używana do innych zastosowań niż wgranie do odbiornika Garmina.
-
= Zastosowania =
+
 
 +
Artykuł ten opisuje sposób konwersji na format OSM XML [http://wiki.openstreetmap.org/wiki/OSM_XML]
 +
 
 +
Wynik tej konwersji pozwala dalej na użycie danych UMP w serwisach udostępniających mapy za pomocą www, generujących trasy przejazdu (routing) czy załadowania do bazy danych geograficznych.
 +
 
 +
== Konwersja ==
 +
Opis konwersji dotyczy środowiska Linux. Oczywiście można jej dokonać z użyciem Windows ale szczegóły tej operacji zostawiamy domyślnemu czytelnikowi.
 +
 
 +
Potrzebne będą:
 +
* dowolny Linux 2-6GB RAM (2GB dla pojedynczych fragmentów mapy - 6GB RAM dla całej Polski)
 +
* narzędzia (cvs, perl, python, tr)
 +
* katalog roboczy 2GB+
 +
 
 +
 
 +
; 1. Stworzenie katalogów roboczych
 +
mkdir $HOME/UMPCVS
 +
mkdir $HOME/UMPCVS/WORK
 +
; 2. Definicje zmiennych środowiskowych
 +
CVSROOT to namiary na repozytorium CVS mapy UMP, zaś DIR lista regionów mapy. Polska ma ich aktualnie 33.
 +
export CVSROOT=":pserver:guest@cvs.ump.waw.pl/home/cvsroot"
 +
export CVS=$HOME/UMPCVS
 +
export DIR="UMP-PL-Warszawa UMP-PL-Radom UMP-PL-Suwalki"
 +
dla całej Polski
 +
export DIR="UMP-PL-Bialystok UMP-PL-Ciechanow UMP-PL-Gdansk UMP-PL-GorzowWlkp UMP-PL-JeleniaGora UMP-PL-Kalisz UMP-PL-Katowice UMP-PL-Kielce UMP-PL-Klodzko UMP-PL-Koszalin UMP-PL-Krakow UMP-PL-Leszno UMP-PL-Lodz UMP-PL-Lublin UMP-PL-NowySacz UMP-PL-Olsztyn UMP-PL-Opole UMP-PL-Pila UMP-PL-Plock UMP-PL-Poznan UMP-PL-Przemysl UMP-PL-Radom UMP-PL-Rzeszow UMP-PL-Siedlce UMP-PL-Suwalki UMP-PL-Szczecin UMP-PL-Tarnow UMP-PL-Tczew UMP-PL-Torun UMP-PL-Warszawa UMP-PL-Wloclawek UMP-PL-Wroclaw UMP-PL-Zamosc"
 +
; 3. Replikacja źródeł mapy i narzędzi z projektowego CVSa
 +
cd $CVS
 +
cvs checkout narzedzia
 +
for i in $DIR ;do
 +
cvs checkout $i
 +
done
 +
 
 +
; 4. Montaż czyli stworzenie jednego pliku w formacie [http://wiki.openstreetmap.org/wiki/Polish_format MP]
 +
Skrypt mont-demon-multi2.pl domyślnie zapisuje wynik pracy w pliku ''wynik.mp''
 +
 
 +
Parametry:
 +
* --cities umieszcza punkty miast w pliku wynikowym. Można pominąć jeśli nie są potrzebne.
 +
* --topo włącza do pliku wynikowego dane topograficzne.
 +
* --noborders usuwa z pliku ''wynik.mp'' granice międzyobszarowe. Nie są one potrzebne w większości zastosowań.
 +
cd $CVS/WORK
 +
perl $CVS/narzedzia/mont-demont-multi2.pl --cities --topo --nodummy --noborders --mont $DIR
 +
W konkretnych przypadkach można pokusić się o optymalizacje użycia pamięci przez cały proces.
 +
N.p. w routing nie są potrzebne lasy, wody, budynki. Można przy pomocy parametru ''--filter'' skryptu ''mont-demont-multi2.pl'' ograniczyć liczbę przetwarzanych danych.
 +
 
 +
Dodatkowo wymagane jest uporządkowanie kodowania polskich znaczków.
 +
$CVS/narzedzia/iso2win <wynik.mp >wynik1.mp
 +
 
 +
 
 +
; 5. Konwersja .mp -> xml .osm
 +
Końcowa konwersja dokonuje się z użyciem skryptu ''txt2osm.py''.
 +
 
 +
Skrypt ten pochodzi ze strony [http://repo.or.cz/w/ump2osm.git http://repo.or.cz/w/ump2osm.git] i oryginalnie powstał na potrzeby importu danych z UMPpcPL do projektu [http://www.openstreetmap.org www.openstreetmap.org].
 +
 
 +
Aktualna wersja znajduje się w projektowym repozytorium CVS ( ''narzedzia/txt2osm.py'' )
 +
 
 +
python $CVS/narzedzia/txt2osm.py --positive_ids wynik1.mp >wynik.osm
 +
 
 +
* --positive_ids wymusza użycie dodatnich identyfikatorów obiektów w xml. Pozwala pracować z narzędziami typu [http://wiki.openstreetmap.org/wiki/Osmosis osmosis], [http://wiki.openstreetmap.org/wiki/Osm2pgsql osm2pgsql]. Pominięcie tego parametru powoduje użycie indeksów ujemnych, które umożliwiają poprawną pracę z edytorem [http://josm.openstreetmap.de/ JOSM].
 +
* konwersja całego obszaru Polski wymaga ponad 5GB pamięci RAM i 64-bitowego systemu
 +
 
 +
== Zastosowania ==
 +
 
 +
[[Kategoria:Użytkowanie mapy]][[Kategoria:OSM]]
 +
 
 +
;OsmAnd
 +
* Konwersja do OSM XML używana jest jako pierwszy krok przy tworzeniu mapy dla programu [[Dla_Androida|OsmAnd]] dostępnego na urządzenia pracującego pod kontrolą systemu [[Dla_Androida|Android]].
 +
 
 +
;OSRM
 +
* OSM XML jest też wejściowym formatem dla naszego silnika wyznaczających [[Trasy]].

Aktualna wersja

Wstęp

Coraz częściej mapa UMP jest używana do innych zastosowań niż wgranie do odbiornika Garmina.

Artykuł ten opisuje sposób konwersji na format OSM XML [1]

Wynik tej konwersji pozwala dalej na użycie danych UMP w serwisach udostępniających mapy za pomocą www, generujących trasy przejazdu (routing) czy załadowania do bazy danych geograficznych.

Konwersja

Opis konwersji dotyczy środowiska Linux. Oczywiście można jej dokonać z użyciem Windows ale szczegóły tej operacji zostawiamy domyślnemu czytelnikowi.

Potrzebne będą:

  • dowolny Linux 2-6GB RAM (2GB dla pojedynczych fragmentów mapy - 6GB RAM dla całej Polski)
  • narzędzia (cvs, perl, python, tr)
  • katalog roboczy 2GB+


1. Stworzenie katalogów roboczych
mkdir $HOME/UMPCVS
mkdir $HOME/UMPCVS/WORK
2. Definicje zmiennych środowiskowych

CVSROOT to namiary na repozytorium CVS mapy UMP, zaś DIR lista regionów mapy. Polska ma ich aktualnie 33.

export CVSROOT=":pserver:guest@cvs.ump.waw.pl/home/cvsroot"
export CVS=$HOME/UMPCVS
export DIR="UMP-PL-Warszawa UMP-PL-Radom UMP-PL-Suwalki"

dla całej Polski

export DIR="UMP-PL-Bialystok UMP-PL-Ciechanow UMP-PL-Gdansk UMP-PL-GorzowWlkp UMP-PL-JeleniaGora UMP-PL-Kalisz UMP-PL-Katowice UMP-PL-Kielce UMP-PL-Klodzko UMP-PL-Koszalin UMP-PL-Krakow UMP-PL-Leszno UMP-PL-Lodz UMP-PL-Lublin UMP-PL-NowySacz UMP-PL-Olsztyn UMP-PL-Opole UMP-PL-Pila UMP-PL-Plock UMP-PL-Poznan UMP-PL-Przemysl UMP-PL-Radom UMP-PL-Rzeszow UMP-PL-Siedlce UMP-PL-Suwalki UMP-PL-Szczecin UMP-PL-Tarnow UMP-PL-Tczew UMP-PL-Torun UMP-PL-Warszawa UMP-PL-Wloclawek UMP-PL-Wroclaw UMP-PL-Zamosc"
3. Replikacja źródeł mapy i narzędzi z projektowego CVSa
 cd $CVS
 cvs checkout narzedzia
 for i in $DIR ;do
    cvs checkout  $i
 done
4. Montaż czyli stworzenie jednego pliku w formacie MP

Skrypt mont-demon-multi2.pl domyślnie zapisuje wynik pracy w pliku wynik.mp

Parametry:

  • --cities umieszcza punkty miast w pliku wynikowym. Można pominąć jeśli nie są potrzebne.
  • --topo włącza do pliku wynikowego dane topograficzne.
  • --noborders usuwa z pliku wynik.mp granice międzyobszarowe. Nie są one potrzebne w większości zastosowań.
 cd $CVS/WORK
 perl $CVS/narzedzia/mont-demont-multi2.pl --cities --topo --nodummy --noborders --mont $DIR

W konkretnych przypadkach można pokusić się o optymalizacje użycia pamięci przez cały proces. N.p. w routing nie są potrzebne lasy, wody, budynki. Można przy pomocy parametru --filter skryptu mont-demont-multi2.pl ograniczyć liczbę przetwarzanych danych.

Dodatkowo wymagane jest uporządkowanie kodowania polskich znaczków.

$CVS/narzedzia/iso2win <wynik.mp >wynik1.mp


5. Konwersja .mp -> xml .osm

Końcowa konwersja dokonuje się z użyciem skryptu txt2osm.py.

Skrypt ten pochodzi ze strony http://repo.or.cz/w/ump2osm.git i oryginalnie powstał na potrzeby importu danych z UMPpcPL do projektu www.openstreetmap.org.

Aktualna wersja znajduje się w projektowym repozytorium CVS ( narzedzia/txt2osm.py )

python $CVS/narzedzia/txt2osm.py --positive_ids wynik1.mp >wynik.osm
  • --positive_ids wymusza użycie dodatnich identyfikatorów obiektów w xml. Pozwala pracować z narzędziami typu osmosis, osm2pgsql. Pominięcie tego parametru powoduje użycie indeksów ujemnych, które umożliwiają poprawną pracę z edytorem JOSM.
  • konwersja całego obszaru Polski wymaga ponad 5GB pamięci RAM i 64-bitowego systemu

Zastosowania

OsmAnd
  • Konwersja do OSM XML używana jest jako pierwszy krok przy tworzeniu mapy dla programu OsmAnd dostępnego na urządzenia pracującego pod kontrolą systemu Android.
OSRM
  • OSM XML jest też wejściowym formatem dla naszego silnika wyznaczających Trasy.