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 PRISMA, EnMAP and Tanager products through a dedicated import module and provides preprocessing, visualization and export. The i.hyper addon is available in the official GRASS Addons repository.


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. The addon is available in the official GRASS Addons repository and can be installed directly from GRASS.

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 five core modules:
1. i.hyper.import – Import of hyperspectral satellite products
2. i.hyper.preproc – Spectral preprocessing and transformation
3. i.hyper.composite – Plotting of false composite maps from already imported 3D hyperspectral rasters
4. i.hyper.explore – Interactive spectral analysis, plot and export of analyzed spectra
5. 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:
• PRISMA L2B–L2D
• Tanager
• EnMAP L2A
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)
• Dimensionality reduction methods as Principal Component Analysis (PCA) and 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.composite
Provides tools to create false composite RGG maps from 3D hyperspectral cube. Users can choose predefined false composites combinations (eg. for agriculture, geology) or define custome ones by choosing the wavelenght centers of the bands they want to stack into composite maps.
Module 4: i.hyper.explore
Enables:
• Interactive selection of pixels/regions
• Visualization of spectral signatures
• Export of spectra to JSON
• Export of plots
This module is particularly useful for validating preprocessing steps and preparing datasets for modeling.
Module 5: i.hyper.export
Supports export to:
• GeoTIFF
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.

See also: PDF of i.hyper presentation. (2.6 MB)

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:

I’ve been building GIS solutions at the Geodetic Institute of Slovenia for over 15 years, working across the stack on everything from web mapping applications to data processing pipelines. My background is in biomedical engineering, but I found my way into geospatial tech through the field of automation — and I’ve been streamlining processes and visualizing data ever since.

This speaker also appears in: