Overpass - do wyciągania danych z OSM

Tak. W wersji 1.5 chyba właśnie w tym problem, że ten sposób jest niedostępny.

To jakiś przedpotopowy ten postgis :wink: Żarty “twoja stara jest tak stara, że znajduje się w repozytorium debiana stable” chyba nie są przesadzone :smiley:

:slight_smile: I tak jest w rzeczywistości. Nie wiem czy przed 20:00 można, ale znasz to - “Lepsza starsza i doświadczona …”?
Na takie okazje chwilowo instaluję Ubuntu. I jak nie znajdę sposobu tak zrobię i teraz.
Dzięki za zainteresowanie.

Eeee… moment… co ma wersja postgisa do importu danych?

Instalujemy postgres. Instalujemy postgis. Tworzymy bazę danych. Dodajemy rozszerzenie postgis (i ewentualnie hstore).

Do importu danych do tak utworzonej bazy danych można użyć osm2pgsql (to moja ścieżka) albo imposma (https://imposm.org/), którego używa m.in. SQ9NIT do swoich map.

Wersja postgisa będzie miała znaczenie na etapie późniejszym, niektóre funkcje są dostępne w nowszych wersjach.

Tu jest opis pożenienia qgisa z sqlite i osm: http://learnosm.org/en/osm-data/osm-in-qgis/. Do celu policzenia “centrum” położenia kodów adresowych może wystarczyć, później można po prostu policzyć średnią geometryczną dla współrzędnych X i Y.

Pozdrawiam,
Grzesiek

Może użyłem zbytniego skrótu “import”. Właśnie nie mogę dodać rozszerzenia postgis do utworzonej bazy (CREATE EXTENSION postgis;), z hstore daję radę. Jeżeli nie istnieje rozszerzenie bazy (wydaje się, że t0 jest powód) to osm2pgsql zgłasza błąd. W moim przypadku brak funkcji AddGeoColumns.
Dzięki za link. Też brałem pod uwagę konwersję osm do innej bazy . Sqlite byłoby ok.
Spróbuję.

Rozpoczynając temat liczyłem na “złoty strzał” - kliknij tu, a wynik sam wyskoczy. Właściwie osiągnąłem cel, mam plik (3,5 miliona linii), który po “drobnych” przeróbkach będzie przydatny dla mojego zastosowania. W skrócie (używając QGIS) - konwersja osm do sqlite, następnie zapytanie do tak utworzonej bazy, o wszystkie punktu z kodem pocztowym i zapisanie wyniku do pliku csv (również QGIS).
Po drodze okazało się, że otrzymywana baza sqlite, to jest baza spatial (przestrzenna), o czym nie miałem pojęcia i znowu trzeba czegoś się uczyć, choć nie wiem czy kiedykolwiek to się przyda :(.
Dziękuję Ci gsapijaszko.

Nie ma za co.

Cała frajda właśnie w tym, by ciągle się czegoś uczyć. Poznawać nowe. Smakować. Czy się kiedyś przyda, czy nie — to źle postawione pytanie. Ciekawszym jest: jak inaczej mogę to zrobić? Umiejętności, zwłaszcza nauczone przy okazji zabawy, zapamiętuje się dłużej. I na ogół prędzej czy później się przydają.

Hmm… wydawało mi się, że punktów adresowych mamy więcej, Zbyszek coś kiedyś pisał o 5 czy 6 mln. Czy uwzględniłeś w swoim zapytaniu również budynki, które mają przypisane adresy? Z tych budynków należałoby wyliczyć centroid i taki wynik połączyć z punktami adresowymi.

Pozdrawiam,
Grzesiek

W Overpass jest out center; które wylicza centroid za nas.

out center does not return the centroid, see this example: http://overpass-turbo.eu/s/pnT

Chwila czyli to robi centroid bounding boxa? Bo fakt że centroid może wypaść poza geometrią jest przewidywalny.

out center always returns the center of an object’s bounding box. Like in this case, this may well be outside the object itself…

Ale to w zupełności wystarczy dla celów Kazadama.

G.

Hece mogą być, gdy budynek ma kształt litery L i otacza inny budynek :wink:

Oui. Ale to nie chodzi o budynki, a o kody pocztowe. A tak naprawdę, o rozkład tych kodów. Jeden budynek w tą czy w tamtą nie powinien robić różnicy :). Powiem więcej, 100 budynków w tą czy w tamtą też nie powinno robić.

Inna rzecz, że zdarzają się błędy w kodach.

G.

Odpowiadając na Twoja poprzednią uwagę - bezdyskusyjnie masz rację - dobrze, że na Świecie istnieją rzeczy na tyle ciekawe, że zachęcają do ciągłej nauki.

Mam “tylko” 3,5 mln linii ponieważ zaczytałem tylko nody. Początkowo z braku znajomości formatu przestrzennych baz, teraz okazało się, że:

jest poważniejszą sprawą dla mojego zamierzenia i próbuję to zweryfikować. Np. błąd poprawnego formatu kodu pocztowego dla 15 tyś. punktów.
I teraz znowu moje pytanie, format muszę poprawić, jak już to zrobię, to dobrze by było poprawić to w osm - jakaś masowa edycja?
Jak to się robi? :frowning:

Wyeksportować do pliku mniej-więcej tekstowego, potraktować edytorem obsługującym wyrażenia regularne, zaimportować z powrotem?
Zajrzyj do tych paru postów.

Czyli tylko “twarde” nadpisywanie pliku?
Znam wartość id punktu (node), znam nazwę tagu, który chcę zmienić. Nie istnieje jakaś metoda, która coś takiego może zrobić?

No, ale rozumiem, że tych punktów masz dużo i wartości tagów są różne, a poprawić chcesz format kodu pocztowego bez zmieniania samych cyfr. To się aż prosi o załatwienie wyrażeniem regularnym.

Chyba, że z jakichś przyczyn wolisz zaprogramować bota…

@rmikke
Kody poprawione już mam (no może jeszcze trzeba oczyścić z niemieckich i innych sąsiadów :frowning: ), jak wspomniałem mam id punktów, myślałem, że jest jakaś metoda masowej edycji tylko dla konkretnego tagu. Bez zaciągania innych danych.

Jakbyś chciał temu jednemu tagowi nadać jedną wartość dla wszystkich punktów, to oczywiście jest - w JOSM zaznaczasz punkty, zmieniasz wartość tagu dla wszystkich punktów i po sprawie.

Natomiast tak, żeby każdy punkt po operacji miał w tym tagu inną wartość, to nie znam. Znaczy znam - wyeksportować, potraktować regexem, zaimportować.