zos_predictability_aies
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
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
Metadata Files
README.md
Code for Brettin, Zanna, and Barnes (2025): daily-to-seasonal dynamic sea level predictabilty
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.ymlConda environment used for data processing and visualization.jobqueue.yamlConfiguration file for distributed computing.paths.jsonDictionary of directory paths.globals.jsonVarious global variables used in this project (constants, ensemble members, etc).utilsUtilities 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 usingpip install -e ..data_processing/Files listed are in chronological order.make_grids.pyMakes regridder file and computes areas. Saved toscratch/grid/.regrid.pyRegrids ocean variables and saves toscratch/regridded/.compute_sea_level_vars.ipynbComputes inverse barometer contribution and effective sea level. Variables are saved toscratch/sea_level/.rechunk.ipynbRechunks variables to be optimized for detrending and deseasonalizing. Saved toscratch/rechunked/.detrend_deseasonalize.ipynbDetrends and deseasonalizes variables. Saved toscratch/detrended_deseasonalized.rechunk_anom.ipynbRechunks deseasonalized data to be optimized for reading spatial fields. Saved toscratch/anom_spatial/.coarsen.pyCoarsens anomalies to a specified resolution. Output regridder files are saved tocoarsened/<resolution>/grid/and anomalies are savedmake_tensors.pymake_dp_tensors.pysave_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
- Repositories: 4
- Profile: https://github.com/andrewbrettin
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
- 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