Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum dla Marzec, 2016

Państwowy Rejestr Granic: Punkty adresowe

Autor: Piotr Karpiuk o 29. marca 2016

Centralny Ośrodek Dokumentacji Geodezyjnej i Kartograficznej (CODGiK) w dziale Dane bez opłat udostępnia za darmo bazę punktów adresowych, dość często aktualizowaną (nawet co kilka dni).

Najważniejsza jest w niej tabela PunktAdresowy (przeszło 7 mln rekordów), o następującej strukturze (wymieniłem najciekawsze kolumny):

PunktAdresowy
wojewodztwo
powiat
gmina
miejscowosc
ulica
numerPorzadkowy numer budynku
kodPocztowy wypełniony w ok. 75% rekordów
status wartości: istniejacy (97,64%), prognozowany (1,9%), wTrakcieBudowy (0,46%)
gps współrzędne punktu na mapie (w układzie EPSG:2180)

W bazie jednak jest więcej. Każdy punkt adresowy zawiera dowiązania do rekordów w tabelach JednostkaAdministracyjna (kraj/województwo/powiat/gmina), Miejscowosc oraz Ulica. Struktura tych tabel jest następująca (pola wypełnione są w 100% chyba że napisano inaczej):

JednostkaAdministracyjna
nazwa
idTERYT kod TERC
poziom 1: państwo, 2: województwo, 3: powiat, 4: gmina
Miejscowosc
nazwa
idTERYT kod SIMC
gps współrzędne punktu na mapie, wypełnione w ok. 11% rekordów
Ulica
idTERYT kod ULIC
przedrostek1Czesc np. "pl.", "al."
przedrostek2Czesc np. "ks."
nazwaCzesc np. "Jerzego"
nazwaGlownaCzesc np. "Popiełuszki"
posList lista punktów GPS wyznaczających przebieg ulicy na mapie; wypełnione w ok. 6%

Ujęty w rekordach tabel JednostkaAdministracyjna i Miejscowosc podział administracyjny kraju możemy sobie wyobrazić jako drzewo (w korzeniu będzie rekord POLSKA, potem województwa, powiaty, gminy i miejscowości). Ten model nie rozciąga się jednak na ulice. Każda ulica w kraju jest reprezentowana w tabeli Ulica jako jeden obiekt. Jedna ulica może przebiegać przez kilka miejscowości (sąsiadujących ze sobą). Punkt adresowy oczywiście ma dowiązanie do jednej miejscowości i (zwykle) do jednej ulicy (na wsiach adres pocztowy często zawiera tylko nazwę miejscowości i numer domu).

Przetwarzanie bazy

Do pobrania ze strony CODGiK jest duży (ok. 700 MB), spakowany plik punkty_adr.zip zawierający 16 plików XML (dokładniej: GML) po jednym dla każdego województwa, po rozpakowaniu ok. 16 GB. Format XML dobrze się nadaje do udostępniania zbioru danych innym, ale gdyby ktoś chciał zaimportować dane do relacyjnej bazy danych, to może skorzystać z efektów mojej pracy. Napisałem program w Javie, który konwertuje pliki XML do jednego pliku bazy danych SQLite o objętości ok. 3 GB.

Program wywołujemy poleceniem

./run.sh KATALOG

Gdzie KATALOG to nazwa katalogu, w którym rozpakowaliśmy pliki XML. Wynik po kilkunastu minutach pojawia się w pliku PRG.db, który możemy eksplorować za pomocą standardowego klienta SQLite:

sqlite3 PRG.db

Tags:
Napisany w Bazy danych, Uncategorized | 1 Komentarz »