SeaSeer is a deep learning model that uses Neural ODEs to learn transport dynamics for spatiotemporal ocean/climate forecasting. It combines a convolutional velocity network with optional attention and emission (uncertainty) branches built on a ResNet backbone.
- Python 3.9+
- uv (package manager)
git clone git@github.com:James-h-1969/thesis.git
cd thesis
uv sync
pre-commit installcd seaseer
make traincd seaseer
make evalBefore downloading data, you need to set up credentials for the two data providers:
-
Copernicus Climate Data Store (ERA5): Register at https://cds.climate.copernicus.eu, then create
~/.cdsapircwith:url: https://cds.climate.copernicus.eu/api key: <your-api-key> -
Copernicus Marine (CMEMS): Register at https://data.marine.copernicus.eu/register, then log in once:
uv run copernicusmarine login
Then generate the data:
make generate_dataThis downloads data covering the Great Barrier Reef region (10°S–25°S, 142°E–154°E) from 1993–2018.
seaseer/
├── model.py # SeaSeer model definition
├── train.py # Training loop
├── eval.py # Evaluation script
└── README.md # SeaSeer-specific docs
helpers/
├── models/
│ ├── ResidualBlock.py # Residual block module
│ └── ResidualNetwork.py# ResNet backbone
└── scripts/
└── generate_data.py # Data download & generation
tests/
├── conftest.py # Shared test fixtures
└── test_models.py # Test suite
Makefile # Train/eval/data shortcuts
This is part of the work done by James Hocking for his thesis 'Seaseer: A Neural ODE for predicting Marine Heat Waves.