diff --git a/README.md b/README.md index a2b67c38..beab8504 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,11 @@ This is a work in progress, all contributions welcome! | **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) diff --git a/amocatlas/data_sources/calafat2025.py b/amocatlas/data_sources/calafat2025.py index c82b7ce3..0042bd1f 100644 --- a/amocatlas/data_sources/calafat2025.py +++ b/amocatlas/data_sources/calafat2025.py @@ -98,7 +98,7 @@ def read_calafat2025( log.info("Starting to read CALAFAT2025 dataset") # Load YAML metadata with fallback - global_metadata, yaml_file_metadata = ReaderUtils.load_array_metadata_with_fallback( + _, yaml_file_metadata = ReaderUtils.load_array_metadata_with_fallback( DATASOURCE_ID, CALAFAT2025_METADATA ) @@ -260,6 +260,20 @@ def read_calafat2025( } ) + # Add coordinate for posterior distribution samples + if "posterior_samples" in ds.dims: + import numpy as np + + # Create coordinate from posterior_samples dimension + # Metadata will be applied from YAML during standardization + n_samples = ds.sizes["posterior_samples"] + sample_indices = np.arange(n_samples) + ds = ds.assign_coords(posterior_samples=sample_indices) + + log_info( + f"Added posterior_samples coordinate with {n_samples} samples" + ) + # Use ReaderUtils for consistent metadata attachment file_metadata = CALAFAT2025_FILE_METADATA.get(nc_file, {}) diff --git a/amocatlas/data_sources/wh41n.py b/amocatlas/data_sources/wh41n.py index 2adb219c..42c2f5d3 100644 --- a/amocatlas/data_sources/wh41n.py +++ b/amocatlas/data_sources/wh41n.py @@ -38,9 +38,7 @@ "project": "Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations", "weblink": "https://zenodo.org/records/18238115", "comment": "Dataset accessed and processed via http://github.com/AMOCcommunity/amocatlas", - "acknowledgement": "This study has been conducted using E.U. Copernicus Marine Service Information; https://doi.org/10.48670/moi-00149 and https://doi.org/10.48670/moi-00148. These data were collected and made freely available by the International Argo Program and the national programs that contribute to it. (https://argo.ucsd.edu, https://www.ocean-ops.org). The Argo Program is part of the Global Ocean Observing System.", "doi": "10.5281/zenodo.8170365", - "paper": "Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset access [2025-05-27] at 10.5281/zenodo.8170366.", } A41N_FILE_METADATA = { diff --git a/amocatlas/metadata/calafat2025.yml b/amocatlas/metadata/calafat2025.yml index 7eb1059c..853546f3 100644 --- a/amocatlas/metadata/calafat2025.yml +++ b/amocatlas/metadata/calafat2025.yml @@ -29,7 +29,13 @@ files: "latitude": LATITUDE "mht": MHT "htc": HTC + "posterior_samples": N_ENSEMBLE original_variable_metadata: + posterior_samples: + long_name: realization + description: "Posterior samples of the spatiotemporal Bayesian hierarchical model used to estimate MHT. Point estimates can be calculated as the mean of the samples, while uncertainty can be quantified as the standard deviation of the samples (1 sigma) or the 5–95% credible interval (i.e. the 5th–95th percentiles)." + units: 1 + standard_name: realization time: long_name: "Time" description: "Time in decimal years" diff --git a/amocatlas/metadata/move16n.yml b/amocatlas/metadata/move16n.yml index 1d08d63a..556012da 100644 --- a/amocatlas/metadata/move16n.yml +++ b/amocatlas/metadata/move16n.yml @@ -5,9 +5,8 @@ metadata: weblink: https://mooring.ucsd.edu/move/ comment: Dataset accessed and processed via http://github.com/AMOCcommunity/amocatlas acknowledgement: > - 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. - license: > - Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. + MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. + license_overwrite: CC-BY-4.0 # Based on feedback from Lankhorst on 2026-02-12 institution: Scripps Institution of Oceanography citation: > Send, U., Lankhorst, M., Kanzow, T.: Observation of decadal change in the Atlantic Meridional Overturning Circulation @@ -20,6 +19,7 @@ metadata: time_coverage_end: "2018-06-30" date_created: "2019-01-30T18:13:16Z" platform_type: Mooring array + references: https://dods.ndbc.noaa.gov/thredds/catalog/oceansites/DATA_GRIDDED/MOVE/catalog.html source: > Derived using the following files: OceanSITES file OS_MOVE_MULTISITE_GRIDDED_TS.nc, created 2019-01-30T18:11:12Z diff --git a/amocatlas/metadata/wh41n.yml b/amocatlas/metadata/wh41n.yml index ac553cb0..dfbff18f 100644 --- a/amocatlas/metadata/wh41n.yml +++ b/amocatlas/metadata/wh41n.yml @@ -5,7 +5,7 @@ metadata: weblink: https://doi.org/10.5281/zenodo.8170365 comment: Dataset accessed and processed via http://github.com/AMOCcommunity/amocatlas citation: > - Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170366. + Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170365. license: CC-BY-4.0 # Based on feedback from Josh Willis on 2026-02-10 Conventions: CF-1.8, ACDD-1.3 platform_type: Argo floats @@ -23,7 +23,7 @@ files: "Ekman (Sv)": TRANS_EKMAN "Geos (Sv)": TRANS_GEO "MOC (Sv)": MOC - "MHT (PW)": MHT + "MOC (PW)": MHT original_variable_metadata: "Ekman (Sv)": long_name: "Ekman" @@ -40,7 +40,7 @@ files: description: "Meridional Overturning Volume Transport" units: Sverdrup standard_name: ocean_meridional_overturning_transport - "MHT (PW)": + "MOC (PW)": long_name: "MHT" description: "Meridional Overturning Heat Transport" units: PW diff --git a/amocatlas/report.py b/amocatlas/report.py index 772acf10..6bb6d7f4 100644 --- a/amocatlas/report.py +++ b/amocatlas/report.py @@ -737,7 +737,7 @@ def create_varcoord_table( # Create display description: prioritize description, then add long_name in bold if description: - if long_name and long_name != item_name and long_name != description: + if long_name and long_name != description: display_description = f"**{long_name}**: {description}" else: display_description = description diff --git a/docs/source/_static/reports/rapid_timeseries.png b/docs/source/_static/reports/rapid_timeseries.png new file mode 100644 index 00000000..23fddaad Binary files /dev/null and b/docs/source/_static/reports/rapid_timeseries.png differ diff --git a/docs/source/reports/calafat2025_report.rst b/docs/source/reports/calafat2025_report.rst index 9aa5d888..e28285e6 100644 --- a/docs/source/reports/calafat2025_report.rst +++ b/docs/source/reports/calafat2025_report.rst @@ -30,8 +30,8 @@ Dataset Statistics ^^^^^^^^^^^^^^^^^^ - **Total Variables**: 2 -- **Total Coordinates**: 3 -- **Dataset Size**: 47.03 MB +- **Total Coordinates**: 4 +- **Dataset Size**: 47.06 MB Coordinate Information ^^^^^^^^^^^^^^^^^^^^^^ @@ -63,6 +63,13 @@ The following table shows information about the dataset coordinates in the stand - -40.00 - 67.50 - 0.0% + * - *posterior_samples* → **N_ENSEMBLE** + - **realization**: Posterior samples of the spatiotemporal Bayesian hierarchical model used to estimate MHT. Point estimates can be calculated as the mean of the samples, while uncertainty can be quantified as the standard deviation of the samples (1 sigma) or the 5–95% credible interval (i.e. the 5th–95th percentiles). + - 1 + - (4000,) + - 0.00 + - 3999.00 + - 0.0% * - **TIME** - Time - datetime64[ns] @@ -97,7 +104,7 @@ along with key statistics for each variable. - 0.60 - 1.5% * - *mht* → **MHT** - - These estimates have been computed by setting the transport at 65N equal to zero and then integrating the heat transport convergences southward. A time-mean value of 0.506 PW has been added to the transport at 60N based on estimates from the OSNAP project + - **MHT**: These estimates have been computed by setting the transport at 65N equal to zero and then integrating the heat transport convergences southward. A time-mean value of 0.506 PW has been added to the transport at 60N based on estimates from the OSNAP project - PW - (12, 67, 4000) - -1.04 @@ -141,9 +148,9 @@ The following metadata provides comprehensive information about this dataset: - **Processing Software**: http://github.com/AMOCcommunity/amocatlas - **Processing Version**: v0.3.0 - **Processing Datasource\***: calafat2025 -- **Variable Mapping\***: {'time': 'TIME', 'latitude': 'LATITUDE', 'mht': 'MHT', 'htc': 'HTC'} -- **Original Variable Metadata\***: [Complex metadata structure - 4 items] -- **Applied Variable Mapping**: {'mht': 'MHT', 'htc': 'HTC', 'TIME': 'TIME', 'LATITUDE': 'LATITUDE', 'MHT': 'MHT', 'HTC': 'HTC'} +- **Variable Mapping\***: {'time': 'TIME', 'latitude': 'LATITUDE', 'mht': 'MHT', 'htc': 'HTC', 'posterior_samples': 'N_ENSEMBLE'} +- **Original Variable Metadata\***: [Complex metadata structure - 5 items] +- **Applied Variable Mapping**: {'mht': 'MHT', 'htc': 'HTC', 'posterior_samples': 'N_ENSEMBLE', 'TIME': 'TIME', 'LATITUDE': 'LATITUDE', 'MHT': 'MHT', 'HTC': 'HTC'} - **Creation Data**: 31-Jul-2025 15:14:49 - **Contact**: francisco.mcalafat@uib.eu - **Comment On Temporal Resolution**: Estimates of heat transport are quarterly values (i.e., 3-month means: Jan-Feb-Mar, Apr-May-Jun, ...) diff --git a/docs/source/reports/dso_report.rst b/docs/source/reports/dso_report.rst index ae42574d..949d380b 100644 --- a/docs/source/reports/dso_report.rst +++ b/docs/source/reports/dso_report.rst @@ -167,7 +167,7 @@ The following metadata provides comprehensive information about this dataset: - **Source Url\***: https://www.cen.uni-hamburg.de/en/icdc/data/ocean/denmark-strait-overflow.html - **Date Created**: 2021-12-06T19:37:07Z - **Date Modified**: 2026-02-01T00:00:00Z -- **History**: 2021-12-06T19:37:07ZOceanSITES file with provisional transport data sent to DAC by Ursula Schauer; 2026-02-11T10:39:15Z AMOCatlas: Corrupted DEPTH value in DSO_transport_hourly_1996_2021.nc marked as NaN (was 9.97e+36) +- **History**: 2021-12-06T19:37:07ZOceanSITES file with provisional transport data sent to DAC by Ursula Schauer; 2026-02-12T05:58:20Z AMOCatlas: Corrupted DEPTH value in DSO_transport_hourly_1996_2021.nc marked as NaN (was 9.97e+36) - **Processing Software**: http://github.com/AMOCcommunity/amocatlas - **Processing Version**: v0.3.0 - **Processing Datasource\***: dso diff --git a/docs/source/reports/mocha_report.rst b/docs/source/reports/mocha_report.rst index 7dcab01d..17c0edaf 100644 --- a/docs/source/reports/mocha_report.rst +++ b/docs/source/reports/mocha_report.rst @@ -151,7 +151,7 @@ along with key statistics for each variable. - 0.72 - 0.0% * - *maxmoc* → **MOC** - - time-varying maximum value of MOC streamfunction + - **MOC**: time-varying maximum value of MOC streamfunction - Sverdrup - (12202,) - -5.07 diff --git a/docs/source/reports/move_report.rst b/docs/source/reports/move_report.rst index 30472977..6ddb10a4 100644 --- a/docs/source/reports/move_report.rst +++ b/docs/source/reports/move_report.rst @@ -16,7 +16,7 @@ Dataset Overview - **DOI**: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 - **Source File**: OS_MOVE_20000206-20221014_DPR_VOLUMETRANSPORT.nc - **Data Product**: MOVE transport time series (2000-2022) -- **License**: Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. +- **License**: CC-BY-4.0 - **Date Created**: 2025-04-23T01:35:26Z - **Time Coverage**: 2000-02-06 to 2022-10-14 - **Record Length**: 4,144 observations (22.7 years) @@ -28,7 +28,7 @@ Dataset Overview **Acknowledgement:** - 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. + MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. Dataset Visualization ^^^^^^^^^^^^^^^^^^^^^ @@ -179,10 +179,10 @@ The following metadata provides comprehensive information about this dataset: - **Program\***: MOVE - **Project**: Meridional Overturning Variability Experiment (MOVE) - **Source**: Derived using the following files: OceanSITES file OS_MOVE_20000101-20221018_GRD_TEMPERATURE-SALINITY-AT-SITES-MOVE1-MOVE3.nc, created 20230112T194648Z OceanSITES file OS_MOVE_20000101-20221021_GRD_CURRENTS-AT-SITES-MOVE3-MOVE4.nc, created 20230112T233946Z -- **License**: Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. -- **Acknowledgment**: 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. +- **License**: CC-BY-4.0 +- **Acknowledgment**: MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. - **Doi\***: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 -- **References**: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 +- **References**: https://dods.ndbc.noaa.gov/thredds/catalog/oceansites/DATA_GRIDDED/MOVE/catalog.html - **Weblink\***: https://mooring.ucsd.edu/move/ - **Platform**: mooring - **Platform Vocabulary**: https://vocab.nerc.ac.uk/collection/L06/ @@ -225,7 +225,7 @@ Dataset Overview - **DOI**: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 - **Source File**: OS_MOVE_20000101-20221021_GRD_CURRENTS-AT-SITES-MOVE3-MOVE4.nc - **Data Product**: MOVE gridded currents at sites MOVE3-MOVE4 -- **License**: Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. +- **License**: CC-BY-4.0 - **Date Created**: 2019-01-30T18:13:16Z - **Time Coverage**: 2000-01-01 to 2022-10-21 - **Record Length**: 8,330 observations (22.8 years) @@ -237,7 +237,7 @@ Dataset Overview **Acknowledgement:** - 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. + MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. Dataset Visualization ^^^^^^^^^^^^^^^^^^^^^ @@ -376,10 +376,10 @@ The following metadata provides comprehensive information about this dataset: - **Source**: Uses OceanSITES file: id=OS_MOVE4_01_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_01_D_CURRENTMETERPART01 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_01_D_CURRENTMETERPART02 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_02_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_02_D_CURRENTMETERPART01 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_02_D_CURRENTMETERPART02 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_03_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_03_D_CURRENTMETERPART01 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_03_D_CURRENTMETERPART02 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_04_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_04_D_CURRENTMETERPART01 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_04_D_CURRENTMETERPART02 date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_05_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_05_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_06_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_06_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_07_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE3_07_D_CURRENTMETER date_update=2011-11-29T01:12:35Z Uses OceanSITES file: id=OS_MOVE4_08_D_CURRENTMETER date_update=2011-11-18T21:29:04Z Uses OceanSITES file: id=OS_MOVE3_08_D_CURRENTMETER date_update=2011-11-18T19:51:53Z Uses OceanSITES file: id=OS_MOVE4_09_D_CURRENTMETER date_update=2011-11-18T19:28:46Z Uses OceanSITES file: id=OS_MOVE3_09_D_CURRENTMETER date_update=2011-11-18T19:16:20Z Uses OceanSITES file: id=OS_MOVE4_10_D_CURRENTMETER date_update=2013-05-03T17:38:24Z Uses OceanSITES file: id=OS_MOVE3_10_D_CURRENTMETER date_update=2013-05-03T17:35:33Z Uses OceanSITES file: id=OS_MOVE4_11_D_CURRENTMETER date_created=2016-03-11T18:39:32Z Uses OceanSITES file: id=OS_MOVE3_11_D_CURRENTMETER date_created=2016-03-11T18:29:29Z Uses OceanSITES file: id=OS_MOVE4_12_R_CURRENTMETER date_created=2018-06-20T01:58:35Z Uses OceanSITES file: id=OS_MOVE3_12_D_CURRENTMETER date_created=2018-06-20T01:22:09Z Uses OceanSITES file: id=OS_MOVE4_13_D_CURRENTMETER date_created=2021-01-26T22:12:45Z Uses OceanSITES file: id=OS_MOVE3_13_D_CURRENTMETER date_created=2021-01-26T21:57:22Z Uses OceanSITES file: id=OS_MOVE4_14_D_CURRENTMETER date_created=2023-01-12T23:23:40Z Uses OceanSITES file: id=OS_MOVE3_14_D_CURRENTMETER date_created=2023-01-12T20:16:58Z - **Id**: OS_MOVE_20000101-20221021_GRD_CURRENTS-AT-SITES-MOVE3-MOVE4 - **Naming Authority**: OceanSITES -- **License**: Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. -- **Acknowledgment**: 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. +- **License**: CC-BY-4.0 +- **Acknowledgment**: MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. - **Doi\***: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 -- **References**: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 +- **References**: https://dods.ndbc.noaa.gov/thredds/catalog/oceansites/DATA_GRIDDED/MOVE/catalog.html - **Weblink\***: https://mooring.ucsd.edu/move/ - **Platform**: mooring - **Platform Vocabulary**: https://vocab.nerc.ac.uk/collection/L06/ @@ -435,7 +435,7 @@ Dataset Overview - **DOI**: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 - **Source File**: OS_MOVE_20000101-20221018_GRD_TEMPERATURE-SALINITY-AT-SITES-MOVE1-MOVE3.nc - **Data Product**: MOVE gridded temperature and salinity at sites MOVE1-MOVE3 -- **License**: Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. +- **License**: CC-BY-4.0 - **Date Created**: 2019-01-30T18:13:16Z - **Time Coverage**: 2000-01-01 to 2022-10-18 - **Record Length**: 4,164 observations (22.8 years) @@ -447,7 +447,7 @@ Dataset Overview **Acknowledgement:** - 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. + MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. Dataset Visualization ^^^^^^^^^^^^^^^^^^^^^ @@ -586,10 +586,10 @@ The following metadata provides comprehensive information about this dataset: - **Source**: Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART01 date_created=2022-03-29T21:58:02Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART02 date_created=2022-03-29T21:58:26Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART03 date_created=2022-03-29T21:58:49Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART04 date_created=2022-03-29T22:00:48Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART05 date_created=2022-03-29T22:01:25Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART06 date_created=2022-03-29T22:01:50Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART07 date_created=2022-03-29T22:04:00Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART08 date_created=2022-03-29T22:04:29Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART09 date_created=2022-03-29T22:04:57Z Uses OceanSITES file: id=OS_MOVE1_01_D_MICROCAT-PART10 date_created=2022-03-29T22:05:43Z Uses OceanSITES file: id=OS_MOVE1_02_D_MICROCAT date_created=2022-03-24T21:57:34Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART01 date_created=2022-03-24T03:30:34Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART02 date_created=2022-03-24T03:30:48Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART03 date_created=2022-03-24T03:31:03Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART04 date_created=2022-03-24T03:31:17Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART05 date_created=2022-03-24T03:31:31Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART06 date_created=2022-03-24T03:31:45Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART07 date_created=2022-03-24T03:32:00Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART08 date_created=2022-03-24T03:32:13Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART09 date_created=2022-03-24T03:32:27Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART10 date_created=2022-03-24T03:32:42Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART11 date_created=2022-03-24T03:32:56Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART12 date_created=2022-03-24T03:33:11Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART13 date_created=2022-03-24T03:33:26Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART14 date_created=2022-03-24T03:33:40Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART15 date_created=2022-03-24T03:33:55Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART16 date_created=2022-03-24T03:34:10Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART17 date_created=2022-03-24T03:34:24Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART18 date_created=2022-03-24T03:34:41Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART19 date_created=2022-03-24T03:34:57Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART20 date_created=2022-03-24T03:35:13Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART21 date_created=2022-03-24T03:35:30Z Uses OceanSITES file: id=OS_MOVE1_03_D_MICROCAT-PART22 date_created=2022-03-24T03:35:51Z Uses OceanSITES file: id=OS_MOVE1_04_D_MICROCAT date_created=2022-03-21T23:43:30Z Uses OceanSITES file: id=OS_MOVE1_05_D_MICROCAT date_created=2022-04-15T19:19:32Z Uses OceanSITES file: id=OS_MOVE1_06_D_MICROCAT date_created=2022-04-15T19:35:03Z Uses OceanSITES file: id=OS_MOVE1_07_D_MICROCAT date_created=2022-02-22T20:40:16Z Uses OceanSITES file: id=OS_MOVE1_08_MICROCAT date_created=2022-02-17T01:35:17Z Uses OceanSITES file: id=OS_MOVE1_09_D_MICROCAT date_created=2022-02-14T23:23:01Z Uses OceanSITES file: id=OS_MOVE1_10_D_MICROCAT date_created=2022-02-11T17:56:47Z Uses OceanSITES file: id=OS_MOVE1_11_D_MICROCAT date_created=2022-02-11T19:00:48Z Uses OceanSITES file: id=OS_MOVE1_12_D_MICROCAT date_created=2022-01-31T23:06:51Z Uses OceanSITES file: id=OS_MOVE1_13_D_MICROCAT date_created=2022-01-31T22:28:43Z Uses OceanSITES file: id=OS_MOVE1_14_D_MICROCAT date_created=2023-01-12T00:17:54Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART01 date_created=2022-03-30T20:11:00Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART02 date_created=2022-03-30T20:11:27Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART03 date_created=2022-03-30T20:12:10Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART04 date_created=2022-03-30T20:13:00Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART05 date_created=2022-03-30T20:13:32Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART06 date_created=2022-03-30T20:14:14Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART07 date_created=2022-03-30T20:14:49Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART08 date_created=2022-03-30T20:15:31Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART09 date_created=2022-03-30T20:16:04Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART10 date_created=2022-03-30T20:16:37Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART11 date_created=2022-03-30T20:17:04Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART12 date_created=2022-03-30T20:17:30Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART13 date_created=2022-03-30T20:17:59Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART14 date_created=2022-03-30T20:18:23Z Uses OceanSITES file: id=OS_MOVE3_01_D_MICROCAT-PART15 date_created=2022-03-30T20:19:01Z Uses OceanSITES file: id=OS_MOVE3_02_D_MICROCAT date_created=2022-03-28T23:17:35Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART01 date_created=2022-03-22T22:15:56Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART02 date_created=2022-03-22T22:16:31Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART03 date_created=2022-03-22T22:17:17Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART04 date_created=2022-03-22T22:17:37Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART05 date_created=2022-03-22T22:17:59Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART06 date_created=2022-03-22T22:18:34Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART07 date_created=2022-03-22T22:18:58Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART08 date_created=2022-03-22T22:19:24Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART09 date_created=2022-03-22T22:19:55Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART10 date_created=2022-03-22T22:20:45Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART11 date_created=2022-03-22T22:21:48Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART12 date_created=2022-03-22T22:22:41Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART13 date_created=2022-03-22T22:23:39Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART14 date_created=2022-03-22T22:24:34Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART15 date_created=2022-03-22T22:25:17Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART16 date_created=2022-03-22T22:26:09Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART17 date_created=2022-03-22T22:26:57Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART18 date_created=2022-03-22T22:28:10Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART19 date_created=2022-03-22T22:29:03Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART20 date_created=2022-03-22T22:29:51Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART21 date_created=2022-03-22T22:30:56Z Uses OceanSITES file: id=OS_MOVE3_03_D_MICROCAT-PART22 date_created=2022-03-22T22:32:06Z Uses OceanSITES file: id=OS_MOVE3_04_D_MICROCAT date_created=2022-03-22T17:49:57Z Uses OceanSITES file: id=OS_MOVE3_05_D_MICROCAT-PART01 date_created=2022-04-15T19:50:20Z Uses OceanSITES file: id=OS_MOVE3_05_D_MICROCAT-PART02 date_created=2022-04-15T19:52:19Z Uses OceanSITES file: id=OS_MOVE3_06_D_MICROCAT date_created=2022-04-15T20:09:17Z Uses OceanSITES file: id=OS_MOVE3_07_D_MICROCAT date_created=2022-02-23T01:18:40Z Uses OceanSITES file: id=OS_MOVE3_08_D_MICROCAT date_created=2022-02-17T19:44:16Z Uses OceanSITES file: id=OS_MOVE3_09_D_MICROCAT date_created=2022-02-15T00:53:00Z Uses OceanSITES file: id=OS_MOVE3_10_D_MICROCAT date_created=2022-02-12T00:37:36Z Uses OceanSITES file: id=OS_MOVE3_11_D_MICROCAT date_created=2022-02-11T21:06:53Z Uses OceanSITES file: id=OS_MOVE3_12_D_MICROCAT date_created=2022-02-11T21:44:24Z Uses OceanSITES file: id=OS_MOVE3_13_D_MICROCAT date_created=2022-02-11T23:15:48Z Uses OceanSITES file: id=OS_MOVE3_14_D_MICROCAT date_created=2023-01-12T19:28:17Z - **Id**: OS_MOVE_20000101-20221018_GRD_TEMPERATURE-SALINITY-AT-SITES-MOVE1-MOVE3 - **Naming Authority**: OceanSITES -- **License**: Data freely available. User assumes all risk for use of data. Please give due credit to the authors, project, and funding sources when using these data, e.g. by including the 'citation' text provided here. -- **Acknowledgment**: 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. +- **License**: CC-BY-4.0 +- **Acknowledgment**: MOVE was supported by the U.S. NOAA's Global Ocean Monitoring and Observing (GOMO) program under award NA20OAR4320278 and earlier awards. Initially, MOVE was funded by the German BMBF. - **Doi\***: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 -- **References**: http://dx.doi.org/10.1016/j.dsr.2005.12.007 http://dx.doi.org/10.1029/2011GL049801 +- **References**: https://dods.ndbc.noaa.gov/thredds/catalog/oceansites/DATA_GRIDDED/MOVE/catalog.html - **Weblink\***: https://mooring.ucsd.edu/move/ - **Platform**: mooring - **Platform Vocabulary**: https://vocab.nerc.ac.uk/collection/L06/ diff --git a/docs/source/reports/wh41n_report.rst b/docs/source/reports/wh41n_report.rst index ece8c2b3..417e1b3e 100644 --- a/docs/source/reports/wh41n_report.rst +++ b/docs/source/reports/wh41n_report.rst @@ -22,7 +22,7 @@ Dataset Overview **Citation:** - Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170366. + Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170365. Dataset Visualization ^^^^^^^^^^^^^^^^^^^^^ @@ -83,6 +83,13 @@ along with key statistics for each variable. - Min Value - Max Value - Missing % + * - *MOC (PW)* → **MHT** + - **MHT**: Meridional Overturning Heat Transport + - PW + - (288,) + - -0.04 + - 0.94 + - 0.0% * - *MOC (Sv)* → **MOC** - **MOC_z**: Meridional Overturning Volume Transport - Sverdrup @@ -90,13 +97,6 @@ along with key statistics for each variable. - 2.47 - 19.98 - 0.0% - * - **MOC (PW)** - - No description available - - unknown - - (288,) - - -0.04 - - 0.94 - - 0.0% * - *Ekman (Sv)* → **TRANS_EKMAN** - **Ekman**: Ekman Volume Transport - Sverdrup @@ -145,9 +145,9 @@ The following metadata provides comprehensive information about this dataset: - **Processing Software**: http://github.com/AMOCcommunity/amocatlas - **Processing Version**: v0.3.0 - **Processing Datasource\***: wh41n -- **Variable Mapping\***: {'Ekman (Sv)': 'TRANS_EKMAN', 'Geos (Sv)': 'TRANS_GEO', 'MOC (Sv)': 'MOC', 'MHT (PW)': 'MHT'} +- **Variable Mapping\***: {'Ekman (Sv)': 'TRANS_EKMAN', 'Geos (Sv)': 'TRANS_GEO', 'MOC (Sv)': 'MOC', 'MOC (PW)': 'MHT'} - **Original Variable Metadata\***: [Complex metadata structure - 4 items] -- **Applied Variable Mapping**: {'Ekman (Sv)': 'TRANS_EKMAN', 'Geos (Sv)': 'TRANS_GEO', 'MOC (Sv)': 'MOC'} +- **Applied Variable Mapping**: {'Ekman (Sv)': 'TRANS_EKMAN', 'Geos (Sv)': 'TRANS_GEO', 'MOC (Sv)': 'MOC', 'MOC (PW)': 'MHT'} - **Version\***: v5 - **Comment\***: (Note: date_modified has been set to a canonical value for documentation generation to avoid git churn) @@ -171,7 +171,7 @@ Dataset Overview **Citation:** - Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170366. + Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170365. Dataset Visualization ^^^^^^^^^^^^^^^^^^^^^ @@ -335,7 +335,7 @@ Dataset Overview **Citation:** - Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170366. + Willis, J. K., and Hobbs, W. R., Atlantic Meridional Overturning Circulation Near 41N from Altimetry and Argo Observations. Dataset accessed at 10.5281/zenodo.8170365. Dataset Visualization ^^^^^^^^^^^^^^^^^^^^^ @@ -425,7 +425,7 @@ along with key statistics for each variable. - Max Value - Missing % * - *Q* → **MHT** - - Observed meridional heat transport + - **MHT**: Observed meridional heat transport - PW - (288, 4, 320, 201) - -0.22 diff --git a/notebooks/demo.ipynb b/notebooks/demo.ipynb index 25a8551f..e47ac19a 100644 --- a/notebooks/demo.ipynb +++ b/notebooks/demo.ipynb @@ -391,7 +391,7 @@ "source": [ "### Load Calafat2025\n", "\n", - "Meridional heat transport from a Bayesian method to produce a North Atlantic heat budget is also available. However, it has 4000 realisations of the time series (from which uncertainties can be estimated), so is less straightforward to plot." + "Meridional heat transport from a Bayesian method to produce a North Atlantic heat budget is also available. However, it has 4000 realisations of the time series (from which uncertainties can be estimated), so is less straightforward to plot. See below for an average across the realisations." ] }, { @@ -402,27 +402,76 @@ "outputs": [], "source": [ "standardCALAFAT2025 = read.calafat2025()\n", - "\n", - "# declare latitude index (between 1 and 11)\n", + "standardCALAFAT2025" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5503c4a", + "metadata": {}, + "outputs": [], + "source": [ + "def create_ensemble_mean_dataset(ds):\n", + " \"\"\"Create a new dataset with ensemble means, removing N_ENSEMBLE dimension.\n", + " \n", + " This function takes the mean across the N_ENSEMBLE dimension for all variables\n", + " that have it, creating a dataset suitable for standard plotting functions.\n", + " \n", + " Parameters\n", + " ----------\n", + " ds : xarray.Dataset\n", + " Input dataset with N_ENSEMBLE dimension\n", + " \n", + " Returns\n", + " -------\n", + " xarray.Dataset\n", + " Dataset with ensemble means, N_ENSEMBLE dimension removed\n", + " \"\"\"\n", + " # Create a copy of the dataset\n", + " ds_mean = ds.copy()\n", + "\n", + " # For each data variable, take the mean across N_ENSEMBLE if it has that dimension\n", + " for var_name in ds.data_vars:\n", + " var = ds[var_name]\n", + " if 'N_ENSEMBLE' in var.dims:\n", + " # Take mean across N_ENSEMBLE dimension (point estimate)\n", + " ds_mean[var_name] = var.mean(dim='N_ENSEMBLE')\n", + "\n", + " # Remove N_ENSEMBLE coordinate since no variables use it anymore\n", + " if 'N_ENSEMBLE' in ds_mean.coords:\n", + " ds_mean = ds_mean.drop_vars('N_ENSEMBLE')\n", + "\n", + " return ds_mean\n", + "\n", + "# Create the ensemble-averaged dataset\n", + "calafat_mean = create_ensemble_mean_dataset(standardCALAFAT2025)\n", + "\n", + "# Now your original plotting code will work:\n", "lat_idx = 5\n", - "lat_val = standardCALAFAT2025['LATITUDE'].values[lat_idx]\n", + "lat_val = calafat_mean['LATITUDE'].values[lat_idx]\n", "\n", "if lat_val<0:\n", " title_str = f'CALAFAT2025 (lat = {-lat_val:.2f}°S)'\n", "else:\n", " title_str = f'CALAFAT2025 (lat = {lat_val:.2f}°N)'\n", "\n", - "plotters.plot_amoc_timeseries(\n", - "data=[standardCALAFAT2025],\n", - "varnames=[\"MHT\"],\n", - "labels=[\"\"],\n", - "colors=[\"darkred\"],\n", - "resample_monthly=True,\n", - "plot_raw=True,\n", - "lat_idx=lat_idx,\n", - "ylabel='MHT (PW)',\n", - "title=title_str\n", - ")" + " # Plot the 2D MHT data\n", + "fig, ax = plotters.plot_amoc_2d_data(\n", + " data=calafat_mean,\n", + " varname=\"MHT\",\n", + " title=\"CALAFAT2025 Meridional Heat Transport\",\n", + " ylabel=\"Latitude (°N)\",\n", + " figsize=(12, 6),\n", + " colormap=\"RdBu_r\", # Red-blue colormap, good for heat transport\n", + " # vmin=-1.0, # Optional: set color scale limits\n", + " # vmax=1.0,\n", + ")\n", + "\n", + "# Add colorbar label\n", + "cbar = fig.get_axes()[1] if len(fig.get_axes()) > 1 else None\n", + "if cbar:\n", + " cbar.set_ylabel('MHT (PW)', rotation=270, labelpad=20)" ] }, {