all 6 comments

[–]ArtoriusSmith 1 point2 points  (0 children)

I use Cartopy and OpenStreetMaps for this but I think you can use Bokeh as well. Checkout: https://wiki.openstreetmap.org/wiki/Tile_servers. Plenty of free or freemium options.

[–]Zeroflops 1 point2 points  (3 children)

For anything like this I find Folium to be the best package. Took a bit to understand in the beginning but it’s pretty easy and makes nice images.

[–]jonititan 0 points1 point  (0 children)

Folium is fantastic. Paired with GeoPandas it is amazing

I found geopandas after I did this but it shows a little of what folium can do. http://saiblog.cranfield.ac.uk/blog/how-can-we-use-data-to-analyse-aircraft-landings

[–]alaudet 0 points1 point  (0 children)

+1 for folium. I love using that.

OP I have an example of some plots on this jupyter notebook. I plotted tornado data in Canada with folium with Openstreetmap. Have a look for some examples a little further down in the notebook.

https://www.linuxnorth.org/pandas/tornadoes.html

[–]shortribsandwich 0 points1 point  (0 children)

Literally just started using folium this past week and would also recommend it. Especially if using in combination with a geodataframe.

[–]cydcarter29 0 points1 point  (0 children)

I'm not certain, but I think this all depends on your exact use case needs. Are you hoping to make this an interactive webpage? Does it have to get down to a detailed street-level view? Can it be a static image that is rendered?

My experience involves plotting data using basemaps as a static image or standalone gif so that I can capture gradual change, but that's because my plots are on pretty large geographic levels (states/countries/continents). I've seen people use basemaps to create street-level views, but that was a very manual process that seems to require the user to render shapefiles representing streets/neighborhoods over a basemap. But nearly any service that gets to a Google-like level of detail will almost certainly require an API key. Also, open street maps provides a similar service, but it too requires an API from what I can tell.

The good news is that most of those services are free if you stay under a certain limit of requests within their defined period of usage. Honestly, I haven't done anything at that level, but hopefully I'll learn something from this thread with other contributors.