capstone-coal / capstone-coal.github.io

COAL Project Website
https://capstone-coal.github.io/
Apache License 2.0
3 stars 1 forks source link

Add Classification documentation #32

Open lewismc opened 6 years ago

lewismc commented 6 years ago

We should document the various classification options available within COAL. These are

ghost commented 6 years ago

Currently only SAM is implemented and exposed by COAL. The current implementation of COAL's mineral classifier:

1) calls SPy to calculate spectral angles (documented here and here and defined here) which range from 0 (most confident) to PI (least confident), 2) normalizes these confidences from 0 (least confident) to 1 (most confident), 3) retrieves the index of the library class with the highest confidence, and 4) stores the classification if it is above the optional threshold.

The others algorithms are supported by SPy, although its developer has recommended against using the MLP implementation.

lewismc commented 6 years ago

It appears that GML can also not be used appropriately

Classification and feature extraction methods have been commonly used for many years for the mapping of minerals and vegetative cover of multispectral data sets. However, conventional classification methods, such as a Gaussian Maximum Likelihood algorithm, cannot be applied to hyperspectral data due to the high dimensionality of the data.

We 'should' however still provide the functionality for a user to choose which classification they wish. For example, there is still a variable degree of inaccuracy with SAM. This is well documented in literature and improved classification techniques have been a significant aspect of study with the hyper spectral remote sensing community in the last decade or so. Additionally, we will most likely wish to create a DNN at some stage which has been trained on improving identification of the mineral subset we are interested in.

ghost commented 6 years ago

Another option would be to allow the classifier to take a callback argument in which the user can provide their own algorithm.

lewismc commented 6 years ago

+1, I think a parameter addition in the primary MineralClassification function call would be suitable.

ghost commented 6 years ago

I have created issue https://github.com/capstone-coal/pycoal/issues/122 for implementation of the callback function. This issue can stay open to document SAM and any future algorithms on the website. The most natural place to detail the algorithm I described above is currently the Mineral Classification usage documentation. Another option would be a new "Algorithms" heading.