How fast the ocean surface moves: 197 million hourly positions of 19,396 drifting buoys #135
jvdd
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
The NOAA Global Drifter Program has tracked 19,396 drifting buoys since 1987. Its hourly dataset holds 197 million positions and velocities, from October 1987 to October 2022. The map shows the mean speed of the buoys per 0.2° cell.
-> Brush the speed histogram and the map keeps only the buoy-hours in that speed range. Zoom the map and it re-bins to the new view.
s3://noaa-oar-hourly-gdp-pds/latest/gdp-v2.01.1.parquet, doi:10.25921/x46c-3620)pip install "flexviz>=0.1.0b5" pyarrow(andshapelyforinsight.py)etl.pyflattens it to 197 million rows (2.1 GB of Parquet) in about 2 minutes, with a peak of 14 GB of RAM.Steps
data/:curl -o data/gdp-v2.01.1.parquet https://noaa-oar-hourly-gdp-pds.s3.amazonaws.com/latest/gdp-v2.01.1.parquetpython etl.pywritesdata/drifters.parquet, with one row per buoy-hour.python dashboard.pyopens the live dashboard. It keeps the 197 million rows in memory (about 3.2 GB), so a brush answers in about a second.Speed
The hourly velocities include tides and inertial oscillations (circular motions that storms start). These can be fast where the mean current is slow. So the speed here is the mean velocity of each buoy over one UTC day. With the raw hourly speed, the map of fast water is noisy.
Buoys that lost their drogue (a sea anchor at 15 m depth) move a little with the wind. They are 60 % of the buoy-hours, but only 53 % of the hours faster than 1 m/s. The map with drogued buoys only shows the same currents, so all buoys are included.
What the data shows
insight.py).The video
The video is a headless-browser capture of this dashboard at 1800 × 790 bins (0.2°). The brush moves from 0 to 1 m/s in steps of 0.013 m/s. During the sweep, the color range starts at the brush value: at "speed > X", the colors run from X to max(1, X + 0.4) m/s. So the strong currents stay bright and single fast hours stay dark. The live dashboard keeps the fixed range of 0 to 1 m/s. The title, the filter text and the current names are overlays.
Code
etl.py: flatten the buoy file to one row per buoy-hourdashboard.py: the live dashboardinsight.py: the east-coast, west-coast and latitude numbersAll reactions