Import danych z http://ump.waw.pl/

Co do pytania to przedrostek z numerem powinien byc przed nazwa drogi.

No wiec szybki kurs jak to z ump, nazwami i numerami drog jest:

Danej drodze mozna przypisac trzy rozne nazwy. W zrodlach oznacza sie je poprzez Label, Label2 i Label3. Pierwszy Label stosuje sie zawsze dla nazwy drogi, drugi i trzeci prawie tylko wtedy gdy droga jest numerowana. Jesli droga jest numerowana to wtedy aby pokazac numer tej drogi dodaje sie ten dziwny przedrostek (jak juz opisywalem) a zaraz za nim numer drogi, po czym nazwe ulicy. To wszystko dla Label. Taki sposob zapisu powodowalby jednak problemy przy sortowaniu nazw do ineksu (na przyklad drogi trzeba szukac by razem z jej numerem, co nie jest wskazane). Z tego powodu jest tez Label2 w ktorym dopisuje sie juz sama nazwe ulicy, bez numeru i innych takich. Label3 uzywa sie w wyjatkowych sytuacjach, gdy jakas ulica ma swoja alternatywna nazwe lokalna (ktora znaja tubylcy) oraz dla skrotow. No wiec konkretny przyklad:

[POLYLINE]
Type=0x4
Label=~[0x2f]705 Polskiego Czerwonego Krzyza
EndLevel=1
DirIndicator=1
Data0=(51.95443,20.15786),(51.95423,20.15743)
Label2=Polskiego Czerwonego Krzyza
Label3=PCK
[END]

No i teraz co mamy w Label
~[0x2f] - przedrostek ktory kaze wyswietlac numer drogi na mapie w prostokaciku z czarnymi obwodkami na gorze i dole
705 - numer drogi
Polskiego Czerwonego krzyza - nazwa ulicy

mamy tez dwa pozostale labele
Label2 - pod taka alternatywna nazwa bedzie ulica bedzie znajdowana
Label3 - pewnie wielu powie ze to ulica PCK wiec warto aby mozna bylo ja znalezc jeszcze pod taka nazwa.

Label2 i Label3 maja tez swoje dodatkowe znaczenia dla odbiornika, ale nie jest to istotne dla tych rozwazan. Mam nadzieje, ze troszeczke rozjasnilem. Jak chcecie robic import z ump naprawde dobrze to radze sie zapoznac ze struktura danych w UMP. Unikniecie sporo problemow a i osm bedzie lepsze. W razie problemow sluze pomoca.

http://pinalambla.net/txt2osm.py - tutaj jest kolejna wersja skryptu, która ju? rozumie, gdzie schowa? si? numer ref :slight_smile:
Poniewa? znalaz?em gdzie? kiedy? robzbie?no?? mi?dzy Label i Label2 (w której? brakowa?o polskich znaków), stwierdzi?em, ?e lepiej korzysta? z tej, która jest naprawd? u?ywana, czyli Label2. Teraz je?li jest ustawione, jest brane zamiast Label (oczywi?cie, numer drogi nadal jest brany pod uwag?).

Poprawi?em te? kod odpowiadaj?cy za wczytywanie koordynatów. Teraz b?d? dok?adnie takie, jak by?y w pliku, poniewa? nie s? wczytywane jako liczby. Usuwa to te? potencjaln? dziur? w bezpiecze?stwie (odpowiednio spreparowany plik móg? zrobi? szkody w systemie, poniewa? pary koordynatów by?y interpretowane jako kod).

Dzi?ki za podpowiedzi!

A zastanawia? sie kto? nad problemem synchronizacji aktualizajci danych z ump do osm ?
Np stworzeniem narzedzia:

  1. txt2osm.py jakiego? obszaru do obszar_ump.osm
  2. ?ci?gni?cie obszr_osm.osm na podstawie skrajnych z obszar_ump.osm
  3. Generacja róznicy pomi?dzy obszar_ump.osm a obszar_ump.osm tak aby powsta?y:
    obszar_braki_osm.osm - to czego nie ma w osm a jest w ump
    obszar_roznica_<id_i_opis>osm.osm i obszar_roznica<id_i_opis>_ump.osm - pokazuj?cy ró?ne wersje tych samych fragmentów w przypadku gdy wersja ump jest b. z?o?ona / lepsza ni? osm ?

