I want to get data after some timestamp. I have downloaded the osm file of the area. I went through the osmosis documentation but could not find a way to filter it by time.

The result should be same as when we use the timestamp:sometime in JOSM.

  1. I could use JOSM but copy pasting in new layer removes old id, user info and gives new ids, also
  2. i could use the overpass but the area is large and overpass timed out many times
  3. i have also tried osmfilter but it can't filter by time

In JOSM, select things you don't need and then purge(same as delete but it removes the records as well)


So you refer to the timestamp that a osm object had been touched (or created)?

I would recommend to work offline and get an appropriate Planet extract. Sadly AFAIK there is no tool that works with OSM that way, as they use a slightly different method for replication (based on changesets and version numbering).
So you need to do it manually:

  • download .pbf extract that you need
  • cut it using osmosis till it fits your area and export it as .XML
  • create custom script that filters OSM XML basing on the timestamp="" XML attribute.

Due to the amount of data, you need to use a SAX XML parser instead of DOM. You might also consider, that to reconstruct a datasnapshot, nodes can be changed independently to ways and both of them interdependently to relations.

I don't know your exact usecase, but maybe the history planet is a better way to get your results. This depends on the size of your area and what you like to get. If you just like to view the date of your area, you might use OSMatrix and to monitor, you might have a look at this tools:

  • As you stated, the first two steps have been already done. Looks like i will have to write a custom script. Thank you. – neogeomat Nov 19 '13 at 3:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.