Skip to content

daleroberts/datacube-2nd-order-stats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2nd-Order Robust Temporal Statistics of Earth Observations

License Release

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.

Example Outputs

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.

Temporal Statistics

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).

Installation

git clone https://github.com/daleroberts/datacube-2nd-order-stats

Continental-scale or large area

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.

Testing

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.

References

About

2nd-order robust temporal statistics of Earth observations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages