Pl:Importy/Adresy

From OpenStreetMap Wiki
Jump to: navigation, search
Dostępne języki — Import/Address
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

Cele

Import punktów adresowych na obszarze całej Polski.

Harmonogram

Brak specyficznego, kolejne importy zwykle pokrywające gmine, lista:

Import

Źródło danych

W naszym amataroskim rozumieniu prawa, dane są dostępne przez (samo)rządowy projekt EMUiA i w naszym rozumieniu prawa podpadają pod ustawę o dostępie do Informacji publicznej, czyli są publikowane w Domenie Publicznej.

Użyte oprogramowanie

Zestaw skryptów pomocny przy pracy z importami adresów znajduje się w repozytorium. Najważinejsze są dwa skrypty:

  • merger.py - pobierający adresy oraz dane z OSM i łączący te dane
  • punktyadresowe_import.py - pobierający dane adresowe i zapisuje je do pliku

Obsługiwane źródła danych:

Uruchamianie merger.py

Ewidencja adresów jest prowadzona przez gminy. Skrypt importujący też działa na poziomie konkretnej gminy. Gminę, na której pracujemy definujemy przez podanie opcji --terc <GMINA> z kodem TERC ze słowika TERYT danej gminy. Dla serwisów prowadzonych przez iMPA kod terc jest zgadywany przez skrypt.

Źródło wybiera się podając odpowiednią opcję:

  • --impa <nazwa serwisu> dla serwisów iMPA
  • --gisnet <nazwa serwisu> dla serwisów GISNET
  • --gugik_gml <ścieżka do pliku GML> dla importów z plików GML GUGiK
  • --gugik dla importu z EMUiA
  • --warszawa dla importu z UM Warszawa + EMUiA

Standardowo skrypt generuje plik wyjściowy result.osm, można podać też własną nazwę pliku za pomocą --output <nazwa pliku>.

Skrypt jest też dostępny przez usługę sieciową. Można pobrać plik poprzez otworzenie adresu:

Mapowanie danych źródłowych na OSM

iMPA

Przykładowe dane o punkcie adresowym z danych iMPA, pobrane za pomocą:

  • REQUEST=GetFeatureInfo
  • QUERY_LAYERS=punkty
  • INFO_FORMAT=text/html

Z serwisu WMS: http://www.punktyadresowe.pl/cgi-bin/mapserv?map=/home/www/impa2/wms/sorkwity.map

Nazwa kolumny wartość komentarz
Miejscowość (Id GUS) Sorkwity (0488119) W nawiasie podany jest SIMC miejscowości
Nazwa ulicy (Id GUS) Szkolna (21970) W nawiasie podany jest SYM_UL ulicy
Numer 1
Kod pocztowy 11-731
Obręb 0015
Działka 72/5
PUWG 1992 Y 640353, X 666490 Współrzędne punktu adresowego w PUWG 1992
GPS (WGS 84) L 21.13400, B 53.84404 Współrzędne punktu adresowego w WGS84
Data zmiany 2014-02-28 09:48:05 Data ostatniej zmiany punktu
idIIP 81fd091f-5012-46ed-a4e7-fa6d23306a0a Identyfikator punktu adresowego
Źródło danych sorkwity.e-mapa.net


GUGiK

Przykładowe dane o jednym punkcie adresowym:

Nazwa kolumny wersja 8 wersja 9 komentarz
IDENTYFIKATOR_PUNKTU N/A.30000000000033106180.8 N/A.30000000000033106180.9 Numer wersji znajduje się po kropce. Występują adresy o nieciągłej numeracji wersji
IDENTYFIKATOR_DZIALKI <brak jednoski>.<brak obrębu>. <brak jednoski>.<brak obrębu>. Numer ewidencyjny działki, nie zawsze występuje (tak jak np. w tym przypadku)
IDENTYFIKATOR_ULICY N/A.20000000000000751840.9 Identyfikator ulicy pojawia się w wersji 9 (wcześniej adres był bez ulicy)
TERYT_ULICY 20254 Identyfikator ulicy TERYT (czyli SYM_UL z Terytowego słownika ULIC)
IDENTYFIKATOR_MIEJSCOWOSCI PL.PZGiK.204.10000000000000377213.8 PL.PZGiK.204.10000000000000377213.9 Do weryfikacji, czy identyfikator zmienia się wraz ze zmianą miejscowości bez ulic na miejscowość z ulicami
TERYT_MIEJSCOWOSCI 0971057 0971057 Identyfikator SIMC z Terytowego słownika SIMC
TERYT_JEDNOSTKI 3021103 3021103 Identyfiaktor TERC (województwo, powiat, gmina + rodzaj gminy) ze słownika TERC
NAZWA_MIEJSCOWOSCI Mosina Mosina
NAZWA_ULICY Słoneczna Nazwa ulicy pojawia się w wersji 9
STATUS Zatwierdzony Zatwierdzony Status punktu. Zidentyfikowano: Zatwierdzony, TODO:
NUMER_PORZADKOWY 33 33 Numer budynku
KOD_POCZTOWY 00-000 00-000 Jak widać, nie zawsze uzupełniony
ELEMENT_BUDYNKU Środek ciężkości budynku Środek ciężkości budynku Umieszczenie punktu adresowego w budnku?
USYTUOWANIE_BUDYNKU Budynek naziemny Budynek naziemny
STATUS_BUDYNKU Istniejący Istniejący Zidentyfikowano wartości: Istniejący, TODO:
WERSJA_OD 2013-08-02 12:49 2013-08-02 12:51 Od kiedy obowiązuje wersja w formacie dla ludzi
WERSJA_DO 2013-08-02 12:51 do kiedy obowiązywała wersja. W ostatniej wersji - pole nie występuje
KOMENTARZ_WERSJI Wersja powstała w wyniku aktualizacji miejscowości. Wersja powstała w wyniku aktualizacji miejscowości.
BRAK_WAZNY_OD Brak danych Brak danych W niektórych sytuacjach (wydaje się, że dotyczy to konkretnych pól), brak wartości jest przekazywane poprzez prefiks BRAK_ w nazwie pola
OD 1375447796000 1375447863000 Od kiedy obowiązuje punkt w formacie timestamp
DO 1375447863000 Do kiedy obowiązuje punkt w formacie timestamp. Brak pola dla ostatniej wersji.

