Skip to content

Releases: j-haacker/CryoSwath

v0.2.5

16 Feb 11:51

Choose a tag to compare

Changelog

All notable changes are documented in this file.

v0.2.5 (2026-02-15)

  • Range: v0.2.4..ee58532
  • Snapshot commit date: 2026-02-15

User impact summary

This change set is primarily a stability and portability update rather than a major new algorithm release.

What it means for CryoSwath usage

  • Day-to-day processing in l1b, l2, l3, l4, gis, and misc is more robust on edge cases (empty chunks/windows, missing columns, unnamed indexes, scalar coordinates, and missing region matches).
  • Error handling is clearer in several paths that previously relied on assertions; failures should now be easier to diagnose in production runs.
  • l2 multiprocessing is safer across platforms (spawn context + CPU core detection), which helps on macOS/Windows and mixed cluster environments.
  • l3 chunk-time reindexing for zarr should reduce write/read issues related to non-contiguous chunk regions.
  • Tutorial notebooks were updated to current APIs and now have automated workflow coverage, making the tutorial path more reliable as a usage reference.

New features

  • Pixi-first environment support and workflow hardening were added and expanded (including locked runtime solve strategy and feature-scoped tasks).
  • A production optional dependency group was introduced.
  • Tutorial workflow automation was expanded with Snakemake and tox entrypoints for notebook/pipeline validation.
  • A CRISTAL mission portability checklist was added to docs.

Compatibility notes

  • Dependency manifests now pin xarray < 2025.12 due to upstream regression handling in this cycle.
  • If your environment already uses newer xarray, expect to align to the pinned version before running CryoSwath reliably.

