Skip to content

v0.1.2

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Apr 06:09

This release rolls up upstream-alignment work and correctness fixes that may change default embedding behavior for some model adapters compared with 0.1.1. Users who need strict reproducibility across versions should review the model-specific changes below and pin explicit options where needed.

Changed

  • Standardised NumPy docstrings across all public functions and classes in export.py, inspect.py, writers.py, and the tools/ and providers/ layers. No behaviour changes.

Added

  • Versioned documentation with a version selector powered by mike and MkDocs Material. Each release tag deploys a pinned version; pushes to main update a dev alias. The mike, mkdocs-material, and pymdown-extensions packages are now included in the [dev] optional group.

  • load_export(path) reader API that loads any export produced by export_batch(...) — both combined (single file) and per-item (directory) layouts — and returns a structured ExportResult. Failed points are NaN-filled rather than dropped, partial model runs are surfaced via status="partial", and ExportResult.embedding(model) provides a typed shortcut to the embedding array.

Changed

  • anysat now defaults grid output to native dense features while keeping pooled output on patch-grid pooling by default, with new AnySat-specific switches for grid_feature_mode (dense/patch) and pooled_source (patch/tile).
  • galileo now aligns more closely with the upstream NASA Harvest runtime: grid output prefers Galileo's own patch-level token averaging path, automatic NDVI derivation has been removed, and the default normalization mode is now none with an official_stats option for upstream pretraining statistics.
  • satvision_toa now uses the vendored official SatVision runtime as its only model path and narrows provider-side preprocessing to the default MODIS proxy route (MOD09GA reflectance + MOD21A1D thermal proxy). Custom collections are no longer treated as implicit GEE fallbacks; callers should pass calibrated input_chw directly for non-default inputs.

Fixed

  • device="auto" now correctly selects MPS on Apple Silicon instead of silently falling back to CPU. Follows the PyTorch-recommended priority (cuda > mps > cpu), giving an approximately 4x speedup on Apple M-series hardware for all API calls that use the default device.
  • galileo month overrides now use the official zero-based month indexing expected by Galileo embeddings, fixing the previous one-month offset in RS_EMBED_GALILEO_MONTH.
  • satvision_toa grid output now consistently extracts spatial features from the official-style SwinV2 path instead of misinterpreting pooled vectors as token grids, and the tightened fetch path records explicit proxy provenance in metadata.
  • scalemae now follows the official feature-extraction path more closely: the adapter unwraps common rshf wrappers to call the nested ScaleMAE backbone's forward_features(...) instead of falling back to wrapper forward(), uses ImageNet eval preprocessing (Resize(short side) + CenterCrop + Normalize) with effective post-preprocess input_res_m, and fixes the declarative input metadata to reflect raw Sentinel-2 SR inputs plus adapter-managed preprocessing.
  • satmaepp and satmaepp_s2_10b now align more closely with the official SatMAE++ preprocessing paths. The RGB adapter now defaults to rgb channel order for the published fMoW-RGB checkpoint and no longer pre-resizes provider/input overrides before the official eval transform, while the Sentinel-2 10-band adapter no longer sanitizes inputs with adapter-side clip / nan_to_num before the source-style SentinelNormalize -> ToTensor -> Resize(short side) -> CenterCrop pipeline.