Skip to content

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 01:13
· 38 commits to main since this release

Bug-fix release for large Google Earth Engine requests (#134). gse could return duplicated mosaics for ROIs above about 262,144 pixels, and every GEE-backed model could gain a fill-value row or column, or lose a real one, where an oversized request was split. If you exported gse embeddings, or grid outputs from on-the-fly models, for BBox ROIs above that size, re-export them.

Fixed

  • gse no longer returns duplicated mosaics for large ROIs. gse used to tile oversized requests itself: it sized them with an estimate that undercounts EPSG:3857 pixels by about 1/cos(lat), cut overlapping tiles, and joined them with a plain concatenation. Results came back duplicated at any latitude: a near-complete copy of the ROI in each quadrant at high latitude, about 2.2× at 35–38°N and 500 m. Pooled vectors were biased the same way, and some requests raised a ValueError. gse now makes a single provider request and leaves the splitting to the provider.
  • GEE requests above the sampleRectangle pixel limit now stitch exactly. The provider's pixel-limit fallback cut requests at the Mercator midpoint and then trimmed or padded each seam toward an estimated length, which could insert a fill-value row/column or drop a real one. Cuts now fall on pixel edges of the common EPSG:3857 grid, so a split request reproduces the single-request grid exactly. Oversized BBox requests are also split up front instead of after a failed request.
    • Who was affected: gse and all on-the-fly models (single-image, Sentinel-1 and multi-frame fetches share this path), for a BBox ROI above 262,144 pixels at scale_m, roughly 5 km × 5 km at 10 m. Not every such request was hit; it depended on where the cut landed. For on-the-fly models a seam showed up as a black line in the model input, with the image beyond it shifted by one pixel. That perturbed grid embeddings near the seam and slightly biased pooled vectors.
    • Not affected: PointBuffer ROIs (an oversized one raises an error instead), BBox ROIs under the limit, tessera, copernicus_embed, user-provided data (get_embedding_from_data), and model-side input_prep="tile" tiling.

Deprecated

  • RS_EMBED_GSE_MAX_PIXELS no longer has any effect and emits a FutureWarning when set; it will be removed in a future release. It only served as a workaround for the gse duplication above.