Skip to main content

A read-only interface to OpenStreetMap change APIs and files

Project description

osmdiff

build and test

A read-only interface to OpenStreetMap change APIs and files. See also pyosm which can do similar things.

Python 3.7+

Installing

pip install osmdiff

Usage

Reading

Retrieve the latest replication diff from the OSM API:

>>> from osmdiff import OSMChange
>>> o = OSMChange(frequency="minute")  # minute is the default frequency
>>> o.get_state()  # retrieve current sequence ID
>>> o.sequence_number
2704451
>>> o.retrieve()  # retrieve from API
>>> o
OSMChange (677 created, 204 modified, 14 deleted)

Read a replication diff from a file:

>>> from osmdiff import OSMChange
>>> o = OSMChange(file="test_osmchange.xml")
>>> o
OSMChange (831 created, 368 modified, 3552 deleted)

Retrieve the latest Augmented Diff from Overpass:

>>> from osmdiff import AugmentedDiff
>>> a = AugmentedDiff()
>>> a.get_state()
>>> a.sequence_number
2715051
>>> a.retrieve()
>>> a
AugmentedDiff (747 created, 374 modified, 55 deleted)

Read an augmented diff file:

>>> from osmdiff import AugmentedDiff
>>> a = AugmentedDiff(file="test_adiff.xml")
>>> a
AugmentedDiff (2329 created, 677 modified, 39 deleted)

Inspect contents

Get all the things that chris66 has created:

>>> [n for n in a.create if n.attribs["user"] == "chris66"]
[Node 5221564287, Node 5221564288, Node 5221564289, Node 5221564290, Node 5221564291, Node 5221564292, Node 5221564293, Node 5221564294, Node 5221564295, Node 5221564296, Node 5221564297, Node 5221564298, Node 5221564299, Node 5221564301, Node 5221564302, Node 5221564303, Node 5221564304, Way 539648222 (5 nodes), Way 539648223 (5 nodes), Way 539648323 (5 nodes)]

Get all residential ways that were modified:

>>> [n["new"] for n in a.modify if type(n["new"]) == Way and n["new"].tags.get("highway") == "residential"]
[Way 34561958 (3 nodes), Way 53744484 (6 nodes), Way 53744485 (6 nodes), Way 122650942 (3 nodes), Way 283221266 (4 nodes), Way 344272652 (5 nodes), Way 358243999 (13 nodes), Way 410489319 (5 nodes), Way 452218081 (10 nodes)]

Get all ways that were changed to residential from something else:

>>> [n["new"] for n in a.modify if type(n["new"]) == Way and n["new"].tags.get("highway") == "residential" and n["old"].tags["highway"] != "residential"]
[Way 410489319 (5 nodes), Way 452218081 (10 nodes)]

Inspect details:

>>> w = [n["new"] for n in a.modify if n["new"].attribs["id"] == "452218081"]
>>> w
[Way 452218081 (10 nodes)]
>>> w[0]
Way 452218081 (10 nodes)
>>> w[0].tags
{'highway': 'residential'}
>>> w[0].attribs
{'id': '452218081', 'version': '2', 'timestamp': '2017-11-10T13:52:01Z', 'changeset': '53667190', 'uid': '2352517', 'user': 'carths81'}
>>> w[0].attribs
{'id': '452218081', 'version': '2', 'timestamp': '2017-11-10T13:52:01Z', 'changeset': '53667190', 'uid': '2352517', 'user': 'carths81'}
>>> w[0].bounds
['12.8932677', '43.3575917', '12.8948117', '43.3585947']

Contributing

I welcome your contributions in code, documentation and suggestions for enhancements.

Code style: black

If you find osmdiff useful, or you use it in commercial software, please consider sponsoring this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osmdiff-0.4.3.tar.gz (706.9 kB view details)

Uploaded Source

Built Distribution

osmdiff-0.4.3-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file osmdiff-0.4.3.tar.gz.

File metadata

  • Download URL: osmdiff-0.4.3.tar.gz
  • Upload date:
  • Size: 706.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for osmdiff-0.4.3.tar.gz
Algorithm Hash digest
SHA256 7969e28d311c0bbb240fcbdde4db24073df23696e41a030a6dd1405c96a8f480
MD5 56d668433a5271e40cb73892d0ba4575
BLAKE2b-256 030cbf1113546746e6d60ae5f9af80bbda55697722eef8a0f6d7e236c9398554

See more details on using hashes here.

File details

Details for the file osmdiff-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: osmdiff-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for osmdiff-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fd0d84c9aa502c8564272ba4874d07f3d2f1db2390701e71733dacf60e28ac92
MD5 f0eeeb2c457821eeb83828346c842065
BLAKE2b-256 02f5c51cf05ee8593c7e25e68234e7cbeabfebf9d7707307fc638ac641f07b37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page