i.hyper: processing hyperspectral imagery in GRASS
11-21, 09:00–09:25 (Pacific/Auckland), WG404

We present i.hyper, a multimodular toolset for processing hyperspectral satellite imagery in GRASS. It supports the import of EnMAP, PRISMA, and Hyperion products through a dedicated import module and provides preprocessing, spectral visualization, and export. The toolset facilitates open, reproducible workflows for hyperspectral analysis in geospatial research.


Introduction

Hyperspectral remote sensing provides rich spectral information that enables advanced analysis across a wide range of environmental domains. Soil monitoring, biogeochemistry, vegetation dynamics, environmental conservation, and even marine and coastal remote sensing all benefit from the high spectral resolution of modern sensors.

Although missions like EnMAP (DLR) and PRISMA (ASI) are already operational, and Hyperion (NASA EO-1) has left behind a valuable legacy archive, new missions such as ESA’s FLEX and CHIME, along with superspectral systems like Landsat Next, are expected to dramatically expand the volume and variety of data. However, integrating this data into open-source spatial workflows remains limited.
To bridge this gap, we introduce i.hyper, a modular suite for GRASS that enables complete and reproducible hyperspectral workflows - from import and preprocessing to spectral analysis and export.

Overview of i.hyper

i.hyper is implemented in Python and tightly integrated into the GRASS environment, combining modern spectral processing with robust spatial analysis tools. The suite consists of four core modules:
1. i.hyper.import – Import of hyperspectral satellite products
2. i.hyper.preproc – Spectral preprocessing and transformation
3. i.hyper.explore – Interactive spectral analysis, plot and export
4. i.hyper.export – Conversion to external formats
These modules form a pipeline that allows users to ingest, process, and explore hyperspectral cubes using GRASS-native structures.

Module 1: i.hyper.import

Supports:
• EnMAP L2A
• PRISMA L2B–L2D
• Hyperion
It imports imagery and metadata into GRASS 3D rasters (raster_3d), including per-band attributes (wavelength, FWHM, units, validity). Invalid bands are flagged. Optional composite layers (e.g., CIR, SWIR) can be created automatically for visualization. Modular backends make extension to new missions straightforward.

Module 2: i.hyper.preproc

Provides in-place spectral processing with support for:
• Savitzky-Golay filtering (configurable order, derivative, window size, NaN handling)
• Principal Component Analysis (PCA)
• Kernel PCA (RBF kernel)
• Continuum removal using local convex hull normalization
These transformations are applied spectrally per pixel, using garray.array3d, with preserved metadata throughout.

Module 3: i.hyper.explore

Enables:
• Interactive selection of pixels/regions
• Visualization of spectral signatures
• Export of spectra to CSV
Valid bands are respected during exploration. This module is particularly useful for validating preprocessing steps and preparing datasets for modeling.

Module 4: i.hyper.export

Supports export to:
• GeoTIFF
• HDF5 (for machine learning or scientific workflows)
Users can select bands, apply scaling, and retain metadata during export.

Reproducibility and Integration

i.hyper is fully open-source (GNU GPL 2.0), integrated via the GRASS Python API, and leverages libraries like NumPy, scikit-learn and SciPy. It ensures reproducibility through:
• Strict input structure and metadata validation
• Logging of transformation parameters
• Use of GRASS-native tools
All modules include documentation, CLI help, argument checks, and consistent metadata propagation.

Conclusion

i.hyper is novel in its integration of hyperspectral processing within GRASS, unlocking a powerful combination of spectral and spatial tools. It facilitates comprehensive workflows - from raw data to analysis-ready layers - and supports both legacy and current missions with a roadmap for future expansion.
As more hyperspectral and superspectral missions emerge - including FLEX, CHIME, and Landsat Next - the need for transparent, extensible, and scriptable pipelines becomes critical. i.hyper addresses this need by offering a scalable, modular, and reproducible solution that enables open-source geospatial research across domains such as soil science, geochemistry, vegetation monitoring, conservation planning, and marine ecosystems.
The GRASS + Python + i.hyper stack provides a robust foundation for both research and operational remote sensing.

I work at the Geodetic Institute of Slovenia in Ljubljana, contributing to various projects as a Data Scientist, Remote Sensing Analyst, GIS Coordinator, and Specialist. My work primarily revolves around the analysis of multispectral, hyperspectral, and SAR imagery, as well as LiDAR point clouds - but I enjoy tackling data problems of all kinds. I rely heavily on Python, GRASS, GDAL, PDAL, QGIS and PostgreSQL for data torturing and distribution. I love Linux. I currently serve as the secretary of the Slovenian OSGeo Local Chapter.

This speaker also appears in: