2nd-order robust temporal statistics of Earth observations
APACHE-2.0 License
This datacube-stats plug-in generates outputs to robustly understand variation in the landscape.
The core concept of our approach is to extend the classic concept of median absolute deviation to the multidimensional case by replacing the absolute value in the definition by a vector distance. There are many possible choices for vector distances and we choose three that are structurally different. These are the cosine distance, the Euclidean distance, and the Bray-Curtis distance.
The TernaryMAD
3-band output demonstrates a rainbow opal-like coloring of a cropping area which means the 3 bands are uncorrelated (a highly desirable property).
Visualising the BrayCurtisDistanceMAD
over the Menindee lakes, Australia.
The following temporal statistics models are available:
CosineDistanceMAD
(or SMAD
) generates a single-band output where the cosine distance MAD is computed through time for every pixel.
EuclideanDistanceMAD
(or EMAD
) generates a single-band output where the Euclidean distance MAD is computed through time for every pixel.
BrayCurtisDistanceMAD
(or BCMAD
) generates a single-band output where the Bray-Curtis distance MAD is computed through time for every pixel.
TernaryMAD
generates a 3-band output where the cosine distance MAD (Band 1), the Euclidean distance MAD (Band 2), the Bray-Curtis distance MAD (Band 3) is computed through time for every pixel. For this output, the distances are transformed by -log(x).
git clone https://github.com/daleroberts/datacube-2nd-order-stats
Some additional tools are contained in this repository:
job.pbs
is a PBS job script that reads the tiles
file (tiles specified in Australian Albers) and parallelises across multiple nodes.
retile
is a python script (used by job.pbs
) that reads the config.yaml
and generates a new tiling number scheme for datacube-stats
that is based on the tile_size
parameter in config.yaml
.
stat
is a python script that gives information about how many of the output tiles have been generated so far. It is useful for checking
the status of continental runs.
The unittests for the package can be found in model/test_.py
. You can use pytest
in the root of the repository to run them.
Roberts, D., Dunn, B., & Mueller, N. (2018, July). Open Data Cube Products Using High-Dimensional Statistics of Time Series. IEEE International Geoscience and Remote Sensing Symposium 2018. 8647-8650.
Roberts, D., Mueller, N., & Mcintyre, A. (2017). High-dimensional pixel composites from earth observation time series. IEEE Transactions on Geoscience and Remote Sensing, 55(11), 6254-6264.