← Back to all sparks
S

sits

INFRA · APIS
Velocity0.0

Satellite Image Time Series Analysis for Earth Observation Data Cubes

An R package for satellite time series just grew a Python API.

earth-observationremote-sensingmachine-learningr-packagegeospatialdata-cubes
Current state
sits classifies satellite image time series — building data cubes from cloud archives, training deep learning models on them, and producing land-cover maps. The releases here are dense feature lists in a steady 1.5.x line, and two themes recur in every one: more source collections wired in, and more of the classification pipeline made parallel or chunked. Version 1.5.3 added pysits, a Python API onto the same engine.
Where it's heading
The package is positioning itself as the interface layer to Earth observation archives rather than as an algorithm library. Each release absorbs another provider — Planetary Computer, Digital Earth Africa and Australia, CDSE, TERRASCOPE, Open Geo Hub, PLANET — so the differentiator is coverage and the uniform cube abstraction over it. The Python API extends the same logic to the language most of that community actually works in. Alongside, the work is increasingly about scale: chunk parallelisation, multicores sampling, GPU classification, WebGL rendering.
Prediction
With collections still being added release over release, expect more providers and continued performance work on the classification and regularisation paths. The open question the entries do not answer is how far pysits tracks the R API, since it appears once and is not mentioned again in later releases.

Recent moves

  1. 7mo ago

    SNIC segmentation, imputation helpers and QGIS palette export

    A broad additive release: a new sits_snic() segmentation function, three imputation helpers, a confusion-matrix plot type in sits_accuracy(), QGIS colour palette export extended to vector cubes, and a resolution parameter for mosaics. Characteristic of the 1.5.x line — many small surface additions, no change to the pipeline's shape.

    View source ↗
  2. 8mo ago

    One-line hotfix for a CRAN compiler requirement

    A single substitution of std::isfinite for arma::is_finite, the same CRAN policy change other Armadillo-linked packages absorbed around this time. No user-visible effect.

    View source ↗
  3. 11mo ago

    Hotfix: TAE embeddings, MPC token handling, texture divide-by-zero

    The follow-up to 1.5.3, released seconds after it in the feed. Documentation passes aside, it updates the TAE model to make better use of embeddings and fixes a division-by-zero in sits_texture() and token management in sits_cube_copy() — the kind of defects a large feature release surfaces immediately.

    View source ↗
  4. 11mo ago

    A Python API arrives, alongside SAR texture measures

    ⚡ SPARK

    The release that stops sits being an R-only tool: pysits exposes the engine to Python. It ships beside the usual collection additions — HLS from Planetary Computer, TERRASCOPE World Cover and World Cereal, Open Geo Hub Landsat — and SAR texture measures built on co-occurrence matrices.

    View source ↗
  5. 1y ago

    Exclusion masks, multiple tiling systems and faster segment classification

    Adds exclusion_mask to classification and smoothing, supports MGRS and Brazil Data Cube grids in regularisation, handles cubes containing NA values, and implements the Sakoe-Chiba band for DTW. The tiling-system work is the notable part: it lets the same pipeline run against national grids rather than only the global one.

    View source ↗
  6. 1y ago

    Four more archives wired in, including Digital Earth Africa

    ESA World Cover, Digital Earth Australia, Digital Earth Africa geomedians and PLANET Mosaic products all become available through the same cube interface, and classification gains DEM base cubes. The clearest single illustration of the coverage strategy that runs through this whole window.

    View source ↗