Multi-seasonal remote sensing analysis suite: composites, SAR preprocessing, time series analytics, and land cover classification with Google Earth Engine
Project description
Ndvi2Gif: Multi-Seasonal Remote Sensing Index Composites
Richter's stained glass in Cologne Cathedral. Inspiration for this library.
Ndvi2Gif is a Python library for multi-temporal remote sensing analysis with Google Earth Engine. It provides seasonal compositing, 40+ vegetation and environmental indices, SAR preprocessing, time series analytics, land cover classification, and hydroperiod analysis — all server-side, without downloading raw data.
Built on top of Google Earth Engine and geemap. Adapted and extended through its use in the eLTER and SUMHAL projects.
📚 Documentation
https://digdgeo.github.io/Ndvi2Gif/
✨ What's New in v1.2.0
New module: HydroperiodAnalyzer — GEE-native flood duration analysis per pixel using midpoint temporal weighting, entirely server-side. Supports multi-year cycles, anomaly detection, and IRT metrics. Methodology based on phydroperiod.
Minor improvements: SCL-based cloud masking for Sentinel-2 (scl_mask=True by default), numpy 2.x support. See CHANGELOG for details.
Modules
| Module | Description |
|---|---|
NdviSeasonality |
Core engine: seasonal compositing, 40+ indices, 7 sensors, flexible ROI input |
HydroperiodAnalyzer |
Wetland flood duration analysis (days/year) with multi-year anomaly detection |
TimeSeriesAnalyzer |
Trend detection (Mann-Kendall, Sen's slope), phenology metrics, dashboards |
S1ARDProcessor |
Sentinel-1 SAR preprocessing: terrain correction, speckle filtering |
LandCoverClassifier |
Supervised (RF, SVM, CART) and unsupervised (K-means, LDA) classification |
Installation
pip install ndvi2gif
conda install -c conda-forge ndvi2gif
Quick Start
import ee
from ndvi2gif import NdviSeasonality
ee.Authenticate()
ee.Initialize()
# Monthly NDVI composites from Sentinel-2 (2018–2024)
ndvi = NdviSeasonality(
roi=your_roi, sat='S2', periods=12,
start_year=2018, end_year=2024,
key='percentile', percentile=85, index='ndvi'
)
ndvi.get_gif(name='ndvi_evolution.gif')
Yes, it makes nice GIFs — but it's much more than that.
Crop pattern dance around Los Palacios y Villafranca (SW Spain)
What you can do with it
- Compute pixel-wise statistics over any region and time span — seasonal medians, percentiles, multi-year aggregations
- Monitor 40+ indices across Sentinel-1/2/3, Landsat (4–9), MODIS, ERA5-Land, and CHIRPS
- Analyse wetland hydroperiod and multi-year flood anomalies with
HydroperiodAnalyzer - Detect trends and phenology (SOS, EOS, POS, Length of Season) with
TimeSeriesAnalyzer - Classify land cover with multi-temporal feature stacks and Random Forest, SVM, or K-means
- Preprocess Sentinel-1 SAR with terrain correction and speckle filtering
- Export to GeoTIFF, Google Drive, or Earth Engine Assets
- Use any ROI: shapefile, GeoJSON, drawn geometry, eLTER DEIMS ID, Sentinel-2 tile, or Landsat path/row
Supported Sensors
Sentinel-1 (SAR) · Sentinel-2 SR · Sentinel-3 OLCI · Landsat 4–9 SR · MODIS MOD09A1 · ERA5-Land · CHIRPS
Contributing
Bug reports and feature requests: GitHub Issues
Pull requests are welcome. See CONTRIBUTING.md for guidelines — it includes step-by-step instructions for adding new indices and datasets.
Citation
@software{garcia_diaz_ndvi2gif_2020,
author = {García Díaz, Diego},
title = {ndvi2gif: Multi-Seasonal Remote Sensing Analysis Suite},
url = {https://github.com/Digdgeo/Ndvi2Gif},
version = {1.2.0},
year = {2020}
}
Acknowledgments
Special thanks to Qiusheng Wu for his invaluable work in developing and promoting open-source geospatial software, to the Google Earth Engine team, and to the broader open-source geospatial community.
License
MIT — see LICENSE.txt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ndvi2gif-1.2.2.tar.gz.
File metadata
- Download URL: ndvi2gif-1.2.2.tar.gz
- Upload date:
- Size: 115.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f73a6a1780c06d5f70f63e577434a6ed0065f4ac4d70c3820059ded73b1cb8e
|
|
| MD5 |
0c8f7fe14493a56d6518259bd48b7f5d
|
|
| BLAKE2b-256 |
4f5dd0805a6a224324c44dc99b22bb4b9a219abc69b070f6d8527b8de6d3f444
|
File details
Details for the file ndvi2gif-1.2.2-py3-none-any.whl.
File metadata
- Download URL: ndvi2gif-1.2.2-py3-none-any.whl
- Upload date:
- Size: 100.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d81eb163d5da2388902f1210fdfeac30cbd8c306548e566c68e6c76118029452
|
|
| MD5 |
8570265f6fdef56f51103014375048e4
|
|
| BLAKE2b-256 |
aee4783164915512e1c0e922de0c59488f1347136768040f1a41147aaeed1030
|