hylite
An open-source python toolbox for hyperspectral data preprocessing, correction, projection and analysis.
Tutorials
A variety of interactive notebook tutorials are available for hylite:
Basic:
Advanced:
Publications
If you use hylite for your work then please cite:
- Thiele, S. T., Lorenz, S., et al., (2021). Multi-scale, multi-sensor data integration for automated 3-D geological mapping using hylite. Ore Geology Reviews. https://doi.org/10.1016/j.oregeorev.2021.104252
Other relevant papers include:
Thiele, S.T., Bnoulkacem, Z., Lorenz, S., Bordenave, A., Menegoni, N., Madriz, Y., Dujoncquoy, E., Gloaguen, R. and Kenter, J., 2021. Mineralogical Mapping with Accurately Corrected Shortwave Infrared Hyperspectral Data Acquired Obliquely from UAVs. Remote Sensing, 14(1), p.5. https://doi.org/10.3390/rs14010005
Thiele, S. T., Lorenz, S., Kirsch, M., & Gloaguen, R. (2021). A Novel and Open-Source Illumination Correction for Hyperspectral Digital Outcrop Models. IEEE Transactions on Geoscience and Remote Sensing. https://doi.org/10.1109/TGRS.2021.3098725
Lorenz, S., Thiele, S.T., Kirsch, M., Unger, G., Zimmermann, R., Guarnieri, P., Baker, N., Sørensen, E.V., Rosa, D. and Gloaguen, R., 2022. Three-Dimensional, Km-Scale Hyperspectral Data of Well-Exposed Zn–Pb Mineralization at Black Angel Mountain, Greenland. Data, 7(8), p.104. https://doi.org/10.3390/data7080104
Guarnieri, P., Thiele, S.T., Baker, N., Sørensen, E.V., Kirsch, M., Lorenz, S., Rosa, D., Unger, G. and Zimmermann, R., 2022. Unravelling the Deformation of Paleoproterozoic Marbles and Zn-Pb Ore Bodies by Combining 3D-Photogeology and Hyperspectral Data (Black Angel Mine, Central West Greenland). Minerals, 12(7), p.800. https://doi.org/10.3390/min12070800
Kirsch, M., Mavroudi, M., Thiele, S., Lorenz, S., Tusa, L., Booysen, R., Herrmann, E., Fatihi, A., Möckel, R., Dittrich, T. and Gloaguen, R.,
- Underground hyperspectral outcrop scanning for automated mine‐face mapping: The lithium deposit of Zinnwald/Cínovec. The Photogrammetric Record, 38(183), pp.408-429. https://doi.org/10.1111/phor.12457
Documentation
Almost all of the modules, classes and functions in hylite have docstrings. These can be viewed in a notebook or python console using the help(...) function or by typing "?" after a class or function name. Searchable documentation is also available online.
1""" 2An open-source python toolbox for hyperspectral data preprocessing, correction, projection and analysis. 3 4----------- 5 6### Tutorials 7 8A variety of interactive notebook tutorials are available for *hylite*: 9 10Basic: 11- [Introduction tutorial using GoogleColab](https://drive.google.com/drive/folders/1hkr4gtP1OY_PIK7cynl3dWd3sYi_9s5F?usp=drive_link) 12- [Another introduction from the VGC conference](https://drive.google.com/drive/folders/1_gDRMrccNG3OMyIPYy0mkpkbN6nn92OW?usp=sharing) 13 14Advanced: 15- [Building corrected hyperclouds](https://tinyurl.com/Maamorilik01) 16- [Minimum wavelength mapping](https://tinyurl.com/Maamorilik02) 17- [Visualising hyperclouds](https://tinyurl.com/Maamorilik03) 18 19---------- 20 21### Publications 22 23If you use hylite for your work then please cite: 24 25* Thiele, S. T., Lorenz, S., et al., (2021). Multi-scale, multi-sensor data integration for automated 3-D geological 26mapping using hylite. *Ore Geology Reviews*. https://doi.org/10.1016/j.oregeorev.2021.104252 27 28Other relevant papers include: 29 30* Thiele, S.T., Bnoulkacem, Z., Lorenz, S., Bordenave, A., Menegoni, N., Madriz, Y., Dujoncquoy, E., Gloaguen, R. and Kenter, J., 2021. 31Mineralogical Mapping with Accurately Corrected Shortwave Infrared Hyperspectral Data Acquired Obliquely from UAVs. 32*Remote Sensing*, 14(1), p.5. https://doi.org/10.3390/rs14010005 33 34* Thiele, S. T., Lorenz, S., Kirsch, M., & Gloaguen, R. (2021). 35A Novel and Open-Source Illumination Correction for Hyperspectral Digital Outcrop Models. *IEEE Transactions on 36Geoscience and Remote Sensing*. https://doi.org/10.1109/TGRS.2021.3098725 37 38* Lorenz, S., Thiele, S.T., Kirsch, M., Unger, G., Zimmermann, R., Guarnieri, P., Baker, N., 39Sørensen, E.V., Rosa, D. and Gloaguen, R., 2022. Three-Dimensional, Km-Scale Hyperspectral Data of Well-Exposed Zn–Pb 40Mineralization at Black Angel Mountain, Greenland. *Data*, 7(8), p.104. https://doi.org/10.3390/data7080104 41 42* Guarnieri, P., Thiele, S.T., Baker, N., Sørensen, E.V., Kirsch, M., Lorenz, S., Rosa, D., Unger, G. and Zimmermann, R., 2022. 43Unravelling the Deformation of Paleoproterozoic Marbles and Zn-Pb Ore Bodies by Combining 3D-Photogeology and 44Hyperspectral Data (Black Angel Mine, Central West Greenland). *Minerals*, 12(7), p.800. https://doi.org/10.3390/min12070800 45 46* Kirsch, M., Mavroudi, M., Thiele, S., Lorenz, S., Tusa, L., Booysen, R., Herrmann, E., Fatihi, A., Möckel, R., Dittrich, T. and Gloaguen, R., 472023. Underground hyperspectral outcrop scanning for automated mine‐face mapping: The lithium deposit of Zinnwald/Cínovec. 48The Photogrammetric Record, 38(183), pp.408-429. https://doi.org/10.1111/phor.12457 49 50------- 51 52# Documentation 53 54Almost all of the modules, classes and functions in *hylite* have docstrings. These can be viewed in a notebook or 55python console using the help(...) function or by typing "?" after a class or function name. Searchable documentation 56is also available online. 57""" 58 59# to generate docs with pdoc run: pdoc --html hylite --output-dir docs --force 60 61# disable numpy multithreading 62import os 63os.environ["OMP_NUM_THREADS"] = "1" 64os.environ["OPENBLAS_NUM_THREADS"] = "1" 65os.environ["MKL_NUM_THREADS"] = "1" 66os.environ["VECLIB_MAXIMUM_THREADS"] = "1" 67os.environ["NUMEXPR_NUM_THREADS"] = "1" 68 69#disable annoying warnings 70#np.warnings.filterwarnings('ignore') 71#warnings.filterwarnings("ignore", category=DeprecationWarning) 72# ignore all warnings 73#def _warn(*args, **kwargs): 74# pass 75#warnings.warn = _warn 76 77import warnings 78warnings.filterwarnings('ignore') 79warnings.filterwarnings("ignore", category=DeprecationWarning) 80 81########################################### 82## Define useful preset band combinations 83########################################### 84RGB = (680.0,550.0,505.0) 85""" 86Wavelengths for red [680.0], green [550.0] and blue [505.0]- useful for plotting. 87Note that we use the upper end of blue as this is the first band of rikola data. 88""" 89 90VNIR = (800.0, 550.0, 505.0) 91"""Useful preview for VNIR data using (infrared [1972.0], green [644.0], blue [1450.0]).""" 92 93SWIR = (2200.0,2250.0,2350.0) 94"""Useful preview for SWIR data (2200.0, 2250.0, 2350.0) sensitive to clay, mica, carbonate and amphibole absorbtions.""" 95 96BROAD = (1972.0,644.0,1450.0) #useful preview for data that covers visible VNIR and SWIR range 97"""Useful preview that covers VNIR and SWIR range (1972.0,644.0,1450.0) .""" 98 99MWIR = (3000., 3400., 3800. ) 100"""Useful preview for MWIR range (3000., 3400., 3800. ).""" 101 102LWIR = TIR = (10113., 9156.31, 8527.01) 103"""Useful preview for TIR range (10101.01, 9174.31, 8547.01).""" 104 105band_select_threshold = 25. 106"""Maximum distance (in nanometers) to use when matching wavelengths with band indices. See HyData.get_band_index(...) for more detail.""" 107 108#import basic data classes 109from .hyheader import HyHeader 110from .hydata import HyData 111from .hyimage import HyImage 112from .hycloud import HyCloud 113from .hylibrary import HyLibrary 114from .hycollection import HyCollection 115from .hyscene import HyScene 116from .hyfeature import HyFeature, MultiFeature, MixedFeature
Wavelengths for red [680.0], green [550.0] and blue [505.0]- useful for plotting. Note that we use the upper end of blue as this is the first band of rikola data.
Useful preview for VNIR data using (infrared [1972.0], green [644.0], blue [1450.0]).
Useful preview for SWIR data (2200.0, 2250.0, 2350.0) sensitive to clay, mica, carbonate and amphibole absorbtions.
Useful preview that covers VNIR and SWIR range (1972.0,644.0,1450.0) .
Useful preview for MWIR range (3000., 3400., 3800. ).
Maximum distance (in nanometers) to use when matching wavelengths with band indices. See HyData.get_band_index(...) for more detail.