Skip to main content

Swath processing toolbox for CryoSat-2

Project description

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.11 (regularly tested on 3.11 and 3.12).
  • Starting Monday, February 16, 2026, downloading CryoSat resources requires an ESA EO account.
  • FTP credentials are resolved in this order: ~/.netrc (with explicit login/password), then CRYOSWATH_FTP_USER/CRYOSWATH_FTP_PASSWORD, then legacy config.ini [user] name/password (temporary fallback).
  • Anonymous FTP login is no longer supported.
  • Install xarray and zarr together to avoid version mismatches.

Dependency policy

  • Flexible package bounds (for pip/uv users): xarray>=2025.3,<2025.12.
  • Stable environment (recommended for reproducible runs): use the checked-in lock/environment files (pixi.lock, environment.yml).
  • Compatibility window in this repository was last audited on February 14, 2026.

Installation

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

Option 1: reproducible setup with pixi (recommended)

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:

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

Initialize a project

CryoSwath expects project data outside the package install directory. Run cryoswath-init inside a new project folder:

mkdir <proj_dir>
cd <proj_dir>
cryoswath-init

cryoswath-init sets up the expected data structure and writes scripts/config.ini with your base data path. The paths can be reconfigured in config.ini if you use a different layout.

To avoid storing secrets in config.ini, use ~/.netrc (preferred) or environment variables for FTP credentials and keep config.ini focused on paths. To create or update your ~/.netrc entry interactively, run: cryoswath-update-netrc.

Tutorials and documentation

Local testing

Run the full local test pipeline:

pixi run -e test test-all

Run report notebooks only:

pixi run -e test test-notebooks

Run tutorial notebooks only:

pixi run -e test test-tutorial-notebooks

If tutorials are stored outside the current checkout, set CRYOSWATH_TUTORIAL_DIR to the directory containing tutorial__*.ipynb before running this task.

Notebook tests may download required larger data from first-hand sources at runtime, so network availability and valid ESA credentials matter.

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: v0.2.5},
  month        = feb,
  year         = 2026,
  publisher    = {Zenodo},
  version      = {v0.2.5},
  doi          = {10.5281/zenodo.17011635}
}

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

License

MIT. See LICENSE.txt.

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

cryoswath-0.2.5.tar.gz (85.6 kB view details)

Uploaded Source

Built Distribution

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

cryoswath-0.2.5-py3-none-any.whl (89.4 kB view details)

Uploaded Python 3

File details

Details for the file cryoswath-0.2.5.tar.gz.

File metadata

  • Download URL: cryoswath-0.2.5.tar.gz
  • Upload date:
  • Size: 85.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for cryoswath-0.2.5.tar.gz
Algorithm Hash digest
SHA256 9c347971a37470a0e67f673a015fd132a879e6930e2af3f08e3d10930d7edcc2
MD5 770dde85d74d2a5795403d4a7ef2595f
BLAKE2b-256 e91a89a0fa9236df444b1540ae5a3f8b03520347896659475f40d99c89d7d351

See more details on using hashes here.

File details

Details for the file cryoswath-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: cryoswath-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for cryoswath-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1c5b6bdff531ddd7f24614dbd6b307a706bed26cae832f792af63dc20a4940de
MD5 5653bbce7ab9fdd728dd85f7785bdbf3
BLAKE2b-256 e500fdfa669d7934cb94ada1c9e67ddf699db83d15299b48303831994698b5ee

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