Skip to content

V1.0.0#23

Merged
sirbastiano merged 8 commits into
mainfrom
v1.0.0
Apr 28, 2026
Merged

V1.0.0#23
sirbastiano merged 8 commits into
mainfrom
v1.0.0

Conversation

@sirbastiano

Copy link
Copy Markdown
Collaborator

Summary

This PR consolidates the sarpyx CLI around the WorldSAR entrypoint, adds composable validation workflows for Sentinel-1, TerraSAR-X, and NISAR, refreshes the H5 validation reporting pipeline, and tightens packaging/runtime/CI so the published artifacts and container images reflect the supported workflow.

What changed

CLI and package cleanup

  • make sarpyx point directly to sarpyx.cli.worldsar:main
  • remove deprecated standalone console entrypoints and legacy CLI modules from the package surface
  • move DIM update logic into sarpyx.snapflow.dim_updater
  • expose snapflow as a public package and keep sarpyx.snap as an alias
  • make sarpyx.processor.data and sarpyx.processor.utils use explicit lazy exports instead of wildcard imports
  • replace backup/legacy-named Python modules with importable package modules

Validation workflows

  • add make validate-sentinel, make validate-tsx, make validate-nisar, make validate-all, and make validate
  • add input/path guards for each mission and align target naming/output conventions
  • allow Sentinel validation to reuse an existing *_TC.dim and skip preprocessing when available
  • add Sentinel smoke-test controls for swath, burst range, GPT settings, and single-band terrain correction
  • add deterministic TerraSAR-X subset generation before tiling/validation
  • add shared NISAR validation through the WorldSAR tiling/H5 validation path
  • make Sentinel validation inspect tile output, cut reports, and generated validation PDFs

WorldSAR processing/reporting

  • expand sarpyx.cli.worldsar into the primary CLI surface with shared argument registration and preprocessing/tiling controls
  • improve product WKT resolution for Sentinel and TerraSAR-X
  • make expected coverage derive from the processed TC.dim footprint when appropriate
  • allow out-of-bounds edge tiles to be skipped instead of aborting the run
  • improve H5 validation/report helpers, tile geometry extraction, expected-band resolution, and dashboard/map aggregation
  • redesign the PDF output into a 2-page report:
    • page 1: summary tables
    • page 2: footprint analysis before/after terrain correction
  • remove panel subtitles and reduce layout collisions in the final rendered report

Packaging, Docker, and CI/CD

  • modernize packaging metadata in pyproject.toml
  • stop bundling unwanted content into wheels and add wheel-content audits in CI
  • switch build/test flows to uv
  • add a dedicated Python CI workflow
  • rework Docker CI to build once, run smoke tests, smoke-test Jupyter startup, and only push the tested image
  • update the container/runtime to SNAP 13
  • require an explicit mounted .geojson grid instead of generating one automatically at container startup
  • simplify Docker/runtime scripts and remove Singularity support from the repo

Docs and tests

  • refresh installation/developer docs for the new uv, Docker, and grid-handling workflow
  • regenerate API/docs artifacts
  • add regression coverage for:
    • TerraSAR-X WKT/product resolution
    • DIM band merge/update behavior
    • H5 validation/report helpers
    • public package exports
    • Docker smoke behavior

Breaking / behavioral changes

  • sarpyx is now the single supported console entrypoint; deprecated per-command console scripts are removed
  • Docker/container runs now require a mounted .geojson grid or an explicit valid GRID_PATH; automatic grid generation on startup is removed
  • the H5 validation report is now 2 pages instead of 3

Verification

  • make -n validate-sentinel validate-tsx validate-nisar validate-all
  • make validate-sentinel SENTINEL_VALIDATE_GRID=grid/grid_10km.geojson
  • visual inspection of the generated 2-page validation PDF after regeneration

@sirbastiano sirbastiano merged commit dabe9d1 into main Apr 28, 2026
0 of 2 checks passed
@sirbastiano sirbastiano deleted the v1.0.0 branch April 28, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant