Skip to main content

Multipurpose satellite change detection (deforestation, mining, urbanisation, floods, burns, water, urban growth) via Google Earth Engine or Microsoft Planetary Computer.

Project description

satchange

Multipurpose satellite change detection in pure Python. Map deforestation, mining, urbanisation, floods, burns, surface-water change and multi-epoch urban growth anywhere on Earth from free Sentinel-1/2 and Landsat data — via Google Earth Engine or Microsoft Planetary Computer (no account needed). Export georeferenced GeoTIFFs, quick-look PNGs, statistics, and print-ready A4 maps.

Install

Heavy dependencies are optional extras, so the install stays lean:

pip install 'satchange[gee]'       # Google Earth Engine backend (free account)
pip install 'satchange[mpc,maps]'  # Planetary Computer + maps (no account)
pip install 'satchange[all]'       # everything

Quick start

# Deforestation around a coordinate, with a finished map
satchange -s deforestation --lat -3.333 --lon 122.25 --radius 6 --map

# Flood extent from Sentinel-1 SAR — no Earth Engine account needed
satchange -s flood --lat 27.2 --lon 68.3 \
    --pre 2022-07-01:2022-07-25 --post 2022-08-20:2022-09-10 --backend mpc

# Urban growth timing across 2010/2015/2020 (Landsat 5/8/9)
satchange -s urban-trend --lat -6.30 --lon 107.15 --map

# List everything
satchange --list

Each run writes a self-contained output/<run-id>/ folder containing the PNG, GeoTIFF, statistics JSON, metadata, and any maps.

Scenarios

Scenario Method Sensor
deforestation NDVI loss Sentinel-2
urbanization Built-up gain — NDBI (default), UI, BU, IBI, or thermal NDISI/EBBI via --method Sentinel-2 / Landsat
water NDWI change Sentinel-2
burn dNBR severity Sentinel-2
mining SIRAD radar temporal + NDVI loss Sentinel-1 + S2
flood SAR water extent (event vs baseline) Sentinel-1
urban-trend NDBI at 3 epochs → RGB growth-timing map Landsat 5/8/9
coastline Sea boundary + shoreline change (erosion/accretion) + retreat rate m/yr S1 / S2 / Landsat
transit-access % population with access to public transport (SDG 11.2.1) WorldPop + OSM

Two backends

--backend Data source Account?
gee (default) Google Earth Engine free account + earthengine authenticate
mpc Microsoft Planetary Computer (STAC) none — streams COGs, processes locally

Optical scenarios build cloud-masked median composites; radar scenarios auto-select the Sentinel-1 orbit with coverage. The AOI is a square centred on your coordinate. Landsat 7 is skipped (SLC-off gaps).

Make maps from a finished run

satmap output/<run-id>            # render A4 map sheets offline (no GEE)

Map sheets include an OpenStreetMap basemap, the change layer, legend, a statistics panel, a location inset, coordinate grid, scale bar and north arrow.

License

MIT © Firman Hadi. Data: Copernicus Sentinel (ESA) and Landsat (USGS/NASA), via Google Earth Engine or Microsoft Planetary Computer.

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

satchange-0.1.24.tar.gz (78.9 kB view details)

Uploaded Source

Built Distribution

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

satchange-0.1.24-py3-none-any.whl (74.4 kB view details)

Uploaded Python 3

File details

Details for the file satchange-0.1.24.tar.gz.

File metadata

  • Download URL: satchange-0.1.24.tar.gz
  • Upload date:
  • Size: 78.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for satchange-0.1.24.tar.gz
Algorithm Hash digest
SHA256 fc9d6d017a93f66bbdf592c54d1d601b107decd95b2be92b373c397f0b951c4d
MD5 185abeba780fd311d97a8e7ff966f34f
BLAKE2b-256 9c81d076eecbd585dc6b215b0960e332a76d4c2161aed176aad816a1ed376a9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for satchange-0.1.24.tar.gz:

Publisher: publish.yml on firmanhadi21/rs-change-detection

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file satchange-0.1.24-py3-none-any.whl.

File metadata

  • Download URL: satchange-0.1.24-py3-none-any.whl
  • Upload date:
  • Size: 74.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for satchange-0.1.24-py3-none-any.whl
Algorithm Hash digest
SHA256 62457ba613f6ca1114ecca2ecfe64a0c0d1a398a656b5163e490b2f9a1cfe786
MD5 825392a72c45301c2b605d3341b337f8
BLAKE2b-256 5300a0aa0d87fc0a6367f123e528043bc5f3779de195f59b65b4658950e79a71

See more details on using hashes here.

Provenance

The following attestation bundles were made for satchange-0.1.24-py3-none-any.whl:

Publisher: publish.yml on firmanhadi21/rs-change-detection

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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