[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