Sam pomys? jest dobry i jestem pewien, ?e kto? ju? o tym wcze?niej my?la?, ale jest dosy? k?opotliwy do zrealizowania - trudno jest okre?li?, która droga to która.
O ile maj?c do czynienia z ró?nymi wersjami tego samego terenu z OSM (gdzie znalaz?yby si? poprzesuwane punkty i porozszerzane drogi), mo?emy porównywa? je za pomoc? ID ka?dego elementu (które si? nie zmienia w czasie), to plik z importu ma ju? inne ID dla tych samych dróg, ni? to, co by?o do tej pory (a w?a?ciwie to nie ma wcale ?adnych sensownych ID).
Mo?na porównywa? dok?adne koordynaty punktów, ale co je?li kto? pod?o?y? pod nie ?lady i lekko poprawi? to z UMP?
Nieco lepszy sposób to jakie? inteligentne porównywanie dróg za pomoc? kszta?tu i po?o?enia, ale w?tpi?, ?eby kto? si? chcia? podj?? takiego zadania :slight_smile: Pro?ciej wczyta? plik po konwersji jako kolejn? warstw? w JOSM i szuka? zmian r?cznie.

PS. Nie uda?o mi si? znale?? nigdzie narz?dzia do wy?wietlania zmian w danym oszarze w OSM, istnieje w ogóle co? takiego?

http://labs.geofabrik.de/history/?

BTW arzej si? do kogo? odezwa??

Super, a co znaczy
Label=~[0x2b]2/8 Prymasa Tysiaclecia

