Skip to main content

Tools to read in CryoGrid MATLAB data to Python and create forcing data

Project description

CryoGrid-pyTools

Tools to read in CryoGrid MATLAB data to Python, includes forcing, outputs, DEMs, etc.

Feel free to use, modify, and distribute as you see fit.

Installation

pip install cryogrid_pytools

# OR for the very latest bleeeeding edge version
pip install "cryogrid-pytools[data,viz] @ git+https://github.com/lukegre/CryoGrid-pyTools.git"

However, I recommend using uv to manage your Python environments. This would be

uv add cryogrid-pytools[data,viz]

# OR
uv add "cryogrid-pytools[data,viz] @ git+https://github.com/lukegre/CryoGrid-pyTools.git"

Usage

This package can read in

  • CryoGrid output (from OUT_regridded_FCI2)
  • simple MATLAB struct files (not run_info.mat)
  • ERA5 forcing
  • excel run configuration files (experimental)

Basic examples are shown below for the first two items, but see demo.ipynb for more comprehensive examples.

Reading single CryoGrid output files

Currently, only output files from the calss OUT_regridded_FCI2 are supported. However, the majority of files you'll use follow this format.

import cryogrid_pytools as cgt

# a single file that should look something like this
fname = "results_from_RUN_SIMPLE/<project_name>_<YYYYMMDD>.mat"

# currently the only output from OUT_regridded_FCI2 is supported
dataset = cgt.read_OUT_regridded_FCI2_file(fname)

Reading multiple CryoGrid output files

If you're working with RUN_SPATIAL_SPINUP_CLUSTERING, you can read in multiple files at once. The data are returned as an xarray.Dataset with the dimensions: [gridcell, depth, time]

# path contains wildcards where cluster ID and date are respectively
fname = "results_from_RUN_SPATIAL_SPINUP_CLUSTERING/project_name_*_*.mat"

# deepest_point is the deepest point in the saved files
dataset = cgt.read_OUT_regridded_FCI2_clusters(fname, deepest_point=-5)

Reading struct files from MATLAB

TIP: In MATLAB, You need to add the `CryoGrid/source` directory to the MATLAB path before the file can be loaded properly.

Note that run_info.mat cannot be read as it contains special classes that are not supported by scipy.io.loadmat. To save parts of run_info, use the following code in MATLAB:

run_info_spatial = run_info.SPATIAL.STATVAR
save "run_info_spatial.mat" run_info_spatial

Then, in Python:

fname = 'path_to_file/run_spatial_statvar.mat'
spatial = cgt.read_mat_struct_as_dataset(fname, index=['Y', 'X'])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cryogrid_pytools-0.3.16.tar.gz (43.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cryogrid_pytools-0.3.16-py3-none-any.whl (52.9 kB view details)

Uploaded Python 3

File details

Details for the file cryogrid_pytools-0.3.16.tar.gz.

File metadata

  • Download URL: cryogrid_pytools-0.3.16.tar.gz
  • Upload date:
  • Size: 43.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.11

File hashes

Hashes for cryogrid_pytools-0.3.16.tar.gz
Algorithm Hash digest
SHA256 39d83f73da0ddd8a3159d7801cecafe6f7c611bb885ac1b36d85e9665d3d43d2
MD5 cc36b50ae24c72d06b5758e596350c8a
BLAKE2b-256 53c8d34ff0ee0d6398d2d00917396d0cfec598deb94b90e237dfa6aa31f716d2

See more details on using hashes here.

File details

Details for the file cryogrid_pytools-0.3.16-py3-none-any.whl.

File metadata

File hashes

Hashes for cryogrid_pytools-0.3.16-py3-none-any.whl
Algorithm Hash digest
SHA256 c6a2d6966bc93974c0d14676805a43c721fbd1038c4f5a23064c4b3b1adfabc0
MD5 c66c98fb1db4ccae7ab46f988260bdda
BLAKE2b-256 e989bdae4669498a584ca7c01390f8857c0adff272de87b62755215b9b8b24d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page