[OSM-talk] How to save Overpass query results to a GeoJSON file with Python?
bryce at jasmer.com
Mon Mar 11 15:45:30 UTC 2019
I use the overpass library (I think it's the one you mentioned). The
resulting dictionary can be coerced to a string and written out and it
should be valid geojson.
api = overpass.API()
result = api.get('area[name="Granollers"][admin_level=8];(nwr["highway"](area);relation["highway"](area););')
with open('results.geojson', 'w') as fd:
On Mon, Mar 11, 2019 at 8:04 AM Carlos Cámara Menoyo via talk <
talk at openstreetmap.org> wrote:
> Thanks for your reply, Mateusz.
> I know (and use) Overpass turbo. However, what I want to do is to store a
> query and execute it in order to update results and store them as a file
> for further manipulation, so I can easily update results without the need
> to accessing to the interface, generate the query, run it and then download
> the results. I would like to achieve same functionallity but just by
> executing a file (which, additionally, may have more than one query).
> So far, I found overpy <https://github.com/DinoTools/python-overpy>,
> which seems to work fine in terms of querying but has two problems for me:
> 1. It seems to be unmaintained (last commit dates from April 2017)
> 2. I didn't succeed in storing the result into a geospatial file (or a
> geopandas data frame) (visit this jupyter lab with my current achievements:
> I also have just found Overpass API wrapper
> <https://github.com/mvexel/overpass-api-python-wrapper>, but I still have
> to explore it and understand how does it work and how can I tame it to my
> You propose a third way, which is using overpass and writing a script. It
> is not clear to me what do you mean with that, since I thought that that
> was precisely what I was attempting. Could you be more specific, please? Do
> you have other insight?
> Carlos Cámara-Menoyo
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Monday 11 March de 2019 a les 14:15, Mateusz Konieczny <
> matkoniecz at tutanota.com> wrote:
> Mar 11, 2019, 11:18 AM by talk at openstreetmap.org:
> Dear colleagues,
> I have just started to use Python and I would like to make a query to
> Overpass and store the results in a geospatial format (e.g. GeoJSON) so I
> can programatically update the data.
> As far as I know, there is a library called overpy that should be what I
> am looking for. After reading its documentation
> <https://python-overpy.readthedocs.io/en/latest/example.html> I came up
> with the following code:
> import overpy
> API = overpy.Overpass()
> # Fetch highways within Granollers' city.
> result = API.query("""
> // query part for: “highway=*”
> // print results
> out body;
> The thing is that I am not familiar at all with Python and I don't know
> how to store result as a GeoJSON file (Honestly, I don't even know what
> kind of thing result is -I tried with type(result) and I get overpy.Result
> as an output, which doesn't mean much to my poor knowledge). I have been
> reading overpy documentation but I haven't been able to figure it out.
> Can anyone give me a clue with this?
> Are you familiar with http://overpass-turbo.eu/
> https://wiki.openstreetmap.org/wiki/Overpass_turbo ?
> There are two parts here
> (1) using overpass itself
> (2) writing python script
> That are separate (you can call Overpass API from any program, not just
> "I have just started to use Python" - note that it means learning two
> separate languages at once:
> (1) Python itself
> (2) Overpass query syntax
> PS In case that Overpass is new for you my page may be of some use:
> talk mailing list
> talk at openstreetmap.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the talk