SpecHomo is a Python package for spectral homogenization of multispectral satellite data, i.e., for the transformation of the spectral information of one sensor into the spectral domain of another one. This simplifies workflows, increases the reliability of subsequently derived multi-sensor products and may also enable the generation of new products that are not possible with the initial spectral definition.
SpecHomo offers different machine learning techniques for the prediction of the target sensor spectral information. So far, multivariate linear regression, multivariate quadratic regression and random forest regression are implemented. To allow easy comparisons to the most simple homogenization approach, linear spectral interpolation is also implemented. The spechomo package was developed within the context of the GeoMultiSens project. Thy underlying algorithm was published in Scheffler et al. 2020.
SpecHomo aims at a user group of remote sensing experts interested in generating analysis ready data or performing time series analyses. The package is freely available from the Python package index or conda-forge.
In contrast to previous spectral homogenization techniques, SpecHomo not only allows to apply a global (band-wise) transformation with the same prediction coefficients for all gray values of a spectral band. It also distinguishes between individual spectral characteristics of different land-cover types by using specifically trained prediction coefficients for various spectral clusters. This increases the accuracy of the predicted spectral information.
Apart from that, SpecHomo can not only be used to homogenize already similar spectral definitions - it also allows to predict unilaterally missing bands such as the red edge bands that are not present in Landsat-8 data.
Satellite data (surface reflectance) acquired by following sensors may be used as source or target sensor:
- Landsat-5 TM
- Landsat-7 ETM+
- Landsat-8 OLI
- Sentinel-2A MSI7Li>
- Sentinel-2B MSI7li>
- RapidEye-5 MSI
The repository includes pre-trained classifiers but also provides functionality to create custom classifiers, e.g., for specific geographical regions.