Droga 2 i 8 ?
(znalezione na http://ump.waw.pl/faq.html))

A
Type=0x16

Która to z
http://wiki.openstreetmap.org/wiki/Map_Features#Highway
Google podpowiada ?e to trail ?

Tak, to jest droga 2 i 8, czasami drogi o dwóch numerach zbiegaj? si? w jedn? wtedy w ump jest to tak oznaczane.

Walkway/Trail, w ten sposób s? oznaczane drogi, ?cie?ki, nieprzejezdne samochodem osobowym, ci??arowym, terenowym (ogólnie tereny gdzie niewarto zap?dza? si? samochodem). Z definicji takie odcinki dróg otrzymuj? zakaz ruchu, wi?c routing tamt?dy nie prowadzi. Czasami s? te? wykorzystywane w miastach do pokazania dojazdu do jakiej? posesji która ma inny adrews ni? wskazywa?aby to ulica przy której si? znajduje. Tak samo robi si? czasami z osiedlami (nazwanymi osiedlami). Ogólnie jednak jest to jaka? ?cie?ka, po której samochodem si? nie je?dzi.

Grrrr cudownie, kto? kto importowa? dane z UMP natworzy? mas? zduplikowanych dróg w okolicy Poznania (odcinek Pozna?->Rogalin), zapraszam do pomocy w porz?dkach :wink:

Witam

Czy tylko ja mam wra?enie, ?e dane z UMP s? “do?? dok?adne” - znaczy si? (poza wspomnianymi ju? problemami z rondami i po??czeniami dróg) dok?adne, je?eli chodzi o wymogi nawigacji samochodowej, ale jakby chcie? dok?ada? trasy piesze/rowerowe to dok?adno?ci brakuje.

njarek zrobi? mi przys?ug? i zaimportowa? moj? okolic? ale teraz mijaj? si? z moimi GPX’ami - to niby nic wielkiego, bo ulice s? do?? rzadko, ale … Gdyby chcie? doda? chodniki, przej?cia dla pieszych, przystanki autobusowe, parkingi to zaczynaj? si? schody.

pytanie techniczne do bardziej do?wiadczonych:
czy kilka ?ladów (GPX) z jednego urz?dzenia jest wystarczaj?co dok?adne, czy lepiej poczeka? a? kto? przejedzie z innym GPS’em? Innymi s?owy, czy jest mo?liwe, ?e ten odbiornik który mam ma sta?y b??d, który np. przesuwa mi pozycj? o 10m w lewo.
Nie wiem, czy poprawia?. Nie chcia?bym bardziej popsu? ni? jest :slight_smile:

jeszcze inna kwestia to nazewnictwo dróg - drogi osiedlowe ja oznaczam jako residential z UMP cz??? wesz?a jako service, rozumiem, ?e mog? i powinienem poprawi? na residential.

btw. to nie wiem sk?d UMP ma te dane, bo cz??ci “dróg” nie ma (mo?e by?y) odk?d si? wprowadzi?em - czyli jakie? 20 lat :slight_smile:

no to jak mi ju? ta lista skarg i za?ale? taka d?uga wysz?a to jak wy??czy? emotikony - rozró?niam bez problemu dwukropek minus nawias od ?rednik minus nawias, ale nie zawsze rozpoznam, czy w tym ?ó?tym kó?ku jest ?uk i dwa ma?e kwadraty, czy ?uk, kwadrat i kreska :wink:

Lepsze takie ni? ?adne :slight_smile:

Porównaj swoje traki to innych publicznych (w josm mo?na to zrobi? b. dok?adnie) i jesli wyjdzie Ci ?e masz tak jak wi?kszo?? to spokojnie mo?esz cyzelowa? UMP do Twoich traków.
B. dobrze jest te? udost?pnia? innym swoje tracki via
http://www.openstreetmap.org/traces/mine

Tutaj obowi?zuje
http://wiki.openstreetmap.org/wiki/Map_features#Route
i ?mia?o poprawiaj

Pozdrowienia !

M.in. st?d moje w?tpliwo?ci co do legalno?ci tych danych :confused: W ka?dym razie ja wszystkie poprawiam w?asnymi ?ladami GPX (wywalaj?c uprzednio te oznakowane jako UMP i tworz?c nowe na ich miejsce, coby nie by?o “derived work”)

My?l?, ?e je?li przejedziesz si? kilka razy t? sam? tras? o ró?nych porach, to w zupe?no?ci wystarczy. W teorii takie b??dy mog?yby istnie?, ale chyba raczej przez pomy?k?/z?o?liwo?? konstruktorów.

Na pewno chodzi o Route? Nie widz? tu jego zastosowania… To drogi takie, jak ka?de inne, bez specjalnych zastosowa?.

Chodzi?o mi ca?o?ciowo o stron? (Map_features).
Tutaj b?dzie oczywi?cie:

http://wiki.openstreetmap.org/wiki/Map_features#Highway

Po imporcie z UMP mamy wiele dróg highway=unclassified & surface=unpaved. Czy drogi te nie powinny mie? tagu highway ustawionego na track?
Po pierwsze zwyk?ym autem mog? by? trudne do pokonania, po drugie highway=unclassified s? widoczne nawet w wi?kszym oddaleniu: http://openstreetmap.org/?lat=53.843&lon=17.403&zoom=10&layers=B000FTF
Po trzecie opis track z Map Features wydaje mi si? lepiej oddawa? ich charakter :smiley:

Czesc, zrobilem nowa wersje txt2osm.py, mam nadzieje ze lepsza. Ta wersja konwertuje nie tylko ulice ale wszystko co jest w UMP, podszedlem do tego z takiej strony ze zamiast ignorowac to czego program nie rozumie to program sie wywala jesli czegos nie rozumie, i dodawalem feature’sy az przestal sie wywalac, w zwiazku z tym zrobil sie dosyc dlugasny. Zastrzegam ze nie znam pythona i pewnie mozna by go bylo zakodowac lepiej.
Z ciekawszych rzeczy, potrafi:

  • wykombinowac wartosc “highway=” dla rond, biorac klase najwazniejszej drogi ktora dochodzi do ronda.
  • zrozumiec tag HLevel0 z UMP i dzieli droge na kawalki odpowiednio przydzielajac “layer=”, “bridge=yes” i “tunnel=yes” kawalkom.
  • dodawac dane adresowe dla budynkow, drog, sklepow itd. Dla drog, jesli w UMP sa numery budynkow dla dwoch koleknych wezlow z ich lewej i prawej strony to dodaje addr:interpolation (wedlug Karlsruhe Schema) obok drogi, po lewej i po prawej. Kody pocztowe itd.
  • dodawac relacje turn restrictions z plikow *.zakazy.txt z UMP. To jest chyba najbardziej skomplikowana czesc programu bo UMP opisuje zakazy punktami a nie drogami wiec skrpt musi znalesc droge ktora przechodzi przez dane wezly i ewentualnie podzielic ja na dwie (w OSM drogi w relacji musza sie konczyc albo zaczynac na wezle “via”). Dodatkowo jesli z nazwy relacji nie wynika czy to jest zakaz skretu w prawo czy w lewo to prboje sam policzyc kat skretu (oczywiscie bardzo zawode).
  • przetrawic cala europe w ciagu pol godziny. Oryginalny skrypt jak zapuscilem tylko dla katalogu UMP-Warszawa to pracowal 66.2 minut, zmienilem strukture w ktorej sa punkty z listy na podwojny slownik (z dwoma indeksami) i przekonwertowal UMP-Warszawa/ w 14 sekund. Dodanie relacji spowodowalo ze zajmuje mu to 43 sekundy.

Dla POI zamiast czytac pliki .pnt, zapuszczam skrypt z katalogu narzedzia/ w UMP ktory konwertue je do .txt i dopiero potem zapuszczam txt2osm. Poniewaz w UMP wszystko jest opisane tylko punktami a nie identyfikatorami to im wiekszy obszar skonwertujesz za jednym razem, tym mniej roboty jest pozniej z laczeniem drog ze soba, bo skrypt je polaczy, wiecej lepiej pracowac na wiekszych obszarach. Na przyklad w wolominie pod warszawa wszystkie lokalne ulice byly w pliku …ulice.txt oprocze ronda w samym srodku ktore bylo w …drogi.txt, wiec nie zostalo polaczone. Najlepiej wiec uruchamiac skrypt w ten sposob (zalozmy ze chcemy skonwertowac Wolomin i okolice):

./txt2osm.py UMP-Warszawa/src/WOLOMIN*.txt – UMP-Warszawa/src/*.txt > wolomin.osm

to spowoduje ze skrypt najpierw zaladuje WOLOMIN.drogi.txt i WOLOMIN.ulice.txt, zobaczy jakie sa minimalne i maksymalne wspolrzedne wezlow w tych danych, i potem zaladuje cala reszte warszawy wywalajac to co nie ma zadnego przeciecia z wyznaczonym prostokatem, w zwiazku z tym dostaniemy taki prostokatny wycinek mapy UMP ze wszystkimi danymi ktore sa w UMP. Wszystkie pliki podane po parametrze “–” juz nie zmieniaja rozmiarow tego prostokata.

Oczywiscie dane trzeba nadal sprawdzic recznie po zaladowaniu do JOSM i popoprawiac. Niektore tagi uzywane w UMP dla roznych osob najwyrazniej mialy rozne znaczeni i wtedy w roznych regionach, ten sam tag ma rozne znaczenie, w zwiazku z tym nie wszedzie moglem znalesc jednoznaczny odpowiednik z osm. Wydaje mi sie ze dane ktore juz sa w OSM maja wiekszy priorytet i nie nalezy nigdy ich wywalac na kozysc ump, (czesto mamy lepsza dokladnosc).

Wyjatkiem sa nazwy miejscowosci, w OSM ktos kiedys zaimportowal wszystkie miejscowosci z GNS, czyli z dokladnoscia do 0.03 stopnia w zwiazku z tym tworza taka brzydka siatkie i niektore miescowosci sa w tych samych punktach (czasem 5 miejscowosci sie pokrywa w tym samym punkcie) i czasem brakuje w nich polskich znakow. Wiec jesli w UMP jest jakas miejscowosc to chyba mozna spokojnie odszukac ta sama miejscowosc w OSM i wywalic. (W bazie gns sa w ogole jakies bardzo stare dane i nazwy miejscowosci ktore juz dawno nie istenija i nawet lokalna ludnosc o nich nie wie, ale moze warto je i tak trzymac… ostatnia aktualizacja w gns jest chyba z '93)

Tam gdzie sa dostepne zdjecia yahoo chyba warto popoprawiac odrazu polozenie obiektow.

Skrypt nie rozwija skrotow wiec trzeba recznie porozwijac skroty w nazwach i pododawac imiona do nazwisk a nazwach ulic. Wydaje mi sie ze nalezy zostawiac tag source= nawet jesli sie poprawi recznie dany obiekt po to zeby nie lamac licencji UMP ktora przeciez wymaga “attribution”, i to sie odnosi nie tylko do pozycji ale takze nazwy i innych informacji o obiekcie.

Ogolnie nie bylem fanem importowania danych z UMP bo sytuacja z licencja jest bardzo niejasna… czy przez attribution autorzy rozumieja tylko zeby istniala informacja ktora pozwoli dociekliwym osobom znalesc sciezke do zrodla danej informacji czy tez oczekuja informacji o tym ze dane sa z UMP przy kazdym ich uzyciu (jesli to drugie oczywisice OSM nie moze sie zgadzac na taka licencje). Zalozmy ze ktos chce uzyc mapke zrobiona z osm w telewizji zeby pokazac gdzie cos sie stalo, to wtedy licencia OSM wymaga tylko zeby gdzies na ekranie pojawila sie nazwa OpenStreetMap ale nie nazwy innych wlascicieli praw autorskich danych w osm.
(No ale rzeczywiscie nie ma sensu podwajac wysilkow w dwoch projektach, i skoro juz ktos robi import to najlepiej to zrobic dobrze odrazu bo dane w UMP nie maja identyfikatorow i pewnie nigdy nie bedzie mozna robic automatycznych update’ow)

Na listach -legal i -licensing twierdzi sie ze CC w ogole nie ma zatosowania do danych i ze uzycie tej licencji bylo pomylka i ze wlasciwie to mozna robic co sie chce z danymi na CC. Ale glupio bylo by ignorowac licencje UMP jesli sami uzywamy tej samej licenji w tym momencie. Nie jest dla mnie jasne czy kiedy zmieni sie nasza licencja to czy trzeba bedzie wywalic zaimportowane na prawach CC dane z bazy. Nie bedac wlascicielami praw do tych danych, teoretycznie nie mozna zgodzic sie na zmiane ich licencji (Z drugiej strony “share-alike” w CC mowi tylko ze licencja ma byc podobna, nie koniecznie taka sama)

Nie wiem tez skad sa niektore dane w UMP, dzis znalazlem w wolominie ulice podzielona na trzy segmenty z name=Ottokara, name=Brzozy i name=Brzeziny i okazuje sie ze to jest jedna ulica ktora tak naprawde nazywa sie Generala Ottokara Brzozy-Brzeziny :slight_smile: Najwyrazniej ktos patrzyl na jakas inna mape i narysowal to co widzial, dodatkowo chyba trzymal ja do gory nogami bo Ottokara byla po prawej a Brzeziny po lewej :slight_smile:

Skrypt jest pod http://www.openstreetmap.pl/ump/txt2osm.py
i pliki .osm (zzipowane) pod http://www.openstreetmap.pl/ump/

W ump jest troche literowek i najpierw dodawalem do skryptu te literowki ale potem zaczalem poprawiac w pikach .txt wiec jak ktos chce zapuscic skrypt na wszystkich danych to musi nalozyc patcha z http://www.openstreetmap.pl/ump/ump.diff na dane z CVSa

Jestem pod wra?eniem!
Wida?, ?e w?o?y?e? w to naprawd? du?o wysi?ku (magiczna bariera 1000 linii przekroczona ;)). Sama lista usprawnie? te? wygl?da imponuj?co. Nie sprawdza?em jeszce dzia?ania skryptu, ale je?li wszystko jest naprawd? tak, jak piszesz, to skrypt si? przez jaki? czas przyda.

No w?a?nie, “przez jaki? czas”. Przy takiej ilo?ci pracy, z której mozemy korzysta?, na pewno kto? b?dzie mia? pomys? na nowe usprawnienia. Tu zaczynaj? si? schody, bo sam kod odstrasza - ilo?ci? i czytelno?ci?. Pewnie w takim momencie b?dziesz zam?czany pro?bami os poprawki a? b?dziesz mia? do?? :stuck_out_tongue:

Potwierdzam, cz??ci miejscowo?ci brakuje (~15%), cz??? ju? znikn??a (~15%), wi?kszo?? pozosta?ych zmieni?a nazwy (~40%), reszta si? zgadza. Nie s?dz?, ?eby trzymanie tych starych mia?o sens.

Juz spiesze z wyjasnieniem dlaczego najprawdopodobniej zostalo to tak nazwane. Kiedys, kompilator nie byl w stanie dzielic nazw ulic na czesci skladowe i aby odnalezc dana ulice trzeba byloby wpisac cala nazwe: tzn Generala-… itd. Z tego powodu zapewne ktos sobie wymyslil ze podzieli ja na 3 czesci, ktora kazda bedzie sie nazywala inaczej, ale dzieki temu znajdziemy ja niezaleznie od tego co wpiszemy. Troche to niezgodne z zasadami ump, bo w projekcie uzywa sie tylko nazwiska dla nazw ulic (przynajmniej powinno sie uzywac), ale niektorzy tak robia. Teraz kompilator pozwala juz na wyszukanie ulicy przez wpisanie tylko czesci nazwy (na przyklad samo imie). Tak wiec nie jest to wina patrzenia na mape do gory nogami, ale raczej proba obejscia ograniczen kompilatora.

Chcia?bym zauwa?y?, ?e w ramach generowania http://mapa.ump.waw.pl/ump-www/ tworzony jest plik w formacie OSM dla mapnik’a (ten sam silnik renderuj?cy co na stronie g?ównej OSM). Mo?e jak znajd? chwil? na ogarni?cie kodu, to udost?pni? kod i ew. wynikowy xml publicznie. Jak kto? lubi liczy? linie, to kod ma 4300, a definicja regu? konwersji prawie 6000 :stuck_out_tongue:

Baz? by?y ?ród?a z http://code.google.com/p/mp2osm/, które zosta?y przeze mnie poprawione pod konkretne przypadku oraz dostosowany plik xml definiuj?cy regu?y konwersji.
Wi?cej szczegó?ów na temat technikaliów dost?pne pod: http://ump.fuw.edu.pl/wiki/UMP-pcPL_online .

Niestety osm_id s? przy ka?dej generacji inne i na razie, aby ca?e ump-pcPL mia?o unikalne, musz? konwertowa? ca?o?? (potrzeba ok 2GB ram do tego). Jako próbk? podaj? UMP-Warszawa (2.2MB, 28MB rozpakowane):
http://marcom.homeip.net/ump-www/ump-warszawa.osm.bz2
Reszt? mo?na zobaczy? w formie wygenerowanej na WWW :wink: .
Ca?e UMP-pcPL to plik 103MB .osm.gz (770MB po rozpakowaniu).

Idea?em by?oby, gdyby powsta?y narz?dzia synchronizacyjne osm < - > ump, lub chocia? ump → osm. Wymaga?o by to dodatkowych tagów w OSM (np ump:typ, ump:type, ump:plik, ump:…) oraz pewnie pewnych zmian w ump, np pami?tanie osm_id, bo dopasowywanie na podstawie zawarto?ci (wspó?rz?dne/label/lista punktów) mo?e nie zawsze by? wystarczaj?ce.

Jak na razie widz?, ?e oba projekty id? w swoj? stron? i dubluj? swoj? prac?, bez wzajemnej komunikacji i pomys?u na wspó?prac?. A przyk?ady na b??dy i niedoci?gni?cia mo?na mno?y? po obu stronach i w obu przypadkach wydaj? si? by? niedopuszczalne dla drugiej strony.

G?ównym celem UMP-pcPL jest u?ywalna mapa w odbiornikach z dzia?aj?cym rutingiem. G?ównym celem OSM wydaje si? by? (takie odnios?em wra?enie i chyba nie tylko ja) wygl?d na WWW i zawarcie jak najwi?cej ilo?ci danych (czy latarnie przyuliczne te? s? warte zaznaczenia? :wink: ). Ruting jest raczej na samym ko?cu, jednak ?eby dzia?a? konieczne jest spe?nienie wielu obwarowa?, co jest w?a?nie si?? UMP-pcPL (know-how). Z tego wzgl?du aby edytowa? (commitowa? zg?aszane poprawki) potrzebna jest wiedza jak to robi?, by nie popsu? mapy, czego unika? itp.

Super by by?o, gdyby da?o si? po??czy? si?y, nie psuj?c tego co jest w obu projektach (rozmach OSM i funkcjonalno?? UMP).