OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#51 2017-05-30 10:07:43

gsapijaszko
Member
From: Lubnów / Wrocław
Registered: 2012-10-28
Posts: 178
Website

Re: Overpass - do wyciągania danych z OSM

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ą.

Właściwie osiągnąłem cel, mam plik (3,5 miliona linii)[...]

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

Offline

#52 2017-05-30 10:10:52

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

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

Offline

#53 2017-05-30 12:44:59

mmd
Member
Registered: 2010-11-06
Posts: 1,771

Re: Overpass - do wyciągania danych z OSM

RicoElectrico wrote:

centroid

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

Offline

#54 2017-05-30 19:36:28

Teiron
Member
Registered: 2015-04-09
Posts: 98

Re: Overpass - do wyciągania danych z OSM

mmd wrote:
RicoElectrico wrote:

centroid

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.

Offline

#55 2017-05-31 08:43:52

mmd
Member
Registered: 2010-11-06
Posts: 1,771

Re: Overpass - do wyciągania danych z OSM

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

Offline

#56 2017-05-31 10:42:31

gsapijaszko
Member
From: Lubnów / Wrocław
Registered: 2012-10-28
Posts: 178
Website

Re: Overpass - do wyciągania danych z OSM

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

G.

Offline

#57 2017-05-31 10:45:33

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

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

Offline

#58 2017-05-31 17:39:45

gsapijaszko
Member
From: Lubnów / Wrocław
Registered: 2012-10-28
Posts: 178
Website

Re: Overpass - do wyciągania danych z OSM

RicoElectrico wrote:

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 smile. 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.

Offline

#59 2017-05-31 19:10:44

kazadam
Member
Registered: 2013-10-16
Posts: 72
Website

Re: Overpass - do wyciągania danych z OSM

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: 

gsapijaszko wrote:

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

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? sad

Offline

#60 2017-06-02 07:26:26

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

kazadam wrote:

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?

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

Offline

#61 2017-06-03 23:01:03

kazadam
Member
Registered: 2013-10-16
Posts: 72
Website

Re: Overpass - do wyciągania danych z OSM

rmikke wrote:

Wyeksportować do pliku mniej-więcej tekstowego, potraktować edytorem obsługującym wyrażenia regularne, zaimportować z powrotem?

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ć?

Offline

#62 2017-06-04 18:17:27

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

kazadam wrote:
rmikke wrote:

Wyeksportować do pliku mniej-więcej tekstowego, potraktować edytorem obsługującym wyrażenia regularne, zaimportować z powrotem?

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...

Offline

#63 2017-06-04 20:15:16

kazadam
Member
Registered: 2013-10-16
Posts: 72
Website

Re: Overpass - do wyciągania danych z OSM

@rmikke
Kody poprawione już mam (no może jeszcze trzeba oczyścić z niemieckich i innych sąsiadów sad ), 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.

Offline

#64 2017-06-04 20:52:32

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

kazadam wrote:

@rmikke
Kody poprawione już mam (no może jeszcze trzeba oczyścić z niemieckich i innych sąsiadów sad ), 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ć.

Last edited by rmikke (2017-06-04 20:53:42)

Offline

#65 2017-06-04 21:07:51

kazadam
Member
Registered: 2013-10-16
Posts: 72
Website

Re: Overpass - do wyciągania danych z OSM

Ale chyba trzeba zaciągnąć ogromną ilość danych? Czy można "zaczytać"  tylko punkty z listy?

Offline

#66 2017-06-04 22:26:07

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

kazadam wrote:

Ale chyba trzeba zaciągnąć ogromną ilość danych? Czy można "zaczytać"  tylko punkty z listy?

A jak zrobiłeś listę? Bo jak Overpassem, to wyniki można wrzucić prosto do JOSM. W sensie, że będziesz mieć warstwę wyłącznie z danymi zwróconymi przez Overpassa. Jest do tego opcja w overpass-turbo (trochę poprawia zapytanie), jest też opcja w JOSM (Alt-Shift-Down i można wygenerować zapytanie tak, jak Overpass z wizarda, albo wkleić to poprawione zapytanie z Overpassa).

Last edited by rmikke (2017-06-04 22:30:25)

Offline

#67 2017-06-05 16:10:57

