AMOCatlas
Provides a unified system to access and process data from major Atlantic Meridional Overturning Circulation (AMOC) observing arrays.
https://github.com/amoccommunity/amocatlas
Category: Hydrosphere
Sub Category: Ocean and Hydrology Data Access
Keywords
amoc circulation moc oceanography oceansites python
Last synced: about 21 hours ago
JSON representation
Repository metadata
Basic repository for reading transport datasets for the Atlantic Meridional Overturning Circulation (AMOC).
- Host: GitHub
- URL: https://github.com/amoccommunity/amocatlas
- Owner: AMOCcommunity
- License: mit
- Created: 2025-04-11T11:46:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-08T11:00:12.000Z (13 days ago)
- Last Synced: 2026-05-16T02:48:21.079Z (5 days ago)
- Topics: amoc, circulation, moc, oceanography, oceansites, python
- Language: Jupyter Notebook
- Homepage: https://amoccommunity.github.io/AMOCatlas/
- Size: 178 MB
- Stars: 11
- Watchers: 5
- Forks: 9
- Open Issues: 5
- Releases: 10
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.cff
README.md
AMOCatlas
Standardized, modular loading of AMOC observing array datasets, with optional structured logging and metadata enrichment.
AMOCatlas provides a unified system to access and process data from major Atlantic Meridional Overturning Circulation (AMOC) observing arrays. The Atlantic Meridional Overturning Circulation is a critical component of Earth's climate system, transporting heat northward in the Atlantic Ocean. This project enables researchers to easily access, analyze, and visualize data from key monitoring stations.
This is a work in progress, all contributions welcome!
Table of Contents
- Features
- Supported Arrays
- Installation
- Quick Start
- Documentation
- Development
- Funding & Support
- Acknowledgements
- Contributing
Features
- π Unified Data Access: Single interface for multiple AMOC observing arrays
- π Automatic Data Download: Intelligent caching system prevents redundant downloads
- π Structured Logging: Per-dataset logging for reproducible workflows
- π Metadata Enrichment: Enhanced datasets with processing timestamps and source information
- π Visualization Tools: Built-in plotting functions with consistent styling
- π§ͺ Sample Datasets: Quick access to example data for testing and development
Available Data Sources
| Data Source | Location | Description | Read Command |
|---|---|---|---|
| RAPID | 26Β°N | MOC and overturning transports since 2004 | read.rapid() |
| MOCHA | 26Β°N | Meridional Heat transport since 2004 | read.mocha() |
| MOVE | 16Β°N | Meridional overturning since 2001 | read.move() |
| OSNAP | Subpolar North Atlantic | Meridional overturning since 2014 | read.osnap() |
| SAMBA | 34.5Β°S | South Atlantic MOC anomaly | read.samba() |
| 41Β°N Array | 41Β°N | Meridional overturning from Argo + altimetry | read.wh41n() |
| NOAC 47Β°N | 47Β°N | North Atlantic Ocean Current - MOC | read.noac47n() |
| DSO | Denmark Strait | Overflow transport | read.dso() |
| FBC | Faroe Bank Channel | Overflow transport monitoring | read.fbc() |
| Arctic Gateway | Arctic Ocean | Pan-Arctic gateway transports | read.arcticgateway() |
| FW2015 | 26Β°N | Frajka-Williams 2015 satellite-cable dataset at 26Β°N | read.fw2015() |
| CALAFAT2025 | Atlantic | Bayesian estimates of Atlantic meridional heat transport spanning latitudes | read.calafat2025() |
| ZHENG2024 | Atlantic | Observation-based Atlantic meridional freshwater transport spanning latitudes | read.zheng2024() |
For more detail on the AMOC and observing arrays, see:
- UCAR overview: https://climatedataguide.ucar.edu/climate-data/observations-atlantic-meridional-overturning-circulation-amoc
- AtlantOS/OceanSITES: https://www.ocean-ops.org/oceansites/tma/index.html
Installation
From PyPI (Recommended)
pip install AMOCatlas
Requirements: Python β₯3.9, with numpy, pandas, xarray, and matplotlib.
For Development
git clone https://github.com/AMOCcommunity/amocatlas.git
cd amocatlas
pip install -r requirements-dev.txt
pip install -e .
This installs amocatlas locally. The -e ensures that any edits you make in the files will be picked up by scripts that import functions from amocatlas.
Quick Start
Load Sample Data
from amocatlas import read
# Load RAPID sample dataset (new API - recommended)
ds = read.rapid()
print(ds)
# Or use the legacy API
from amocatlas import readers
ds = readers.load_sample_dataset("rapid")
Load Full Datasets
from amocatlas import read
# Load complete dataset (downloads and caches data) - new API
ds = read.osnap() # Single standardized dataset
all_files = read.osnap(all_files=True) # Get all files for array
# Or use the legacy API
from amocatlas import readers
datasets = readers.load_dataset("osnap") # Returns list of raw datasets
A *.log file will be written to logs/ by default.
Data will be cached in ~/.amocatlas_data/ unless you specify a custom location.
API Features (v0.2.0+)
AMOCatlas provides standardized, analysis-ready data by default with the new read API:
Key Benefits:
- π§Ή Standardized Data: Consistent variable names, metadata, and units
- π Easy to Use: Single function calls instead of complex workflows
- π Flexible: Get raw data when needed with
raw=True - π Smart Defaults: Automatically handles array-specific parameters
from amocatlas import read
# Standard workflow - recommended for most users
rapid_data = read.rapid() # Single standardized dataset
osnap_data = read.osnap() # Automatically uses latest version
arctic_data = read.arcticgateway() # Consistent across all arrays
# Advanced usage
all_rapid = read.rapid(all_files=True) # Get all files for an array
raw_data = read.rapid(raw=True) # Original format for special cases
Legacy API (still supported):
from amocatlas import readers
datasets = readers.load_dataset("rapid") # Returns raw data as before
Documentation
Documentation is available at https://amoccommunity.github.io/AMOCatlas.
Check out the demo notebook notebooks/demo.ipynb for example functionality.
Project Structure
amocatlas/
β
βββ read.py # π Modern API namespace (read.rapid(), read.osnap(), etc.)
βββ readers.py # Legacy orchestrator for loading datasets
βββ reader_utils.py # Shared utilities for all data source readers
β
βββ data_sources/ # π Organized data source readers
β βββ rapid26n.py # RAPID array (26Β°N)
β βββ move16n.py # MOVE array (16Β°N)
β βββ osnap55n.py # OSNAP array (Subpolar North Atlantic)
β βββ samba34s.py # SAMBA array (34.5Β°S)
β βββ mocha26n.py # MOCHA dataset (26Β°N)
β βββ wh41n.py # 41Β°N array
β βββ dso.py # DSO overflow
β βββ fbc.py # Faroe Bank Channel
β βββ fw2015.py # Frajka-Williams 2015 dataset
β βββ arcticgateway.py # Arctic Gateway transports
β βββ calafat2025.py # Calafat 2025 heat transport
β βββ zheng2024.py # Zheng 2024 freshwater transport
β βββ noac47n.py # NOAC 47Β°N monitoring
β
βββ metadata/ # π YAML metadata files for standardization
βββ utilities.py # Core utilities (downloads, parsing, validation)
βββ logger.py # Structured logging system
βββ standardise.py # Data standardization functions
βββ plotters.py # Visualization and plotting functions
βββ tools.py # Analysis and calculation functions
βββ writers.py # Data export functionality
β
βββ tests/ # Comprehensive unit tests
Development
Running Tests
All new functions should include tests. You can run tests locally and generate a coverage report with:
pytest --cov=amocatlas --cov-report term-missing tests/
Try to ensure that all the lines of your contribution are covered in the tests.
Generating Dataset Reports
AMOCatlas includes automated report generation for comprehensive dataset documentation:
# Generate reports for all supported arrays
python generate_report
# Generate report for a specific dataset
python generate_report --data_source rapid
# Generate reports with custom output directory
python generate_report --output_dir custom_reports/
Reports are generated as structured RST files in docs/source/reports/ with:
- Dataset visualization plots
- Variable mapping tables (original β standardized names)
- Comprehensive metadata documentation
- Temporal coverage analysis
- Statistical summaries
Code Quality
black amocatlas/ tests/ # Format code
ruff check amocatlas/ tests/ # Lint code
pre-commit run --all-files # Run all hooks
Working with Notebooks
You can run the example jupyter notebook by launching jupyterlab with jupyter-lab and navigating to the notebooks directory, or in VS Code or another python GUI.
Documentation
To build the documentation locally you need to install a few extra requirements:
- Install
makefor your computer, e.g. on ubuntu withsudo apt install make - Install the additional python requirements. Activate the environment you use for working with amocatlas, navigate to the top directory of this repo, then run
pip install -r requirements-dev.txt
Once you have the extras installed, you can build the docs locally by navigating to the docs/ directory and running make clean html. This command will create a directory called build/ which contains the html files of the documentation. Open the file docs/build/html/index.html in your browser, and you will see the docs with your changes applied.
Funding & Support
This project is supported by the Horizon Europe project EPOC - Explaining and Predicting the Ocean Conveyor (Grant Agreement No. 101081012).
Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union. Neither the European Union nor the granting authority can be held responsible for them.
Current Roadmap
- Improve test coverage for data sources with <40% coverage
- Add more comprehensive visualization function tests
- Expand plotting capabilities with additional array-specific visualizations
- Create summary table of variable names, standard_names, long_names and units across all datasets
- Create summary table of default units and formatting conventions used for standardization
- Document deviations from OceanSITES-1.5 standard and rationale for changes
- Enrich metadata with ORCID identifiers for contributors
- Enrich metadata with https://edmo.seadatanet.org identifiers for contributing institutions
- Create sample 3D plots for Arctic Gateway and Calafat2025 datasets
Acknowledgements
The observing arrays and datasets accessed through AMOCatlas are supported by:
-
RAPID data: Data from the RAPID-MOCHA-WBTS observing project are funded by the Natural Environment Research Council, the National Science Foundation (NSF), with support from NOAA. They are freely available from www.rapid.ac.uk/.
-
MOVE data: The MOVE project is made possible with funding from the NOAA Climate Program Office under award NA15OAR4320071 and carried out by principal investigators Uwe Send and Matthias Lankhorst. Initial funding came from the German Bundesministerium fuer Bildung und Forschung. MOVE data are made freely available through the international OceanSITES program.
-
OSNAP data: OSNAP data were collected and made freely available by the OSNAP (Overturning in the Subpolar North Atlantic Program) project and all the national programs that contribute to it (www.o-snap.org).
-
SAMBA data: SAMBA data were collected and made freely available by the SAMOC international project and contributing national programs
-
41Β°N data: These data were collected and made freely available by the International Argo Program and the national programs that contribute to it. The Argo Program is part of the Global Ocean Observing System
-
DSO data: Generated by Institution of Oceanography Hamburg and Marine and Freshwater Research Institute (Reykjavik, Iceland). Supported through funding from NACLIM (EU-FP7, grant 308299), RACE II, RACE-Synthese (German BMBF), Nordic WOCE, VEINS, MOEN, ASOF-W, NAClim, THOR, AtlantOS, and Blue Action
-
FBC data: Funding for the in situ Faroe Bank Channel measurements is from the Environmental Research Programme of the Nordic Council of Ministers (NMR) 1993β1998, from national Nordic research councils, from the Danish DANCEA programme, and from the European Framework Programs, lately under grant agreement no. GA212643 (THOR) and under grant agreement no. 308299 (NACLIM).
-
Arctic Gateway data: This work is funded by the European Union as part of the EPOC project (Explaining and Predicting the Ocean Conveyor; grant number: 101059547). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union. Neither the European Union nor the granting authority can be held responsible for them.
-
CALAFAT2025 data: This work has been carried out within the framework of the EPOC project funded by the European Union's Horizon Europe programme (grant agreement No 101059547), under call HORIZON-CL6-2021-CLIMATE01. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union. Neither the European Union nor the granting authority can be held responsible for them.
-
FW2015 data: Based on Frajka-Williams, E. (2015), "Estimating the Atlantic overturning at 26Β°N using satellite altimetry and cable measurements"
Dataset access and processing via AMOCatlas.
Contributing
All contributions are welcome! See CONTRIBUTING.md for more details.
PyGMT add-on
AMOCatlas includes support for creating publication-quality figures using PyGMT. The demo notebook notebooks/amoc_paperfigs.ipynb demonstrates how to generate figures similar to those in Frajka-Williams et al. (2019, 2023) papers, including filtered time series, component breakdowns, and multi-array comparisons.
Note: PyGMT can be challenging to install due to its dependency on GMT. See the PyGMT installation guide for platform-specific instructions. PyGMT is an optional dependency - all other AMOCatlas functionality works without it.
Example figures generated by the notebook:
Multi-array AMOC comparison:
Multi-array AMOC comparison (filtered):
Multi-array AMOC overlaid:
Historical AMOC (Bryden 2005):
For questions or support, please open an issue or check our documentation.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: Frajka-Williams given-names: Eleanor orcid: https://orcid.org/0000-0001-8773-7838 affiliation: University of Hamburg, BundesstraΓe 53, 20146 Hamburg, Germany - family-names: Schmitz given-names: Isabelle orcid: https://orcid.org/0009-0009-1369-1748 affiliation: University of Hamburg, BundesstraΓe 53, 20146 Hamburg, Germany title: amocatlas version: 0.3.0 date-released: 2026-02-10 url: https://github.com/AMOCcommunity/amocatlas
Owner metadata
- Name: AMOC community
- Login: AMOCcommunity
- Email:
- Kind: organization
- Description: A github community for analysis of the Atlantic meridional overturning circulation.
- Website: http://github.com/AMOCcommunity
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/191322482?v=4
- Repositories: 1
- Last ynced at: 2025-04-11T13:16:04.661Z
- Profile URL: https://github.com/AMOCcommunity
GitHub Events
Total
- Release event: 2
- Delete event: 15
- Pull request event: 23
- Issues event: 8
- Watch event: 3
- Issue comment event: 3
- Push event: 51
- Pull request review comment event: 56
- Pull request review event: 20
- Create event: 13
Last Year
- Release event: 2
- Delete event: 15
- Pull request event: 23
- Issues event: 8
- Watch event: 3
- Issue comment event: 3
- Push event: 51
- Pull request review comment event: 56
- Pull request review event: 20
- Create event: 13
Committers metadata
Last synced: 3 days ago
Total Commits: 114
Total Committers: 5
Avg Commits per committer: 22.8
Development Distribution Score (DDS): 0.219
Commits in past year: 49
Committers in past year: 5
Avg Commits per committer in past year: 9.8
Development Distribution Score (DDS) in past year: 0.388
| Name | Commits | |
|---|---|---|
| Eleanor Frajka-Williams | e****a@g****m | 89 |
| Isabelle Schmitz | i****h@g****e | 21 |
| Joel Bracamontes Ramirez | j****2@g****m | 2 |
| susiebrn | s****r@s****e | 1 |
| Shane Elipot | s****t@m****u | 1 |
Committer domains:
- miami.edu: 1
- studium.uni-hamburg.de: 1
- gmx.de: 1
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 7
Total pull requests: 13
Average time to close issues: about 2 months
Average time to close pull requests: about 3 hours
Total issue authors: 2
Total pull request authors: 2
Average comments per issue: 0.14
Average comments per pull request: 0.0
Merged pull request: 9
Bot issues: 0
Bot pull requests: 0
Past year issues: 7
Past year pull requests: 13
Past year average time to close issues: about 2 months
Past year average time to close pull requests: about 3 hours
Past year issue authors: 2
Past year pull request authors: 2
Past year average comments per issue: 0.14
Past year average comments per pull request: 0.0
Past year merged pull request: 9
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- eleanorfrajka (4)
- isaschmitz (3)
Top Pull Request Authors
- isaschmitz (7)
- eleanorfrajka (6)
Top Issue Labels
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 82 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 4
- Total maintainers: 1
pypi.org: amocatlas
Python project to read data from arrays measuring the Atlantic meridional overturning circulation
- Homepage:
- Documentation: https://amocatlas.readthedocs.io/
- Licenses: MIT License Copyright (c) 2024-2025 Eleanor Frajka-Williams, Isabelle Schmitz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Latest release: 0.3.0 (published 3 months ago)
- Last Synced: 2026-05-18T03:04:22.036Z (3 days ago)
- Versions: 4
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 82 Last month
-
Rankings:
- Dependent packages count: 8.52%
- Average: 28.34%
- Dependent repos count: 48.159%
- Maintainers (1)
Dependencies
- actions/checkout v4 composite
- mamba-org/setup-micromamba v2.0.1 composite
- actions/checkout v4 composite
- mamba-org/setup-micromamba v2.0.1 composite
- peaceiris/actions-gh-pages v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v4 composite
- actions/setup-python v2 composite
- cartopy * development
- cmocean * development
- gsw * development
- importlib_resources * development
- jupyterlab * development
- matplotlib * development
- myst-nb * development
- nbconvert * development
- nbsphinx * development
- netcdf4 * development
- numpy * development
- pandas * development
- pooch * development
- pypandoc * development
- pytest * development
- pytest-cov * development
- scipy * development
- sphinx * development
- sphinx-rtd-theme * development
- tqdm * development
- xarray * development
- cartopy *
- cmocean *
- gsw *
- matplotlib *
- netcdf4 *
- numpy *
- pandas *
- pooch *
- scipy *
- tqdm *
- xarray *
Score: 8.80086724247048