Nautical is a library for scraping and parsing real-time and historical oceanographic data from NOAA's National Data Buoy Center. It supports both Python and Go, and was built for research, data logging, and monitoring — but there are many more possibilities to discover.
Python (requires 3.9+):
pip install nauticalGo (requires 1.18+):
go get github.com/barbacbd/nauticalfrom nautical.io.buoy import create_buoy
# Fetch live data for a buoy station
buoy = create_buoy("44099")
if buoy and buoy.valid:
# Iterate over all available measurements
for name, value in buoy.data:
print(f"{name}: {value}")buoy, err := noaa.CreateBuoy("44099")
if err != nil {
log.Fatal(err)
}
fmt.Println(buoy)A buoy may contain any of the following measurements:
| Data | Abbreviation | Units |
|---|---|---|
| Wind Speed | wspd |
Knots |
| Gust | gst |
Knots |
| Wave Height | wvht |
Feet |
| Dominant Wave Period | dpd |
Seconds |
| Average Wave Period | apd |
Seconds |
| Pressure | pres |
PSI |
| Pressure Tendency | ptdy |
PSI |
| Air Temperature | atmp |
Fahrenheit |
| Water Temperature | wtmp |
Fahrenheit |
| Dew Point | dewp |
Fahrenheit |
| Salinity | sal |
PSU |
| Visibility | vis |
Nautical Miles |
| Tide | tide |
Feet |
| Swell Height | swh |
Feet |
| Swell Wave Period | swp |
Seconds |
| Wind Wave Height | wwh |
Feet |
| Wind Wave Period | wwp |
Seconds |
| Ocean Temperature | otmp |
Fahrenheit |
| Wind Speed 10m | wspd10m |
Knots |
| Wind Speed 20m | wspd20m |
Knots |
| Depth | depth |
Feet |
A source is a group of buoys organized by sponsor or owner. Use sources to discover available buoys by category.
from nautical.io.sources import get_buoy_sources
sources = get_buoy_sources()
for name, source in sources.items():
print(f"{name}: {len(source)} buoys")Save and reload buoy data locally. NOAA refreshes data roughly every 30 minutes — the cache lets you avoid redundant network calls.
from nautical.cache import dumps, load
# Save current data
dumps(data)
# Load it back later
cached = load()- Python API Reference — auto-generated from source
- Go API Reference — hosted on pkg.go.dev
- Python Tutorials
- Go Tutorials
- Error Handling Guide
make setup # install + activate pre-commit hooks
make test # run Python and Go tests
make lint # pylint
make format # auto-fix formatting (ruff + gofmt)
make docs # build Sphinx API docs locally
make clean # remove build artifactsSee CONTRIBUTING.md for guidelines and commit message conventions.
Copyright © 2022–2026, Brent Barbachem. Released under the MIT License.