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

Martijn van Exel m at rtijn.org
Mon Mar 11 19:05:43 UTC 2019


Carlos — I am the maintainer of that library Bryce provided the sample code for. I am happy to answer any specific questions about it. However, I’d advise you take some time to study python first. Without a basic understanding of the language you are programming in, you are unlikely to be successful at solving problems using that language. There are many excellent, free python learning resources available.

Martijn

> On Mar 11, 2019, at 11:54 AM, Carlos Cámara Menoyo via talk <talk at openstreetmap.org> wrote:
> 
> 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 <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 <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 <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 <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 <https://carloscamara.es/>
>>> 
>>> 
>>> _______________________________________________
>>> talk mailing list
>>> talk at openstreetmap.org <mailto:talk at openstreetmap.org>
>>> https://lists.openstreetmap.org/listinfo/talk <https://lists.openstreetmap.org/listinfo/talk>
>>> 
> 
> _______________________________________________
> 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/b21caba3/attachment.html>


More information about the talk mailing list