Osmosis OSM adatok szűrése - tesztek

Osmosis és az térképadatok beszerzése

  1. Az Osmosis telepítése
  2. Hungary.osm letöltése (van teljes Európa is.)
  3. Utána az Osmosis leírása alapján kitaláljuk, hogy milyen adatok kellenek.

Teszt 1: Szűrés Osmosissal egy nagy méretarányú országtérképhez

Az olvashatóság kedvéért több sorba tördelve:

osmosis --read-xml file="hungary-latest.osm"
--way-key-value keyValueList="highway.tertiary,highway.tertiary_link,highway.secondary,highway.secondary_link,highway.primary,highway.primary_link,highway.motorway,highway.motorway_link,highway.trunk,highway.trunk_link,landuse.residential"
--used-node
--tf reject-nodes highway=bus_stop
--tf reject-nodes public_transport=platform,stop_position
--tf reject-nodes railway=tram_stop,station
--write-xml file="ways2.osm"

Azaz: olvasandó fájl megadása, szűrő parancsok, írandó fájl megadása.

A szűrő parancsok alapja a "--way-key-value" (és néhány kapcsolódó társa) amivel az alapot adhatjuk meg a kimeneti fájlnak, azaz: minden egyéb eldobásra kerül - szóval ezzel óvatosan! 

A másodlagos szűrés a "--tag-filter" (--tf) "reject" és "accept" parancsok amivel a megmaradt adatokból eldobhatunk vagy megtarthatunk dolgokat. (A szűrők egymásra hatását és precedenciáját még nem tanulmányoztam.)

Ez a konkrét példa megtartja:

  • autópályák, autóutak
  • első, másod és harmadrendű utakat, OSM terminológiával értve!
  • települések körvonalait és "place" pontjait
  • bizonyos hulladékokat: a fentebbi szűrés megtartja azokat a pontokat, amelyek valamilyen kapcsolatok részei, ezért szűrtem ki a számtalan buszmegállót (azok a busz útvonal kapcsolat részei) és de pár egyéb dolog bent marad így is ugyanebből az okból.

A kimeneti fájl a fentebbi példából: ways2.zip   (c) OpenStreetMap és közreműködői, ODbL

Hibája, hogy a kapcsolatokkal megadott településhatárok hiányoznak. Egy pontosított változat NaTToMitól, köszi!

#!/bin/sh

bin/osmosis --read-pbf hungary-latest.osm.pbf --tf accept-ways highway=tertiary,tertiary_link,secondary,secondary_link,primary,primary_link,motorway,motorway_link,trunk,trunk_link --tf accept-relations highway=tertiary,tertiary_link,secondary,secondary_link,primary,primary_link,motorway,motorway_link,trunk,trunk_link --tf reject-nodes highway=bus_stop --tf reject-nodes public_transport=platform,stop_position --tf reject-nodes railway=tram_stop,station --used-node outPipe.0=roads --read-pbf hungary-latest.osm.pbf --tf accept-ways landuse=residential --tf accept-relations landuse=residential --used-node outPipe.0=places --merge inPipe.0=roads inPipe.1=places --write-xml ways-accept-relations.osm

Kimenete: ways-accept-relations.osm.zip

Az eredmény felhasználása

Mapertive-be betöltve készíthetünk nyomtatható térképet. A fentebbi fájlt futólag betöltöttem, eredménye:

További információk

További szűrési és egyéb hasznos OSM szkriptek, beleértve a fentebbi térkép tökéletesítését és egy új "barlang" nevű projektet amiben a renderelést a TileMill végzi:

OSM scriptek SVN

A barlang könyvtárban lévő README leírja a pontos lépéseket. 

Ha neked is vannak hasznos OSM-hez kapcsolódó szkriptjeid, írj NaTToMinak SVN elérésért.

Üzemelteti: wpsnet.com