A while back I started exploring data from the Reverse Beacon Network. My initial goal had been to come up with an ML model to predict how many DX stations the local skimmer would receive – but there was a lot of exploration of the data as well. I captured that exploration in a series of notebooks, and set aside the project after a while.

One of the things I never accomplished was a satisfying display of where stations were being received from. I was aiming for something that would show changes over time, as well as location. Yesterday I was browsing through this Kaggle notebook for the BirdCLEF 2021 competition when I saw a cool map being generated from something called a shape file. A bit of browsing through the Internet found some great tutorials, and I think I have a better sense of what I can do.

Animation

First off, a choropleth map seems like a good first step – not exactly what I want, but with Plotly it seems like the initial animated view should be pretty simple. It can be exported as a gif, or even as an MP4.

This tutorial gets into the weeds with matplotlib to do the animation.

Maps

This tutorial also shows using matplotlib to draw the map, which is another way to get that done.

There’s jupyter-gmaps, a library for displaying Google Maps in a notebook.

For OpenStreetMap, there’s this tutorial from ArcGIS and IPyLeaflet. (God, I wish I’d known about that…) IPyLeaflet also has an amazing series of notebooks for experimenting. And this article has a lot of great demos.

Github supports rendering GeoJSON.

This article goes over timestamped GeoJSON files – brilliant! This article is probably closest to what I had in mind.

Libraries