# cryoswath


[](https://doi.org/10.5281/zenodo.14825358)

cryoswath is a python package containing processing pipelines, a tool
library, and some pre-assembled data to retrieve and study CryoSat-2
data.
Adaptability lies at its core. The user can access many options simply
by passing arguments to functions; everything else can be customized
changing the concerned function or adding a new one.
## 🌱 state
cryoswath is being developed. Branch `main` is the release branch,
`scripts` contains tutorials, and `data` contains auxiliary data and the
required directory structure. You can have everything setup
automatically (see "getting started"). Other branches are for
development.
## ✨ features
- find all CryoSat-2 tracks passing over your region of interest
- download L1b data from ESA
- retrieve swath elevation estimates
- aggregate point data to gridded data
- fill data gaps using tested methods
- calculate change rates
## 🚀 getting started
There is a number of ways you can start off, including installing from
"source", pypi, conda-forge, or docker. Please find more details in the
[docs
(prerequisites)](https://cryoswath.readthedocs.io/en/latest/prerequisites.html).
I show two approaches, installing from conda-forge and a mixture of methods.
### simply with mamba/conda 🐍
advantage: simple and most stable dependency resolution
First, choose an environment name and either define `$env_name`, e.g.,
`env_name=cryoswath`, or adapt the create and activate commands
accordingly.
`mamba create -n $env_name conda-forge::cryoswath`
Continue below at "init project".
### clone 🐙, mamba 🐍, pip 📦
advantage: allows modifications and easy updates
Like the above, first, choose an environment name and either define
`$env_name`, e.g., `env_name=cryoswath`, or adapt the create and
activate commands accordingly. You will also need the path to your
environment. That will be something ending in `.../envs/env_name`. If
you are not sure, find it viewing `mamba env list`. Further, I assume
you'll clone into a directory named `cryoswath`.
```sh
git clone https://github.com/j-haacker/cryoswath.git cryoswath
mamba env create -n $env_name -f cryoswath/environment.yml
mamba activate $env_name
mamba install pip
pip install --editable cryoswath
```
### init project
cryoswath will deal with data that is not meant to reside in the
installation directory. The command `cryoswath-init` will setup a
directory structure and download some auxiliary files. Please choose a
project name of you liking and replace `proj_dir` in the following.
```sh
mkdir proj_dir
cd proj_dir
cryoswath-init
```
This, among others, creates a file `scripts/config.ini` that contains
the base path of your project. This allow cryoswath to find the data -
if you wish to run scripts from different directories, copy this file
there.
## 📖 documentation
[cryoswath.readthedocs.io](https://cryoswath.readthedocs.io/)
## dependencies
- [requirements.txt](https://github.com/j-haacker/cryoswath/blob/main/requirements.txt)
- reference elevation model
- glacier outlines
cryoswath will point you to the required resources.
## 🐛 known issues
- ESA's data server is not available from all internet service providers
- projected RGI basins sometimes "invalid"
-> add `.make_valid()` if it is missing somewhere
- it has mostly been tested for the Arctic
Further: see [open issues](https://github.com/j-haacker/cryoswath/issues).
## citation and attribution
You can cite this package using bibtex:
```bibtex
@software{cryoswath,
author = {Haacker, Jan},
title = {cryoswath: v0.2.3},
month = feb,
year = 2025,
publisher = {Zenodo},
version = {v0.2.3},
doi = {10.5281/zenodo.14837018}
}
```
Please mind that you likely used other resources on the way.
- ESA provides the L1b data under [these Terms and Conditions](https://github.com/j-haacker/cryoswath/blob/main/data/L1b/Terms-and-Conditions-for-the-use-of-ESA-Data.pdf)
- RGI data is distributed under [CC-BY-4.0 license](https://creativecommons.org/licenses/by/4.0/)
- if you (likely) used DEMs of the PGC, see their [Acknowledgement Policy](https://www.pgc.umn.edu/guides/user-services/acknowledgement-policy/)
- the many python packages and libraries this package depends on; some of which are indispensable.
## 📜 license
MIT. See [LICENSE.txt](https://github.com/j-haacker/cryoswath/blob/main/LICENSE.txt).
Raw data
{
"_id": null,
"home_page": null,
"name": "cryoswath",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "glacier, altimetry, swath, cryosat",
"author": null,
"author_email": "Jan Haacker <j.m.haacker@tudelft.nl>",
"download_url": "https://files.pythonhosted.org/packages/40/66/ce5021f01004b8318e842cedeb73d271d754ae152e1257171f0d448406a2/cryoswath-0.2.3.post1.tar.gz",
"platform": null,
"description": "# cryoswath\n\n\n\n[](https://doi.org/10.5281/zenodo.14825358)\n\n\ncryoswath is a python package containing processing pipelines, a tool\nlibrary, and some pre-assembled data to retrieve and study CryoSat-2\ndata.\n\nAdaptability lies at its core. The user can access many options simply\nby passing arguments to functions; everything else can be customized\nchanging the concerned function or adding a new one.\n\n## \ud83c\udf31 state\n\ncryoswath is being developed. Branch `main` is the release branch,\n`scripts` contains tutorials, and `data` contains auxiliary data and the\nrequired directory structure. You can have everything setup\nautomatically (see \"getting started\"). Other branches are for\ndevelopment.\n\n## \u2728 features\n\n- find all CryoSat-2 tracks passing over your region of interest\n- download L1b data from ESA\n- retrieve swath elevation estimates\n- aggregate point data to gridded data\n- fill data gaps using tested methods\n- calculate change rates\n\n## \ud83d\ude80 getting started\n\nThere is a number of ways you can start off, including installing from\n\"source\", pypi, conda-forge, or docker. Please find more details in the\n[docs\n(prerequisites)](https://cryoswath.readthedocs.io/en/latest/prerequisites.html).\nI show two approaches, installing from conda-forge and a mixture of methods.\n\n### simply with mamba/conda \ud83d\udc0d\n\nadvantage: simple and most stable dependency resolution\n\nFirst, choose an environment name and either define `$env_name`, e.g.,\n`env_name=cryoswath`, or adapt the create and activate commands\naccordingly.\n\n`mamba create -n $env_name conda-forge::cryoswath`\n\nContinue below at \"init project\".\n\n### clone \ud83d\udc19, mamba \ud83d\udc0d, pip \ud83d\udce6\n\nadvantage: allows modifications and easy updates\n\nLike the above, first, choose an environment name and either define\n`$env_name`, e.g., `env_name=cryoswath`, or adapt the create and\nactivate commands accordingly. You will also need the path to your\nenvironment. That will be something ending in `.../envs/env_name`. If\nyou are not sure, find it viewing `mamba env list`. Further, I assume\nyou'll clone into a directory named `cryoswath`.\n\n```sh\ngit clone https://github.com/j-haacker/cryoswath.git cryoswath\nmamba env create -n $env_name -f cryoswath/environment.yml\nmamba activate $env_name\nmamba install pip\npip install --editable cryoswath\n```\n\n### init project\n\ncryoswath will deal with data that is not meant to reside in the\ninstallation directory. The command `cryoswath-init` will setup a\ndirectory structure and download some auxiliary files. Please choose a\nproject name of you liking and replace `proj_dir` in the following.\n\n```sh\nmkdir proj_dir\ncd proj_dir\ncryoswath-init\n```\n\nThis, among others, creates a file `scripts/config.ini` that contains\nthe base path of your project. This allow cryoswath to find the data -\nif you wish to run scripts from different directories, copy this file\nthere.\n\n## \ud83d\udcd6 documentation\n\n[cryoswath.readthedocs.io](https://cryoswath.readthedocs.io/)\n\n## dependencies\n\n- [requirements.txt](https://github.com/j-haacker/cryoswath/blob/main/requirements.txt)\n- reference elevation model\n- glacier outlines\n\ncryoswath will point you to the required resources.\n\n## \ud83d\udc1b known issues\n\n- ESA's data server is not available from all internet service providers\n- projected RGI basins sometimes \"invalid\"\n -> add `.make_valid()` if it is missing somewhere\n- it has mostly been tested for the Arctic\n\n Further: see [open issues](https://github.com/j-haacker/cryoswath/issues).\n\n## citation and attribution\n\nYou can cite this package using bibtex:\n\n```bibtex\n@software{cryoswath,\n author = {Haacker, Jan},\n title = {cryoswath: v0.2.3},\n month = feb,\n year = 2025,\n publisher = {Zenodo},\n version = {v0.2.3},\n doi = {10.5281/zenodo.14837018}\n}\n```\n\nPlease mind that you likely used other resources on the way.\n\n- ESA provides the L1b data under [these Terms and Conditions](https://github.com/j-haacker/cryoswath/blob/main/data/L1b/Terms-and-Conditions-for-the-use-of-ESA-Data.pdf)\n- RGI data is distributed under [CC-BY-4.0 license](https://creativecommons.org/licenses/by/4.0/)\n- if you (likely) used DEMs of the PGC, see their [Acknowledgement Policy](https://www.pgc.umn.edu/guides/user-services/acknowledgement-policy/)\n- the many python packages and libraries this package depends on; some of which are indispensable.\n\n## \ud83d\udcdc license\n\nMIT. See [LICENSE.txt](https://github.com/j-haacker/cryoswath/blob/main/LICENSE.txt).\n",
"bugtrack_url": null,
"license": null,
"summary": "Swath processing toolbox for CryoSat-2",
"version": "0.2.3.post1",
"project_urls": {
"Documentation": "https://cryoswath.readthedocs.io/",
"Issues": "https://github.com/j-haacker/cryoswath/issues",
"Repository": "https://github.com/j-haacker/cryoswath.git"
},
"split_keywords": [
"glacier",
" altimetry",
" swath",
" cryosat"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e73cad4270e6f168cf54379fee22e8331221f9162c47522178861c1817cec53a",
"md5": "023b6f628f28c74ed11da1130a07a87c",
"sha256": "3ca9ab406e05ab2fd0e65488e2bb391f2eaa35da9d30997022743044b1ad7722"
},
"downloads": -1,
"filename": "cryoswath-0.2.3.post1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "023b6f628f28c74ed11da1130a07a87c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 79955,
"upload_time": "2025-07-11T11:30:49",
"upload_time_iso_8601": "2025-07-11T11:30:49.370103Z",
"url": "https://files.pythonhosted.org/packages/e7/3c/ad4270e6f168cf54379fee22e8331221f9162c47522178861c1817cec53a/cryoswath-0.2.3.post1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4066ce5021f01004b8318e842cedeb73d271d754ae152e1257171f0d448406a2",
"md5": "7f84c8e1dbb5cc3f851b1a9379de4197",
"sha256": "fb3abbb31c27eb1ee507e765f1c15196faf6375795f551a70b1986e20a2d80d2"
},
"downloads": -1,
"filename": "cryoswath-0.2.3.post1.tar.gz",
"has_sig": false,
"md5_digest": "7f84c8e1dbb5cc3f851b1a9379de4197",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 8082784,
"upload_time": "2025-07-11T11:30:57",
"upload_time_iso_8601": "2025-07-11T11:30:57.517739Z",
"url": "https://files.pythonhosted.org/packages/40/66/ce5021f01004b8318e842cedeb73d271d754ae152e1257171f0d448406a2/cryoswath-0.2.3.post1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 11:30:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "j-haacker",
"github_project": "cryoswath",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "dask",
"specs": []
},
{
"name": "defusedxml",
"specs": []
},
{
"name": "geopandas",
"specs": [
[
">=",
"1.0.1"
]
]
},
{
"name": "h5py",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "packaging",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "pyarrow",
"specs": []
},
{
"name": "pyogrio",
"specs": []
},
{
"name": "pyproj",
"specs": []
},
{
"name": "pytables",
"specs": []
},
{
"name": "python-dateutil",
"specs": []
},
{
"name": "rasterio",
"specs": []
},
{
"name": "rioxarray",
"specs": []
},
{
"name": "scikit-learn",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "shapely",
"specs": []
},
{
"name": "statsmodels",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "xarray",
"specs": []
}
],
"lcname": "cryoswath"
}