  Hyperspectral images provide detailed spectral information through hundreds
of (narrow) spectral channels (also known as dimensionality or bands) with
continuous spectral information that can accurately classify diverse materials
of interest. The increased dimensionality of such data makes it possible to
significantly improve data information content but provides a challenge to the
conventional techniques (the so-called curse of dimensionality) for accurate
analysis of hyperspectral images. Feature extraction, as a vibrant field of
research in the hyperspectral community, evolved through decades of research to
address this issue and extract informative features suitable for data
representation and classification. The advances in feature extraction have been
inspired by two fields of research, including the popularization of image and
signal processing as well as machine (deep) learning, leading to two types of
feature extraction approaches named shallow and deep techniques. This article
outlines the advances in feature extraction approaches for hyperspectral
imagery by providing a technical overview of the state-of-the-art techniques,
providing useful entry points for researchers at different levels, including
students, researchers, and senior researchers, willing to explore novel
investigations on this challenging topic. In more detail, this paper provides a
bird's eye view over shallow (both supervised and unsupervised) and deep
feature extraction approaches specifically dedicated to the topic of
hyperspectral feature extraction and its application on hyperspectral image
classification. Additionally, this paper compares 15 advanced techniques with
an emphasis on their methodological foundations in terms of classification
accuracies. Furthermore, the codes and libraries are shared at
https://github.com/BehnoodRasti/HyFTech-Hyperspectral-Shallow-Deep-Feature-Extraction-Toolbox.