kazadam
Member
Registered: 2013-10-16
Posts: 72
Website

Re: Overpass - do wyciągania danych z OSM

rmikke wrote:

A jak zrobiłeś listę?

Listę zrobiłem przy pomocy Qgis. Jest to plik csv (id, lat, lon, kod).

Offline

#68 2017-06-05 17:49:14

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

Jakby co, teraz przypadkiem zobaczyłem, że kody pocztowe masz też w rejestrze PRG, który można pobrać bez opłat.
Edit: Choć widzę, że np. w Gdyni są trochę wybrakowane. Ale większość adresów w OSM i tak jest z importu.

Last edited by RicoElectrico (2017-06-05 17:55:22)

Offline

#69 2017-06-05 20:00:37

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

kazadam wrote:

Listę zrobiłem przy pomocy Qgis. Jest to plik csv (id, lat, lon, kod).

No to przy tej liczbie obiektów widzi mi się, że prościej, niż załadować to do swojej tabeli i puścić jakąś prostą pętlę, ciągnącą po API OSM wg id z tabeli, to nie będzie.

Last edited by rmikke (2017-06-05 20:01:11)

Offline

#70 2017-06-05 21:00:50

kazadam
Member
Registered: 2013-10-16
Posts: 72
Website

Re: Overpass - do wyciągania danych z OSM

RicoElectrico Byłem na tej stronie , ale "jakby diabeł ogonem przykrył". Dzięki, ściągam, sprawdzę.
rmikke Tak, spróbuję w taki sposób.

Offline

#71 2017-06-08 15:42:59

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

Chciałbym sobie wyciągnąć zbiór ulic i budynków z adresami przy tych ulicach. Czyli żeby addr:street budynku miał wartość równą name jakiejś ulicy w zbiorze.

Czytam sobie manual i wychodzi mi, że powinienem użyć foreach i ewaluatorów (czy jak to się nazywa po naszemu), ale nigdzie nie widzę ani porządnego opisu składni, ani dobrego przykładu, względnie nie umiem poskładać dostępnych informacji do kupy.

Rzucicie jakiś przykład? Albo (wolno mi się rozmarzyć, nie?) wręcz zapytanie wyciągające wszystkie highway=residential z bboxa i pasujące do nich budynki i/lub punkty adresowe?

Offline

#72 2017-06-10 16:08:33

Teiron
Member
Registered: 2015-04-09
Posts: 98

Re: Overpass - do wyciągania danych z OSM

Tutaj masz przykład kwerendy z użyciem around. Nie jestem pewien czy o to chodziło.

http://overpass-turbo.eu/s/pEy

Offline

#73 2017-06-12 07:37:09

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

Teiron wrote:

Tutaj masz przykład kwerendy z użyciem around. Nie jestem pewien czy o to chodziło.

http://overpass-turbo.eu/s/pEy

No nie o to.

Chcę w jakims bboksie wyciągnąć wszystkie highway=residential i wszystkie budynki i punkty adresowe, które mają addr:street takie same, jak nazwy wcześniej wyciągniętych ulic. Czyli muszę porównać addr:street budynków z nazwami wcześniej wyciągniętych ulic.

I widzę to jakoś tak, że wyciągam ulice do zbioru, następnie lecę po tym zbiorze pętlą foreach i dla każdej ulicy wyciągam budynki z addr:street=<nazwa_tej_ulicy> - i tu właśnie nie umiem znaleźć przykładu takiej pętli, ani zrobić jej sobie z dostępnych mi informacji.

Offline

#74 2017-06-13 22:59:34

Teiron
Member
Registered: 2015-04-09
Posts: 98

Re: Overpass - do wyciągania danych z OSM

Okej po wielu bojach z dokumentacją i wędrowaniu po ślepych uliczkach skleciłem coś takiego: http://overpass-turbo.eu/s/pJB

Last edited by Teiron (2017-06-13 23:00:32)

Offline

#75 2017-06-13 23:09:27

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

Nic a nic nie kumam. To ja już wolę PostGIS-a. tongue Trzy funkcje: ST_Intersects, ST_MakeEnvelope, ST_DWithin.

Last edited by RicoElectrico (2017-06-13 23:10:05)

Offline

Board footer

Powered by FluxBB