Skip to content

Home

CDTS Logo

Change Detection and Time-Series for Python

Build and Publish Wheels Tests Docs PyPI version

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

pip install cdts

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 pybind11 and Eigen3 for maximum single-core speed.

  • Horizontal Scaling


    Leverage xarray and dask to 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.ai provides 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.

    Installation

  • Follow a Tutorial


    Full walkthroughs with theory, code, and validation against reference implementations.

    Tutorials

  • Benchmarks & Validation


    Explore empirical fidelity tests against original IDL, MATLAB, and R tools, plus multi-core CPU scaling.

    Benchmarks Suite

  • Use the CLI


    Run every core algorithm as a cdts subcommand from bash scripts, cron jobs, or HPC environments.

    CLI Reference

  • Browse the API


    Full reference for every public class and function in the cdts package.

    API Reference