Once I needed to get a clean city subset from raw OSM data (because it’s so convenient, compact and just beautiful). To my surprise, I did not find a ready-made recipe, which is why it took me a little sweat to complete this task.
In view of the foregoing, I consider it my duty to share my experience.
Suppose I want to get a Chisinau subset (why? ... it's warm there, my house is there, my mother is there)
Of course, we are not interested in Planet.osm
, but there is geofabrik
, but there the planet is cut into rather large shmatka - http://download.geofabrik.de/europe/moldova.html
So, the city border is in the raw data
It’s easy to get a landfill from the relationship, we do it either by hand or using any suitable utility, for example, this one
III ... now osmosis
comes into play
We have the osm of all Moldova and the limiting range of Chisinau, this is quite enough to get the city’s site from a raw XML (OSM) file:
osmosis --read-xml file="moldova.osm" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm"
Similarly, you can dig out data from the PBF (Protocolbuffer Binary Format) file:
osmosis --read-pbf file="moldova.osm.pbf" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm"
You can read a
little more about osmosis here
Well, the finished subset needs to be opened urgently in JOSM or imported into a personal project!