Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: andrewbrettin
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 4.37 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Code for Brettin, Zanna, and Barnes (2025): daily-to-seasonal dynamic sea level predictabilty

DOI Version License: MIT

This is the project repository for the paper "Uncertainty-permitting machine learning reveals sources of dynamic sea level predictability across daily-to-seasonal timescales", submitted to Artificial Intelligence for the Earth Systems.

Directory structure:

  • environment.yml Conda environment used for data processing and visualization.
  • jobqueue.yaml Configuration file for distributed computing.
  • paths.json Dictionary of directory paths.
  • globals.json Various global variables used in this project (constants, ensemble members, etc).
  • utils Utilities package. Inside there are modules related to data loading, routing data processing, computation, metrics, networks, plotting, xai, and clustering. This is installed to our environment in editable mode using pip install -e ..
  • data_processing/ Files listed are in chronological order.
    • make_grids.py Makes regridder file and computes areas. Saved to scratch/grid/.
    • regrid.py Regrids ocean variables and saves to scratch/regridded/.
    • compute_sea_level_vars.ipynb Computes inverse barometer contribution and effective sea level. Variables are saved to scratch/sea_level/.
    • rechunk.ipynb Rechunks variables to be optimized for detrending and deseasonalizing. Saved to scratch/rechunked/.
    • detrend_deseasonalize.ipynb Detrends and deseasonalizes variables. Saved to scratch/detrended_deseasonalized.
    • rechunk_anom.ipynb Rechunks deseasonalized data to be optimized for reading spatial fields. Saved to scratch/anom_spatial/.
    • coarsen.py Coarsens anomalies to a specified resolution. Output regridder files are saved to coarsened/<resolution>/grid/ and anomalies are saved
    • make_tensors.py
    • make_dp_tensors.py
    • save_icoords.py
  • batch_scripts/ Batch scripts used for submission.
  • training/ Scripts for training networks and baselines.

Conda environments

The following commands were used in the project repository to make a data analysis environment:

```bash module load conda conda create -n s2s python=3.8 conda activate s2s

conda install -c conda-forge xesmf conda install -c conda-forge dask netCDF4 pip install pytest pytest -v --pyargs xesmf # should all pass

module load cuda/11.7 conda install pytorch torchvision pytorch-cuda=11.7 -c pytorch -c nvidia conda install -c conda-forge numpy scipy pandas xarray conda install -c conda-forge ipykernel ipywidgets tqdm conda install -c conda-forge dask distributed dask-jobqueue joblib cython bottleneck conda install -c conda-forge pytorch-lightning wandb conda install -c conda-forge zarr cftime nc-time-axis conda install -c conda-forge xrft xbatcher rechunker conda install -c conda-forge -c pyviz matplotlib seaborn cartopy cmocean bokeh hvplot

conda update --all

pip install -e .

```

Data overview

  • The data is from the CESM2 large ensemble project
  • Forcing: historical from 1850-2014, SSP370 from 2015-2100. Smoothed biomass-burning scenario.
  • Use ensemble members 011, 012, and 013 from model initialization years of 1251, 1281, and 1301 (total of 9 ensemble members). We don't use the macro states from ensembles initialized by years 1231, because UBOT and VBOT are missing the data from the historical SSP.

In train.py, ensemble members 1281.013 and 1301.013 are used for validation and testing, respectively. All other ensemble members are used for training.

Variables

We are given the variable SSH_2, which is the dynamic sea level (CMIP variable sea_surface_height_above_geoid). Due to the regridding, there is a small, insignificant global mean component to sea level at each time (varying on the order of ~<0.1mm each day). We remove this spatial mean and convert to meters and call this variable zos.

List of CESM2 variables: * SSH_2: Output variable "sea-surface height". Corresponds to dynamic sea level, but has a nonzero spatial mean which must be removed for consistency with CMIP conventions. [cm]. * SST: Sea surface temperatures [deg C] * UBOT: surface zonal wind speeds [m s^-1]. * VBOT: surface meridional wind speeds [m s^-1]. * zos: Dynamic sea level [m].

Miscellaneous notes

  • By convention, dates of tensor data correspond to the dates that a prediction is made. That is, xr.DataArray.shift() is applied to target tensors, not the input tensors.

Owner

  • Login: andrewbrettin
  • Kind: user

Aspiring PEP8 adherent

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Brettin"
  given-names: "Andrew"
  orcid: "https://orcid.org/0000-0002-7664-6612"
title: "Code for Brettin, Zanna, and Barnes (2025): daily-to-seasonal dynamic sea level predictabilty"
version: 1.0.0
doi: 10.5281/zenodo.14873345
date-released: 2025-02-14
url: "https://github.com/andrewbrettin/zos_predictability_aies"

GitHub Events

Total
  • Release event: 2
  • Delete event: 1
  • Push event: 7
  • Fork event: 1
  • Create event: 4
Last Year
  • Release event: 2
  • Delete event: 1
  • Push event: 7
  • Fork event: 1
  • Create event: 4

Dependencies

environment.yml pypi
  • absl-py ==1.4.0
  • astunparse ==1.6.3
  • cachetools ==5.3.1
  • cmake ==3.27.4.1
  • flatbuffers ==23.5.26
  • gast ==0.4.0
  • google-auth ==2.23.0
  • google-auth-oauthlib ==1.0.0
  • google-pasta ==0.2.0
  • grpcio ==1.58.0
  • h5py ==3.9.0
  • keras ==2.13.1
  • libclang ==16.0.6
  • lit ==16.0.6
  • numpy ==1.24.3
  • nvidia-cublas-cu11 ==11.10.3.66
  • nvidia-cuda-cupti-cu11 ==11.7.101
  • nvidia-cuda-nvrtc-cu11 ==11.7.99
  • nvidia-cuda-runtime-cu11 ==11.7.99
  • nvidia-cudnn-cu11 ==8.5.0.96
  • nvidia-cufft-cu11 ==10.9.0.58
  • nvidia-curand-cu11 ==10.2.10.91
  • nvidia-cusolver-cu11 ==11.4.0.1
  • nvidia-cusparse-cu11 ==11.7.4.91
  • nvidia-nccl-cu11 ==2.14.3
  • nvidia-nvtx-cu11 ==11.7.91
  • oauthlib ==3.2.2
  • opt-einsum ==3.3.0
  • protobuf ==4.24.3
  • pyasn1 ==0.5.0
  • pyasn1-modules ==0.3.0
  • requests-oauthlib ==1.3.1
  • rsa ==4.9
  • tensorboard ==2.13.0
  • tensorboard-data-server ==0.7.1
  • tensorflow ==2.13.0
  • tensorflow-estimator ==2.13.0
  • tensorflow-io-gcs-filesystem ==0.34.0
  • termcolor ==2.3.0
  • torch ==2.0.1
  • torchvision ==0.15.2
  • triton ==2.0.0
  • typing-extensions ==4.5.0
  • urllib3 ==1.26.16
  • werkzeug ==2.3.7
  • wrapt ==1.15.0
setup.py pypi