This repository implements a workflow for multi-temporal land cover change detection using Morton J. Canty’s Omnibus test based on the complex Wishart distribution. The method is applied to Sentinel-1 GRD SAR data processed in Google Earth Engine.
The current case study focuses on the Bhindawas Wildlife Sanctuary region, utilizing descending-pass acquisitions at 10 m spatial resolution for the period January 2020 to December 2021.
The Omnibus test assumes that multi-look SAR covariance matrices follow a complex Wishart distribution. This distribution is the complex multivariate generalization of the chi-squared distribution and is characterized by:
-
$p$ : Dimensionality (number of polarization channels) -
$n$ : Number of looks (averaging factor) -
$\Sigma$ : Complex variance–covariance matrix
The Omnibus test serves as a Likelihood Ratio Test (LRT). It evaluates whether a sequence of covariance matrices originates from the same distribution (Null Hypothesis: no change) or if at least one change has occurred (Alternative Hypothesis).
Let there be
For numerical stability, the test is often expressed in its logarithmic form:
Where:
-
$Q$ = Omnibus test statistic -
$n, p$ = Wishart distribution parameters -
$k$ = Number of observations $X_i = n \hat{\Sigma}_i$ -
$\hat{\Sigma}_i$ = Estimated covariance matrix at time$i$
To pinpoint the exact timing of changes, the Omnibus test is decomposed into a sequence of statistics,
For each time index
Null Hypothesis (
Alternative Hypothesis (
The LRT statistic
The overall Omnibus statistic
-
If
$R_j \approx 1$ ($\ln R_j \approx 0$ ): The covariance at time$j$ is consistent with the pooled covariance of the previous observations. No change. -
If
$R_j$ is small ($\ln R_j$ is large negative): Separating$X_j$ from the previous group explains the data better. Change detected at time$j$ .
- Initialize the time index.
-
Test Homogeneity: Apply the Omnibus statistic (
$Q$ ) across the entire time series. -
Check Significance: * If the Null Hypothesis is accepted, stop (no change).
- If rejected (change detected), proceed to step 4.
-
Localize Change: Apply the stepwise test using
$R_j$ to find the first break point. - Iterate: Update the start interval and repeat to find subsequent changes.
- Visualize: Generate the output maps.
The workflow produces four distinct change detection products:
-
Binary Map (
bmap) Indicates the presence of change between consecutive intervals and the direction of scatter (positive/negative). -
Frequency Map (
fmap) Counts the total number of times a pixel has undergone a statistically significant change during the observation period. -
Cumulative Map (
cmap) Identifies the time interval of the most recent change. -
Segmentation Map (
smap) Identifies the time interval of the first detected change.