Na tym przykładzie widać, jak zmieniają się dane w przypadku zmiany ulicy. Dane zostały pobrane wykorzystując:

  • FORMAT=application/vnd.google-earth.kml+xml
  • LAYERS=emuia:layer_adresy_labels
  • REQUEST=GetMap

z WMS EMUiA GUGiK (http://emuia.gugik.gov.pl/wmsproxy/emuia/wms)


Tagowanie

tag OSM dane GUGiK dane iMPA komentarz
addr:city NAZWA_MIEJSCOWOSCI Miejscowość (Id GUS)
addr:place NAZWA_MIEJSCOWOSCI Miejscowość (Id GUS) w przypadku, gdy nie występuje addr:city
addr:street NAZWA_ULICY Nazwa ulicy (Id GUS)
addr:postcode KOD_POCZTOWY Kod pocztowy o ile występuje i jest różny od 00-000
addr:housenumber NUMER_PORZADKOWY Numer z usunięciem spacji, ale bez zmiany wielkości liter
source:addr "emuia.gugik.gov.pl" Źródło danych
addr:city:simc TERYT_MIEJSCOWOSCI Miejscowość (Id GUS) identyfikator miejscowości, w której występuje adres
addr:place:simc TERYT_MIEJSCOWOSCI Miejscowość (Id GUS) identyfikator miejscowości, w której występuje adres, gdy nie występuje addr:city/addr:city:teryt
addr:street:sym_ul TERYT_ULICY Nazwa ulicy (Id GUS) identyfikator ulicy adresu
ref:addr IDENTYFIKATOR_PUNKTU idIIP identyfikator punktu

Kwestie dyskusyjne:

Podawanie addr:city:simc pozwala nam lepiej wyłapać brakujące palce=*, bo nie bazujemy na powtarzających się nazwach, tylko możemy sprawdzać odległość do konkretnej miejscowości, o którą w danym przypadku chodzi.

Podawanie addr:street:symul pozwala a automatyczne budowanie słownika postaci tekstowej OSM dla nazwy ulicy na podstawie danych znajdujących się w OSM, zamiast budować sztuczne mapowanie w skryptach. Dzięki temu też w przypadku pojawiania się nowych adresów przy danej ulicy, automatycznie zostanie wykorzystana nazwa, jaka już występuje dla danego teryt:symul w OSM.


Przygotowywanie danych

Dane do importu są generowane poprzez przetworzenie WMSowych plików png dla których każdy wykryty punkt adresowy jest odpytywany ( przykładowe zapytanie) Wyniki są zapisywane w plikach *.osm dla dalszego przetwarzania. Punkty adresowe są filtrowane aby nie przykryć żadnego dotychczasowego punktu adresowego w danym obszarze, co pozawala uniknąć przesunięcia/skasowania/zduplikowania istniejącego punktu adresowego. Jeśli pozostałe punkty adresowe pokrywają się z istniejącym obrysem budynku, tagi adresowe zostają przypisane do istniejącego budynku. Dane są wyciągane w na tyle małych partiach że pozwala to je przejrzeć w JOSM przed ostatecznym importem. Do przegotowywania danych należy użyć reguł walidatora w JOSM: https://raw.githubusercontent.com/zibik/adresy_walidator/master/skroty.mapcss

Tagowanie

Tylko tagi punktów adresowych (:addr=* ) są dodawane podczas importu.

Przykładowe pliki importu

http://openstreetmap.org.pl/emuia-demo/siemiatycze-numerki.osm.bz2 - plik z danymi adresowymi otrzymany dzięki skryptowi usera gsapijaszko.

http://openstreetmap.org.pl/emuia-demo/siemiatycze-filtered.osm.bz2 - plik po odfiltrowaniu adresów już wprowadzonych do OSM. Filtracja odbywa się z użyciem skryptu addrmerge.py.

http://openstreetmap.org.pl/emuia-demo/siemiatycze-after-merging.osm.bz2 - gotowe do wysłania dane, po połączeniu pliku siemiatycze-filtered.osm z istniejącymi w OSM obrysami budynków. Łączenie adresów z budynkami odbywa się z użyciem skryptu merge-building-addrs.py

Konto użytkownika z którego będzie wykonany import

Importy są przeprowadzanie z osobnych kont służących tylko do tego celu. Takie jest wymaganie DWG i nieprzestrzganie go może skończyć się zawieszeniem konta czy usunięciem importowanych danych.

Lista wykonanych importów

Kompletna lista importów jest dostępna i tam należy dodawać wykonane importy.

Linki warte przejrzenia