[osm-hu] viszonylag nagy mennyisegu szerkesztesi elozmeny history dump nelkul
Imre Samu
pella.samu at gmail.com
2015. Május. 28., Cs, 14:49:16 UTC
Szia Levente,
> Amire szeretnek, az egy bizonyos szamu felhasznalo (par 100) szerkesztesi
elozmenye mondjuk 2014 ota.
> Gyakorlatilag a modositott/torolt/letrehozott node-ok koordinatait
szeretnem csak megkapni.
*Amivel én elsőként próbálkoznék:*
- A változásoknak van napi összesítése is.
http://planet.openstreetmap.org/replication/day/
( http://wiki.openstreetmap.org/wiki/Planet.osm/diffs
kb. napi 40-80 Mb tömörítve, és ami még fontos, hogy full history és nem
delta. )
- ciklusban .. egyenként letölteném .. pl. .. 2014.01.01 - től [
475.osc.gz ... 978.osc.gz ]
- osc -> opl konverzió az osmium -al, ekkor 1 sorba kerül minden xml és
egyszerűen feldolgozható soronként..
itt van sok példa:
"6.4.3 OPL ("Object Per Line") Format"
*http://osmcode.org/libosmium/manual/libosmium-manual.html
<http://osmcode.org/libosmium/manual/libosmium-manual.html>*
- a szükséges felhasználókat kiszűrném pl. grep -el, awk-val vagy egy
egyszerű python script-el.
*Megjegyzések:*
-osmchange-nél: csak a node-oknál van koordináta .. és van ahol cimke is
van ..
- ( OSC-és) OPL-nél : törlést/létrehozást/módosítást a verzióból és a
láthatóságból lehet meghatározni:
v5 dD => 5.verzió és törölt => törölt
v1 dV => 1.verzió és látható => emiatt létrehozás.
v2 dV => 2.verzió és látható => emiatt módosítás .
-Ha a módosított way és a realationok koordinátája is kell (főleg olyankor
amikor csak a <tag(key/value)> változott, és a node nem) akkor egy
második körös feldolgozás is kellhet.
Ezt csak azért irom, mert sokaknak a poligonnal körbekeritett POI ( ami
igazából "area" - zárt "way" ) is node,
-Én néha találok olyat, hogy egy osm "uid"-nek változik az osm "user"
neve, emiatt én "uid" -re szűrnék mindenképpen.
-A feladatot jól lehet párhuzamosítani, akár több gépen, akár több terminál
ablakban futtatni ..
-*-
*kiegészítő megjegyzés az OSC-> OPL konverzióhoz*
pl. ebből az osc-ből
<modify>
<node id="173746803" version="5" timestamp="2015-05-28T03:04:05Z"
uid="115918" user="Timothy Smith" changeset="31519768" lat="31.5582113"
lon="-110.346617$
</modify>
<delete>
<node id="173746816" version="5" timestamp="2015-05-28T03:04:12Z"
uid="115918" user="Timothy Smith" changeset="31519768" lat="31.558153"
lon="-110.3480276$
</delete>
ez az OPL lesz ( ezt már szerintem bárki fel tudja dolgozni egy egyszerű
scripttel )
n173746803 v5 dV c31519768 t2015-05-28T03:04:05Z i115918 uTimothy%0020Smith
T x-110.3466176 y31.5582113
n173746816 v5 dD c31519768 t2015-05-28T03:04:12Z i115918 uTimothy%0020Smith
T x-110.3480276 y31.5581530
*-*- *
*mintakód 1 napi osc feldolgozásra *
# wget-es letöltés
wget http://planet.openstreetmap.org/replication/day/000/000/988.osc.gz
# kitömörítés
zcat 988.osc.gz > 988.osc
# OSC -> OPL konvertálás, de csak a "node"-okra ..
osmium cat 988.osc --object-type=node -f opl > 988_node.opl
# 3 OSM uid-re szűrés - grep-el : uid in (605010,50299,82783) ; az
elválasztó space-ek előtte és utánna - fontosak!
cat 988_node.opl | egrep '( i605010 | i50299 | i82783 )' >
988_node_filtered.opl
# koordínáták kivágása ..
cat 988_node_filtered.opl | cut -d' ' -f9-10
Feldolgozási alternatívaként még szóba jöhet sok minden más is :
- node-osmium ( Javascript library for libosmium) ,
- pyosmium ( Python bindings for libosmium )
- go ...
- ...
És akár még a PostgreSQL -es megoldás is működhet a full history dump-al ,
csak előtte jól meg kell szűrni az adatokat ..
Ha kell segítség jelezz ..
üdv,
Imre
2015. május 27. 23:06 Levente Juhász írta, <jlevente89 at gmail.com>:
> Sziasztok,
>
> Egy kis segitsegre lenne szuksegem. Amire szeretnek, az egy bizonyos szamu
> felhasznalo (par 100) szerkesztesi elozmenye mondjuk 2014 ota.
> Gyakorlatilag a modositott/torolt/letrehozott node-ok koordinatait
> szeretnem csak megkapni.
>
> Nem ferek hozza olyan hardware-hez, amivel hatekonyan dolgozhatnek a full
> history dump-pal (igazabol a 44GB pbf meret riaszt meg. Mennyi lehet az egy
> Postgre adatbazisba illesztve? 1TB?)
> Sajnos nem egy osszefuggo regiorol/orszagrol van szo, hanem az egesz
> vilagbol kellenenek a szerkesztesek, igy a history dump kivagasa sem opcio.
> Meg amugy is eleg nagy pazarlasnak tunik a full history mivel eleg keves
> felhasznalorol van szo.
>
> Tobb megoldas is eszembe jutott, de egyik sem tunik igazan jonak.
>
> 1) Overpass API: itt lehetne felhasznalora is keresni, plusz szurni a 2
> celdatumra, viszont csak azokat az objektumokat kapnam meg, amiket ezek a
> felhasznalok szerkesztettek utoljara, tehat kiesne egy csomo node.
> 2) changesets-latest.osm a planet.osm.org-rol jonak tunt elsore, viszont
> ez csak a Changeset XML-t tartalmazza gyakorlatilag, nekem meg Osmchange
> XML kellene a <create>, <modify> ... tagekkel.
>
> Egy masik megoldas, ami ezeken felul felmerult bennem, hogy az API v06-rol
> levadaszom a szukseges changeseteket, mivel az changeset id-kat mar
> ismerem. Az egyetlen problemam ezzel, hogy kb 150 ezer darabrol lenne szo.
> Hacsak nem muszaj, nem terhelnem ezzel az API-t (mivel ezen mennek a
> szerkesztesek is). Ez tuti mukodne, csak nem vagyok benne biztos, hogy jo
> otlet leterhelni az API-t ezzel.
>
> Esetleg osmiummal vegig lehetne menni a history fajlon es csak a szukseges
> felhasznalo szerkeszteseit kiemelni? Nem tudom, hogy ez mukodhet-e. Ha
> igen, akkor ez nem lenne eroforrasigenyes, csak lassu gondolom. Nem
> hasznaltam meg az osmiumot. Velemeny/tapasztalat errol?
>
> Lenyeg a lenyeg. Ha valakinek esetleg eszebe jutna valami okos, hatekony
> otlet, azt szivesen vennem.
>
> Udv,
> Levente
>
> --
> Magyar OSM Levelezőlista - openstreetmap-hungary at googlegroups.com
> leiratkozás: openstreetmap-hungary+unsubscribe at googlegroups.com
> ---
> Azért kapta ezt az üzenetet, mert feliratkozott a Google Csoportok
> „openstreetmap-hungary” csoportjára.
> Az erről a csoportról és az ahhoz kapcsolódó e-mailekről való
> leiratkozáshoz küldjön egy e-amailt a(z)
> openstreetmap-hungary+unsubscribe at googlegroups.com címre.
> További lehetőségekért látogasson el ide:
> https://groups.google.com/d/optout.
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.openstreetmap.org/pipermail/talk-hu/attachments/20150528/a1f5af55/attachment.htm>
További információk a(z) Talk-hu levelezőlistáról