Skip to main content

CryoSwath

GitHub top language Conda Version DOI GitHub License Conda Downloads PyPI - Downloads

CryoSwath is a Python package for processing CryoSat-2 SARIn data, from waveform-level processing to gridded elevation products.

What CryoSwath provides

  • Discovery of CryoSat-2 tracks over a region of interest
  • L1b download and preprocessing
  • Swath and POCA elevation retrieval
  • Aggregation to regular spatial/temporal grids
  • Gap filling and trend estimation workflows

Important notes

  • Install CryoSwath in a dedicated environment (pixi, conda/mamba, venv, or uv). The dependency tree is broad, and future dependency conflicts are otherwise likely.
  • Supported Python version: >=3.12.
  • Downloading CryoSat SARIn L1B resources requires an ESA EO account. MAAP assets use a personal MAAP offline token; Science Server FTP fallback uses ESA username/password credentials.
  • Automatic RGI downloads from NSIDC require NASA Earthdata credentials; see the prerequisites docs for setup details.
  • CryoSat SARIn L1b track discovery uses MAAP anonymously. When MAAP cannot provide a usable asset, downloads fall back to the authenticated CryoSat Science Server FTP service.
  • Anonymous FTP login does not grant access to CryoSat product directories.
  • Install xarray and zarr together to avoid version mismatches.

Installation

For full setup details, see the docs: cryoswath.readthedocs.io

For development setup and contribution checks, see CONTRIBUTING.md.

git clone https://github.com/j-haacker/cryoswath.git
cd cryoswath
pixi install --locked -e test
pixi run -e test test-unit

For an interactive shell in the project environment:

pixi shell -e test

Option 2: install from conda-forge

mamba create -n cryoswath conda-forge::cryoswath
mamba activate cryoswath

Option 3: editable install from source

git clone https://github.com/j-haacker/cryoswath.git
mamba env create -n cryoswath -f cryoswath/environment.yml
mamba activate cryoswath
mamba install pip
pip install --editable cryoswath

Option 4: reproducible Pixi environment

git clone https://github.com/j-haacker/cryoswath.git
cd cryoswath
pixi install --locked -e test
pixi shell -e test

This uses the lock file and is the most robust option when dependency resolvers disagree.

Contributor lockfile workflow

For regular development runs:

pixi install --locked -e test

If you change dependency manifests (pyproject.toml and/or pixi.toml):

pixi lock
pixi run -e test test-unit
pixi run -e docs docs-build

Optional: Docker image

If local dependency resolution fails, you can use Docker. The image provides the CryoSwath runtime and the base JupyterLab kernel:

docker run -it -p 8888:8888 -v <proj_dir>:/home/jovyan/project_dir cryoswath/jupyterlab:nightly

Find setup instruction in the prerequisite documentation.

Configure a project

CryoSwath keeps project data outside the package install directory. If no configuration file is present, paths default to ./data relative to the current working directory. For a reusable project configuration, run the bootstrap commands inside a project folder:

mkdir <proj_dir>
cd <proj_dir>
cryoswath create-config
cryoswath download-aux-data
cryoswath get-tutorials

cryoswath create-config writes cryoswath.cfg with your base data path. cryoswath download-aux-data installs the Zenodo auxiliary-data baseline. cryoswath get-tutorials copies packaged tutorial notebooks to tutorials/. The tutorial notebooks assume CryoSwath is installed in the active Python environment and import it directly. You can also set CRYOSWATH_DATA or more specific CRYOSWATH_* path variables; environment variables override config files. Set CRYOSWATH_CONFIG to select a config file explicitly. Legacy config.ini files are still read.

MAAP downloads require a personal ESA MAAP offline token associated with an ESA EO Sign-In account. Store it in keyring with cryoswath update-maap-token, or set ESA_MAAP_OFFLINE_TOKEN for automation. The token is different from an ESA username/password and should not be stored in cryoswath.cfg or .netrc. The authenticated Science Server FTP fallback uses existing ESA username/password credentials. Generate a 90-day token through the ESA MAAP portal.

Tutorials and documentation

External dependencies and data

CryoSwath relies on:

  • Python dependencies: requirements.txt
  • reference elevation models
  • RGI glacier outlines

The package points to required external resources during setup and use.

Known limitations

  • ESA's data server is not reachable from all internet service providers.
  • Projected RGI basin geometries can sometimes be invalid; use .make_valid() where required.
  • Most testing and validation has focused on the Arctic.

Further details: open issues

Citation and attribution

If you use CryoSwath, please cite:

@software{cryoswath,
  author       = {Haacker, Jan},
  title        = {CryoSwath 0.2.8},
  month        = oct,
  year         = 2026,
  publisher    = {Zenodo},
  version      = {0.2.8},
  doi          = {10.5281/zenodo.14825358} % replace concept DOI on release
}

Please also acknowledge upstream data/resources used in your workflow:

License

MIT. See LICENSE.txt.

Metadata

Release files for cryoswath 0.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cryoswath 0.2.8
File Size Uploaded
cryoswath-0.2.8.tar.gz 172.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cryoswath 0.2.8
File Interpreter ABI Platform
cryoswath-0.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 350.7 kB

Release files / cryoswath-0.2.8.tar.gz

Download URL cryoswath-0.2.8.tar.gz
Size 172.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c840d6acf0e0ae7f0cb905bbb8bbc60193fe8576cba602f6bdb31f67b2a99123
BLAKE2b-256 checksum
How to use checksums
e8ebd2779e4c91119c57adfe986a891a275d52883bb57e6c230742aa24bf21b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / cryoswath-0.2.8-py3-none-any.whl

Download URL cryoswath-0.2.8-py3-none-any.whl
Size 178.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a4bcd78852a203ffab0c9b7ee67fd39876e59ce27d082637107f07e78fb25e40
BLAKE2b-256 checksum
How to use checksums
2107513744c6926c0685b390f0ef8561571c945f9c4cd59fbf6efa6b19b0900e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page