Filteren op id (van relatie) in Osmosis?

Hopelijk is dit ook de goede plaats om een vraagje over Osmosis te stellen, anders hoor ik graag waar dat beter kan. Er zijn hier vast wel mensen die met Osmosis gewerkt hebben toch? :slight_smile:

Ik heb een .osm bestand van Nederland (al een keer bewerkt met Osmosis zodat het alleen de relations (+ gebruikte ways en nodes) bevat die grenzen zijn met admin_level=10) en daaruit wil ik de grenzen van een gegeven woonplaats ophalen, en het liefst op basis van ID, voor de goede orde het ID van de relatie. ID is echter een attribuut van de XML-tag relation zelf en geen ‘echte’ tag (met key-value) zoals bijvoorbeeld name dat wél is. Eerst gebruikte ik voor het ophalen van woonplaatsgrenzen op basis van ID de Overpass API maar de benodigde informatie staat ook gewoon op mijn eigen PC (Geofrabrik-extract van Nederland) dus dan heb ik liever geen afhankelijkheid van Overpass.

Voor een plaatsnaam kan ik een tag filter gebruiken:


--tf accept-relations name=Plaatsnaam
--used-way
--used-node

dat werkt prima.

Voor ID heb ik dat ook geprobeerd maar (logischerwijs, ID staat niet in de tags) werkt dit niet:


--tf accept-relations id=123456
--used-way
--used-node

en krijg ik een leeg .osm bestand als resultaat.

De vraag is hoe ik in Osmosis toch op ID kan filteren. In de documentatie kan ik niet echt vinden hoe dat zou moeten: http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage . Het versienummer van Osmosis is 0.43.1-11

Op zich is het geen groot probleem want ik kan zelf wel code schrijven die op dat relatie-ID zoekt in het grote bestand maar als het met Osmosis kan benut ik die mogelijkheid liever.

Het filteren op ID is eigenlijk niet meer nodig maar heb wel gevonden hoe het in ieder geval kan: met het programma osmfilter.

osmfilter invoerbestand --keep= --keep-relations="@id=123456" > uitvoerbestand.osm

Moet zeggen dat osmfilter en osmconvert mij prima bevallen tot nu toe. Doordat deze met het o5m-formaat overweg kunnen gaat er een hoop tijd vanaf t.o.v. Osmosis. Of ik ken Osmosis niet goed genoeg, dat kan ook :wink: