This Demo offers a simple exploratory interface over AIS Data.
For a chosen MMSI, it shows the vessel location over chosen dates. Location can be represented with latitude and longitude, or with H3. The H3 resolution can be adjusted to show more or less detail.
The Dashboard is created using Dash & Plotly for the map, Pandas for the frontend data processing, and Tinybird for the backend.
The dataset comes from NOAA, and is a few billion vessel observation samples from 2020.
- Clone this repository
- Create a Python virtual env
python -m venv .venv && source ./.venv/bin/activate
- Install the Python dependencies
pip install -r requirements.txt
- Open or create your Tinybird Workspace
- Open the Tinybird Auth Token page and copy the User Admin Token
- In your CLI, run
tb auth
in the repo directory and paste the Auth Token - Then run
tb push
to establish the backend processing structure and serve the data APIs - Use
noaa_uploader.sh
to append as many of the zipped CSV files as you need to Tinybird for sample data. Jan-May is about 1b rows. You will needjq
installed:sudo apt-get update && sudo apt-get install jq -y --no-install-recommends
orbrew install jq
for MacOS.
⚠️ NOTE: NOAA provide this data for free, so don't abuse their download server
- Run
app.py
to have a local Dash app to explore some of the shipping data. The default values should work
You could also stream in live AIS data following the same format.
Created by: @Chaffelson, @juliavallina, @sdairs, and @rbarbadillo