Home

Change Detection and Time-Series for Python
An ultra-fast, cloud-native Python library for Remote Sensing Time-Series Analysis and Change Detection.
Get Started Browse Tutorials Benchmarks & Fidelity View on GitHub
Designed to overcome heavy dependencies on platforms like Google Earth Engine, CDTS handles the entire geospatial pipeline locally or on cloud clusters. It scales seamlessly from directly streaming satellite imagery via STAC APIs, to lazily scaling memory with Dask and Xarray, down to executing heavy statistical regression in native C++.
Quick Install
Pre-compiled wheels are provided for Windows, macOS, and Linux — no C++ compiler required. See the installation guide for GPU, macOS OpenMP, and from-source options.
Key Capabilities
-
Cloud-Native Data Fetching
Query AWS, Microsoft Planetary Computer, or other STAC-compliant servers for imagery, streaming only the exact pixels needed without full downloads.
-
High-Performance Computing
Core statistical fitting (OLS, Robust IRLS, Exact F-Statistics, Chi-Square CDFs) is fully written in C++ via
pybind11andEigen3for maximum single-core speed. -
Horizontal Scaling
Leverage
xarrayanddaskto lazily chunk data, distributing work across CPU threads or remote Dask workers to process large areas without memory exhaustion. -
Deep Learning & Foundation Models
Built on PyTorch,
cdts.aiprovides modern architectures for earth observation — U-TAE, TempCNN, Bi-Temporal Siamese CNNs — plus wrappers for Geospatial Foundation Models (ViT).
Algorithms
CDTS natively implements industry-standard algorithms for Time-Series Analysis, Change Detection, and Deep Learning:
| Algorithm | Category | What it does |
|---|---|---|
| LandTrendr | Change Detection | Landsat-based detection of trends in disturbance and recovery. |
| CCDC | Change Detection | Continuous Change Detection and Classification via robust harmonic modeling. |
| BFAST family | Change Detection | Iterative trend + season break detection, near-real-time monitoring (Monitor), and single-pass multi-breakpoint detection (Lite). |
| Tmask | Change Detection | Time-series cloud masking to dynamically find clouds and shadows missed by native QA bands. |
| TWDTW | Time-Series Analysis | Time-Weighted Dynamic Time Warping for pattern matching against reference curves. |
| Mann-Kendall | Time-Series Analysis | Non-parametric trend test and Theil-Sen slope estimation for greening/browning trends. |
| Phenology Extraction | Time-Series Analysis | Simultaneous phenological metrics from optimized curve-fitting models. |
| SOM | Time-Series Analysis | Batch Self-Organizing Maps for unsupervised clustering of spectral-temporal arrays. |
| U-TAE / LTAE | Deep Learning | Attention-based architectures for spatio-temporal satellite image classification. |
| Siamese Networks | Deep Learning | Bi-temporal CNNs for pixel-wise change detection. |
| GeoFoundationViT | Deep Learning | Wrappers for Vision Transformer geospatial foundation models. |
Supported Cloud Data Services
CDTS relies on the SpatioTemporal Asset Catalog (STAC) standard and can pull time-series data from virtually any modern satellite provider, including AWS Earth Search, Microsoft Planetary Computer, Brazil Data Cube, and Copernicus Data Space — plus Google Earth Engine integration.
Next Steps
-
Install CDTS
Get up and running with pip, Docker, or a from-source build.
-
Follow a Tutorial
Full walkthroughs with theory, code, and validation against reference implementations.
-
Benchmarks & Validation
Explore empirical fidelity tests against original IDL, MATLAB, and R tools, plus multi-core CPU scaling.
-
Use the CLI
Run every core algorithm as a
cdtssubcommand from bash scripts, cron jobs, or HPC environments. -
Browse the API
Full reference for every public class and function in the
cdtspackage.