Commits since v0.2.4

  • 2025-08-31 2629767 chore: add gitignores
  • 2025-08-31 4e8cb24 chore: bump version
  • 2025-12-20 6d039f5 misc: update rgi_code_translator
  • 2025-12-20 ea142fe update pyproject.toml
  • 2025-12-20 d6c4bd8 misc: fix previous commit
  • 2026-01-24 a8a2313 fix(misc): allow scalar dimensions in fill_missing_coords
  • 2026-01-28 403658c fix: revise download_dem
  • 2026-01-29 8c55ef1 chore(l1b): polish code a bit
  • 2026-01-29 296ec1a fix(test_plots): correct label
  • 2026-01-29 1239d01 fix(misc): use make_valid in load_glacier_outlines
  • 2026-01-29 81be744 chore(misc): format
  • 2026-01-29 a9d55a7 chore: update readme
  • 2026-01-29 d87a946 chore: update docker
  • 2026-01-29 075adc2 Add pixi compatibility and installation instructions
  • 2026-01-30 09f7c90 fix(misc): fix index issue
  • 2026-01-30 bdd8a0c Merge pull request #52 from Tanmay-Ts/add-pixi-support
  • 2026-02-01 436de23 !fix(misc): update default DEM names
  • 2026-02-01 5faa58a Merge remote-tracking branch 'origin' into develop
  • 2026-02-11 117c755 chore: add opt.dep. group production
  • 2026-02-11 89d1447 fix(misc): fix building paths from config
  • 2026-02-11 3a94789 chore(l2): simplify code
  • 2026-02-11 27c7079 fix(l3): fix handling even agg. windows
  • 2026-02-11 bb4d0f4 fix(l2): guard grid chunk split for small data
  • 2026-02-11 a9a61d1 fix(misc): handle default dir in ESRI conversion
  • 2026-02-11 e67840b fix(gis): robust ESRI feather target path
  • 2026-02-11 9973b3f fix(l4): guard optional filled_flag updates
  • 2026-02-11 97c1f26 fix(l3): raise for unsupported joined L2 aggregation
  • 2026-02-11 a39ba02 fix(l4): raise reference deviation sanity check
  • 2026-02-11 bf819eb fix(gis): accept scalar lon/lat in CRS selection
  • 2026-02-11 b2ccf6c fix(l2): replace assert-based stale cache checks
  • 2026-02-11 eab85a5 fix(l2): handle unnamed index in l1b conversion
  • 2026-02-11 8e0f77a fix(l2): guard empty grid aggregation paths
  • 2026-02-11 40ab2e4 fix(l1b): replace assert-only threshold checks
  • 2026-02-11 ba8ea86 fix(l4): call local elevation reference helper
  • 2026-02-11 f5860f6 fix(l4): use coefficient arrays in trend reconstruction
  • 2026-02-11 cf15928 fix(misc): fail clearly when region lookup is empty
  • 2026-02-11 4daf415 fix(l3): honor l2_type when reading cache chunks
  • 2026-02-11 3d652ba fix(gis): fail clearly when no o2 region matches
  • 2026-02-12 59443cb fix(l1b): narrow xarray timedelta patch version gate
  • 2026-02-12 a48cd87 docs(cryoswath): revise RTD pages and API docstrings
  • 2026-02-12 13a0e48 docs(sphinx): refine docs style and refresh README warnings
  • 2026-02-12 7af912d docs(theme): switch to pydata and clean sidebar/header
  • 2026-02-13 d8ec019 docs(linkcode): resolve source refs from git metadata
  • 2026-02-13 de9fda1 docs: move env warning to install pages and align manager wording
  • 2026-02-13 d5e1cef merge(main): integrate develop (docs refresh, linkcode hardening, and processing fixes)
  • 2026-02-14 8c86f40 fix(l2): detect CPU cores cross-platform (refs #38)
  • 2026-02-14 100418c fix(l2): use spawn context for multiprocessing safety (refs #35)
  • 2026-02-14 eadd824 fix(l3): reindex chunk time to contiguous zarr regions (refs #37)
  • 2026-02-14 5ce48ec docs: add CRISTAL portability checklist (refs #42)
  • 2026-02-14 4e49632 build: document and harden pixi workflow (refs #51)
  • 2026-02-14 bf771bc refactor(l1b): clarify download status messages (refs #20)
  • 2026-02-14 7b1d3b8 Pin xarray below 2025.12 across dependency manifests
  • 2026-02-14 b66e084 chore: finalize xarray<2025.12 regression fix
  • 2026-02-14 0761831 build(deps): align dependency policy and add py3.13 CI coverage
  • 2026-02-14 a00e721 fix(test_plots): update dem_transect
  • 2026-02-14 e6aec9e fix(l2): fix missing column issue
  • 2026-02-14 822a044 test(reports): rename notebooks and add Snakemake conda workflow
  • 2026-02-15 7f36903 fix(tests): remove debugging helpers
  • 2026-02-15 5d85e9e chore(test): add non-failing anonymous FTP login probe
  • 2026-02-15 4e9d342 fix(misc): recover stale cache backup and guard writes with lock
  • 2026-02-15 3eec709 fix(l3): handle empty roll aggregations in build_dataset
  • 2026-02-15 f2da694 fix(tutorial): use misc.fill_missing_coords in step-by-step notebook
  • 2026-02-15 c376355 build(pixi): modernize pyproject metadata and dependency ownership
  • 2026-02-15 e8929b5 fix(tutorial): call l4.append_elevation_reference in step-by-step notebook
  • 2026-02-15 637377a fix(tutorial): call l4.fill_voids in step-by-step notebook
  • 2026-02-15 9905f68 build: scope pixi tasks by feature and align setup docs
  • 2026-02-15 ad7410a build(pixi): pin runtime solve strategy and add locked env workflow
  • 2026-02-15 6b98cc7 fix(tutorial): replace removed misc.load_basins in process-first-swath
  • 2026-02-15 8c725d4 test(tutorials): add snakemake workflow for tutorial notebooks
  • 2026-02-15 1840ad0 test(pipeline): add tox entrypoint, config templates, and netrc helper tests
  • 2026-02-15 5bf70af test(pipeline): add tutorial notebook workflow and update tutorial API calls
  • 2026-02-15 ee58532 merge(build): integrate codex/pixi-followup-envdocs into main

v0.2.4

31 Aug 10:38

Choose a tag to compare

The release comprises a comprehensive update and refactor of the CryoSwath project, a Python package for processing CryoSat-2 satellite data. The changes focus on improving code clarity, modularity, and maintainability, as well as updating documentation and dependencies.

Key changes include:

  • Consistent Naming: The project name is standardized from "cryoswath" to "CryoSwath" across documentation, code, and metadata, improving branding and clarity.
  • Imports Refactored: Relative imports are replaced with absolute imports (e.g., from .misc becomes from cryoswath.misc), which helps avoid circular dependencies and makes the codebase more robust.
  • Path Handling: Paths are now managed using Python's Path objects instead of raw strings, making file operations more reliable and platform-independent.
  • Integrated DEM downloader: DEMs can now be downloaded automatically. However, this capability is not yet fully exploited.
  • Empty DataFrames: A reusable empty_GeoDataFrame is introduced to handle cases where no data is available, reducing repetitive code and potential errors.
  • Functionality Enhancements: Several functions are updated for flexibility, such as allowing custom arguments for phase smoothing and swath detection, and improving error handling for file downloads (including fallback to HTTPS if FTP fails).
  • Documentation Updates: The README, Sphinx docs, and tutorials are revised for clarity, consistency, and to reflect new installation and usage instructions.
  • Docker and Environment: The Dockerfile and environment files are updated to ensure a smoother setup, including necessary dependencies and initialization steps.
  • Dependency Management: Optional dependencies are streamlined, and new ones (like pystac-client and stackstac) are added to support advanced geospatial data handling.

Overall, these changes modernize the codebase, improve user experience, and make the package easier to install, use, and extend. The refactor also prepares CryoSwath for broader adoption and future development by addressing common pain points in scientific Python projects.

Full Changelog: v0.2.3.post1...v0.2.4

Patched v0.2.2

26 Jul 16:48

Choose a tag to compare

This release fixes a single issue related to a published dataset[1]. The release merely serves reproducibility and transparency.

[1] https://doi.org/10.4121/955d7f5a-0e3f-4166-a411-f0dcc4557cb2

Fix dependency specification

11 Jul 11:42

Choose a tag to compare

Add dependency specification xarray<2025 to fix bug.

Fix xarray dependency specification

11 Jul 11:10

Choose a tag to compare

Add dependency specification xarray<2025 to fix bug.

v0.2.3

04 Jul 22:21

Choose a tag to compare

Simplify installation, improve documentation, add high-level functions.

v0.2.2.post1

21 Mar 13:59

Choose a tag to compare

This release is almost identical to v0.2.2 except for dropping setting the user email, that is required for ESA downloads, during initialization. This was necessary to please conda-forge CI tests.

v0.2.2

21 Mar 13:55

Choose a tag to compare

  • Many small fixes
  • Some methodological improvements
  • Refactoring: drop L1bData class
  • Some convenience functions added

v0.2.1

08 Feb 13:27

Choose a tag to compare

v0.2.1 Pre-release
Pre-release

pip & PyPI

cryoswath is, now, installable - and available on PyPI. See the updated readme for install instructions.

directory structure

The directory and branch structure was refactored. The main branch, now, only includes the code. A new command line function cryoswath-init pulls the data and scripts branches, which contain the previous data and scripts directories, to set up an altimetry-project directory structure.

This allows to have one general virtual environment with the cryoswath installation and multiple projects using cryoswath in separated directories.

compatibility

cryoswath is, now, compatible back to python version 3.11 which is available in many repositories.


Full Changelog: v0.2.0...v0.2.1

v0.2.0

06 Feb 13:33

Choose a tag to compare

v0.2.0 Pre-release
Pre-release

There is less untouched than changed - I will not be able to provide an overview.