[OSM-talk] How to save Overpass query results to a GeoJSON file with Python?

Carlos Cámara Menoyo ccamara at pm.me
Mon Mar 11 17:54:50 UTC 2019


Thank you for the clarification, Matheus and for the link, Dave (I am afraid that's not what I was looking for, as it still requires to download data on osm format).

I tried Bryce's code, which uses overpass api python wrapper (https://github.com/mvexel/overpass-api-python-wrapper), and it just works fine!

Unfortunately, I have to admit that I don't wholly understand it (I have just landed in Python's world). Would you be so kind to explain the following?:

- Can I add the query in more than a single line? (the provided one is quite simple and still it is long) If so, how? (from what I am seeing Python is very strict dealing with new lines)
- what's going on after the result? I understand there's where the magic of creating a gjson file happens, but can't understand much about it.

Regards and thank you again to everyone!

Carlos Cámara-Menoyo
https://carloscamara.es

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday 11 March de 2019 a les 18:34, Dave F via talk <talk at openstreetmap.org> wrote:

> Unsure, but would OSMtoGeojson be of use?
> https://github.com/tyrasd/osmtogeojson
>
> DaveF
>
> On 11/03/2019 10:18, Carlos Cámara Menoyo via talk wrote:
>
>> 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
>>
>> (
>>
>> """
>>     area[name="Granollers"][admin_level=8];
>>     // query part for: “highway=*”
>>     (way["highway"](area);
>>     relation["highway"](area);
>>     );
>>     // 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?
>>
>> Carlos Cámara-Menoyo
>> https://carloscamara.es
>>
>> _______________________________________________
>> talk mailing list
>> talk at openstreetmap.org
>>
>> https://lists.openstreetmap.org/listinfo/talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/talk/attachments/20190311/230b578e/attachment.html>


More information about the talk mailing list