Skip to main content

Python-first, threaded StaMPS migration toolkit

Project description

pySTAMPS

pySTAMPS

Python-first STA(MPS)-style runtime for staged InSAR/PS processing, verification, and deterministic audit checks.

Run staged pipelines, inspect dataset progress, and validate outputs against a reference dataset.

Documentation Quick Start API Reference

Install

From source:

git clone git@github.com:sirbastiano/pystamps.git
cd pystamps
uv sync
uv run pystamps describe-backends

Editable install:

python -m pip install -e .
python -m pip install -e "[dev]"

cargo is required only for editable/source installs that build the Rust extension. Wheels from PyPI may avoid local compilation.

Run by stage

Set a local dataset path and always work on a writeable copy:

export DATASET_SOURCE=/path/to/original_dataset
export DATASET_COPY=/path/to/dataset_copy
cp -a "$DATASET_SOURCE" "$DATASET_COPY"

First, check status and verify what can execute:

uv run pystamps status --dataset "$DATASET_COPY"

Run a single stage or stage range:

uv run pystamps run --dataset "$DATASET_COPY" --start-step 1 --end-step 1      # stage 1 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 2 --end-step 2      # stage 2 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 3 --end-step 3      # stage 3 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 4 --end-step 4      # stage 4 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 5 --end-step 5      # stage 5 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 6 --end-step 6      # stage 6 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 7 --end-step 7      # stage 7 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 8 --end-step 8      # stage 8 only
uv run pystamps run --dataset "$DATASET_COPY" --start-step 1 --end-step 8          # full pipeline

Use --dry-run to preview actions without writing:

uv run pystamps run --dataset "$DATASET_COPY" --start-step 1 --end-step 8 --dry-run

Verify a run

export RUN_COPY=/path/to/run_copy
export GOLDEN_DATASET=/path/to/golden_dataset
uv run pystamps verify --run "$RUN_COPY" --golden "$GOLDEN_DATASET"

Stage-backend profile (optional)

uv run pystamps describe-backends

Create native-kernels.yaml and pass it with --config:

cat > native-kernels.yaml <<'YAML'
runtime:
  backend: auto
  stage2_kernel_backend: native
  stage2_native_threads: 0
  kernel_backend_overrides:
    stage2_grid_accumulate: native
    stage2_histogram: native
    stage2_topofit: native
    stage2_topofit_row_invariant: native
    stage2_topofit_coh_row_invariant: native
    stage4_edge_stats: native
    stage7_scla: native
    stage8_edge_noise: native
  io_workers: 8
  cpu_workers: 0
  stage7_chunk_ps: 100000
  stage8_chunk_edges: 200000
YAML

uv run pystamps --config native-kernels.yaml run --dataset "$DATASET_COPY" --start-step 2 --end-step 8

Use python backends for reference behavior in debugging, and native for the compiled Rust/CPU path.

Benchmarking and audit checkpoints

make benchmark
make audit

make audit reads the manifest in pystamps/data/audited_workflow_manifest.json.

Notes

  • Do not point docs or examples at a fixed repository dataset path.
  • Always treat outputs in your run tree as authoritative; avoid running on your only source copy.
  • Optional repo assets are kept for parity and offline reproducibility, not required for runtime usage.

Read the docs

Notebooks

  • notebooks/start_here.ipynb
  • notebooks/00_pystamps_beginner_walkthrough.ipynb

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

pystamps_insar-0.1.2.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

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

pystamps_insar-0.1.2-cp314-cp314-manylinux_2_35_x86_64.whl (541.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

File details

Details for the file pystamps_insar-0.1.2.tar.gz.

File metadata

  • Download URL: pystamps_insar-0.1.2.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pystamps_insar-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9d9f81e77faec2422671de830507b9bbd191bfe33fec44b390ae5f833045620c
MD5 e30698ad2aad42b4fb8f845647a071c1
BLAKE2b-256 cde14237e2b3de9f399d825ca1cce4477469ab97619a8c73d3c50fe57cebc085

See more details on using hashes here.

File details

Details for the file pystamps_insar-0.1.2-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pystamps_insar-0.1.2-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a8c2224371ee82c7fa11a3f074bdca5852fb5d24a39bd4c12757afeeceb17bd5
MD5 93cb36cf59ca1c845c110125436c5361
BLAKE2b-256 bd962079ed6c3145783865f6e16206b81565b3ed9c3305257b84c7e18a22525e

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