Previous Article in Journal
Enhanced A* Pathfinding Using Distance-Dependent Octile Annealing for Mobile Robot Navigation in Agricultural Field Terrains
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

EasySpectra: An Integrated Open-Access Platform for Spectral Image Analysis

by
Matheus de Freitas Souza
1,2,*,
Éder Vaz de Almeida
1,
Junior Eugenio Borkowski
2,
Franco de Paula Basílio
1,
Guilherme Braga Pereira Braz
1,
Lais Tereza Rego Torquato Reginaldo
2,
Eduardo Lima do Carmo
1 and
Hamurábi Anízio Lins
3
1
Postgraduate Program in Plant Production, Universidade de Rio Verde, Rio Verde 75901-970, Goiás, Brazil
2
Department of Plant and Soil Sciences, Mississippi State University, Starkville, MS 39762, USA
3
Department of Biological Sciences, Universidade Estadual de Feira de Santana, Feira de Santana 44036-900, Bahia, Brazil
*
Author to whom correspondence should be addressed.
AgriEngineering 2026, 8(6), 224; https://doi.org/10.3390/agriengineering8060224
Submission received: 17 March 2026 / Revised: 18 May 2026 / Accepted: 22 May 2026 / Published: 3 June 2026

Abstract

Spectral sensors have expanded the opportunities for the non-destructive monitoring of crops and weeds. However, the lack of standardized and accessible analytical pipelines remains a major limitation for data reproducibility and integration in this field. EasySpectra was developed to address these challenges by providing a unified environment that integrates data import, radiometric calibration, geometric alignment, spectral pre-processing, region-of-interest selection, feature extraction, vegetation index computation, and dataset construction. A graphical user interface guides users through the entire analytical workflow, reducing technical barriers for non-experts. EasySpectra supports heterogeneous data sources, including single-band images, spectral cubes and georeferenced orthomosaics. Across 100 sampled areas, the correction + normalization workflow in EasySpectra produced NDVI values very close to Pix4DFields (0.70 ± 0.052 vs. 0.69 ± 0.055), with a pixel-wise correlation of up to 0.98 and low bias (MBE = 0.05). In an independent UAV dataset, EasySpectra also showed close agreement with WebODM, with NDVI values ranging from 0.09 ± 0.10 to 0.42 ± 0.08 versus 0.08 ± 0.13 to 0.43 ± 0.10, across 13 sampled areas. In addition, hyperspectral species classification using EasySpectra-extracted profiles achieved a Macro F1-score of 0.880, with class-wise accuracies ranging from 0.83 for canola to 0.95 for redroot pigweed. Overall, EasySpectra enables reproducible, transparent, and standardized spectral analysis.

1. Introduction and Motivation

The application of hyperspectral sensors in agriculture has increased in recent years, allowing plant targets to be distinguished based on detailed spectral signatures. Compared to conventional multispectral images, hyperspectral images capture dozens or hundreds of narrow bands, revealing subtle biochemical and physiological variations in plants [1,2]. These differences in plant spectral signatures are also affected by changes in the environmental conditions under which plants grow. For example, hyperspectral images have been successfully applied in agriculture to estimate yield [3,4], monitor water stress [5], assess biochemical variables [6], and detect diseases at early stages [7,8].
Advances in the application of spectral analysis in weed science have also been published in recent years, and the results are promising for sustainable management. Among the innovations involving spectral analysis and weeds, three well-defined lines of research can be identified: (a) studies related to spectral profile analysis for weed identification and discrimination from crops; (b) detection of resistant and susceptible biotypes based on spectral profiles; and (c) identification of injuries caused by herbicides to crops and weeds. Hyperspectral images have demonstrated high potential for differentiating plant species and mapping weeds in agricultural areas.
A comprehensive review indicated that hyperspectral sensors have been successfully used to identify weeds in the field, achieving high discrimination accuracies. In these applications, spectral signatures allow crops and weeds to be distinguished at early stages, which is crucial for site-specific management, whether through mechanical or chemical methods [9]. For example, HSI and machine learning were combined to differentiate peanut from four common weed species; with spectral preprocessing and feature selection, they achieved 96.7% accuracy in the classification of peanut versus weeds in the test set [10].
Hyperspectral imaging techniques have proven promising for the early detection of resistance and herbicide injuries in weeds and crops. The authors successfully distinguished herbicide-resistant and susceptible Kochia biotypes in sugar beet fields using VIS–NIR images and SVM, achieving 84.7% accuracy after preprocessing and selection of critical bands [9]. Similarly, other authors identified early ALS resistance in Stellaria media with approximately 88% accuracy using a CNN and the full spectrum (300–1100 nm), only 72 h after application [11]. In the context of crops, a study detected glyphosate injury in maize with >95% accuracy [12], whereas another study discriminated the mechanisms of eight herbicides one day after application (81.5% accuracy) [13] and identified symptoms in soybean caused by dicamba and 2,4-D in only two hours (>80%) [14]. These studies demonstrate the potential of HSI to detect subtle physiological changes in a non-destructive manner and to accelerate agronomic monitoring.
Despite these advances, a major bottleneck is the availability of public and standardized datasets of agricultural hyperspectral images with reliable labels. The authors emphasize that although many studies have employed HSI to classify plant species, no open dataset of hyperspectral images of weeds was available until recently [2]. The scarcity of public hyperspectral datasets in agriculture can be partially attributed to the lack of accessible and standardized pipelines for spectral data extraction and labeling, which makes it difficult for researchers to transform their acquisitions into organized and shareable datasets. This is because the processes of extraction, preprocessing, and labeling of the data are still critical and labor-intensive, especially for researchers without expertise in digital-image processing.
A typical digital image processing workflow involves multiple steps, such as radiometric correction using white/dark references, segmentation of regions of interest (ROIs), noise removal, extraction of spectra per pixel or object, and application of dimensionality reduction or band-selection algorithms. Performing these tasks requires mastery of specialized tools (such as ENVI®, Python, or MATLAB® ), familiarity with volumetric data formats, and knowledge of plant spectral variability [1,2,15]. Without accessible interfaces and integrated pipelines, many teams face difficulties in transforming their raw images into datasets ready for analysis, which makes replication and standardization across studies challenging [16,17]. In addition, even when image acquisition is successful, the bottleneck often lies in the data labeling stage. Manually identifying pixels or regions corresponding to crops, weeds, or stress symptoms requires the overlay of auxiliary images (e.g., co-registered RGB), robust annotation tools, and well-defined protocols to avoid bias [2,9,18]. The absence of automated workflows to mark, extract, and organize these samples compromises both the quality of the generated models and the speed of knowledge generation [10,15,19].
Existing tools address different segments of the spectral imaging workflow but differ substantially in terms of scope, accessibility, and target use. Commercial platforms such as ENVI provide a mature environment for spectral and geospatial image analyses, including vegetation analysis workflows and broader processing capabilities. Agriculture-oriented solutions, such as PIX4Dfields, are more strongly focused on rapid field mapping, orthomosaic generation, and vegetation index products derived from UAV imagery. Open-source mapping environments, such as WebODM, also emphasize aerial reconstruction and plant health outputs, including multispectral support for orthophoto generation. Recently, Herschel Vision was proposed as an open-source hyperspectral image analysis application aimed at the visualization and data preparation for machine learning pipelines. In parallel, programming-centered ecosystems, such as Spectral Python and MATLAB, offer broad analytical flexibility for reading, preprocessing, visualizing, and classifying spectral imagery, whereas QGIS-based workflows with plugins, such as the Semi-Automatic Classification Plugin, provide supervised classification and preprocessing tools within a general GIS environment. However, for many agricultural users, these alternatives remain fragmented, strongly code-dependent, mapping-centered, or insufficiently focused on a unified (ROI)rest ROI-to-dataset-to-dataset workflow for multispectral and hyperspectral analyses.
In this context, the main gap is not the absence of algorithms or isolated functionalities, but the limited availability of an open, integrated, and user-oriented platform capable of connecting image import, radiometric preparation, band alignment, preprocessing, ROI-based extraction, vegetation index computation, and the export of machine-learning-ready datasets within a single environment. Therefore, EasySpectra was conceived to occupy a complementary niche: rather than replacing all specialized photogrammetric, GIS, or programming tools, it aims to reduce workflow fragmentation and technical barriers for agricultural researchers who require a reproducible end-to-end spectral analysis pipeline. This positioning is also consistent with the current public structure of the software, which integrates modules for import, geospatial processing, alignment, pre-processing, spectral analysis, vegetation indices, radiometric processing, and dataset management within the same application architecture.
Given the recurring challenges in hyperspectral image processing, particularly in the stages of spectral data extraction, preprocessing, and labeling, EasySpectra has emerged as a tool aimed at democratizing and systematizing this analytical workflow in agricultural applications. Developed with a focus on accessibility and standardization, EasySpectra aims to reduce the technical complexity faced by researchers without training in digital image processing, offering an interactive graphical environment for region-of-interest (ROI) selection, spectral visualization, automated sample extraction, and data organization in formats compatible with machine learning models. In this article, we discuss how the tool was conceived to address the gaps identified in the literature, describe its architecture and main functionalities, detail the proposed usage pipeline from hyperspectral cube input to the export of structured data, and present real case studies that demonstrate its applicability in the field.

2. Software Architecture and Internal Organization of EasySpectra

From a software engineering perspective, EasySpectra was designed according to the principles of modularity, separation of concerns, and extensibility to facilitate maintenance, system evolution, and the integration of new features. The source code is organized under the src/easyspectra directory, which contains the functional core of the platform, while the deep_models directory stores deep learning–based models and the docs directory contains the documentation.
Within src/easyspectra, each file corresponds to a well-defined functional module responsible for a specific stage of the processing pipeline or for a transversal service. This organization enforces clear boundaries between components and allows the independent evolution of the individual parts of the system.

2.1. Graphical User Interface Layer

The interface.py module implements the main graphical entry point of EasySpectra using the Tkinter library. Architecturally, this module plays the role of an orchestration layer; it is responsible for instantiating the main application window and organizing the workflow into a set of functional tabs corresponding to the main stages of the processing pipeline (import, alignment, preprocessing, spectral analysis, and vegetation indices).
The main function instantiates a ttk.Notebook object that structures the interface into these tabs and binds the graphical elements to the functions exposed by the other modules. Importantly, this layer contains no domain-specific processing logic; it acts strictly acts as a coordinator between user actions and the underlying functional modules. In addition, interface.py centralizes the global visual settings, such as loading the application logo, and defining the default fonts and layout parameters.

2.2. Import and Radiometric Calibration Layer

The funcoes_importacao.py module encapsulates all routines related to data ingestion and initial radiometric preparations. This includes the registration of individuals .tif bands, import of spectral cubes stored in .npy format, management of wavelength metadata, radiometric calibration using reflectance panels, and optional initial alignment of images. From an architectural perspective, this module acts as a gateway between raw data sources and the internal spectral representations used by the rest of the system. Centralizing these routines avoids code duplication and ensures that all subsequent processing stages operate on consistently structured and calibrated datasets.
It is worth clarifying that sensor compatibility in EasySpectra is defined in terms of data structure and interoperable file formats, not as unrestricted native support for all proprietary sensor ecosystems. In its current implementation, the platform supports: (i) individual single-band TIFF files with wavelength information defined by the user or automatically inferred; (ii) spectral cubes stored as NumPy arrays (.npy) accompanied by wavelength metadata in JSON format; and (iii) multiband raster products, including GeoTIFF, COG, JP2, and VRT files, provided they are readable through the raster-processing backend.
Wavelength information can be obtained from per-band tags, band descriptions, sidecar metadata files, or manually defined by the user when metadata are incomplete. This means that data from different multispectral or hyperspectral sensors can be processed normally, as long as they are exported or converted to one of these supported structures. The current version should not be interpreted as providing full native support for all commercial sensor formats. The platform does not perform, for instance, direct import, parsing, or manufacturer-specific radiometric calibration for proprietary formats. Dedicated native importers for additional hyperspectral systems are planned as future extensions of the platform.

2.3. Geospatial Processing and Orthomosaic Generation Layer

The geo_import.py module provides integration between EasySpectra and OpenDroneMap (ODM) through Docker containers, enabling the generation of multi-band orthomosaics from aerial-image collections. Architecturally, this component extends the system beyond simple image ingestion by embedding an external photogrammetric pipeline into the platform.
The module is responsible for organizing input files by band and extracting metadata. DAT files and EXIF tags, invoking the ODM processing workflow, and post-processing the outputs. It also exposes auxiliary routines for the refined alignment of the resulting band. This design allows georeferenced datasets to be produced and consumed within the same software environment, without requiring external tools in the main analysis pipeline.

2.4. Image Registration and Alignment Layer

The metodos_alinhamento.py module abstracts a heterogeneous set of image- registration algorithms using a unified interface. It defines a collection of interchangeable backends (ORB, SIFT, AKAZE, ECC, Template Matching, Mutual Information, and SuperGlue) and implements a dispatcher function (alinhar_imagem) that selects the appropriate method at runtime based on a configuration string.
Among the implemented methods mentioned above, ECC and SuperGlue represent two complementary strategies. The ECC method is an intensity-based approach, primarily indicated for situations where bands exhibit similar spatial structures and moderate displacements. In the EasySpectra implementation, ECC can operate with translational, Euclidean, affine, or homographic transformation models, with the preset model configured to offer a balance between geometric flexibility and numerical stability. The algorithm uses normalized images only to estimate the transformation, while the final transformation is applied to the original image, preserving radiometric values as much as possible. The main parameters include the maximum number of iterations, the convergence criterion, the optional size of the Gaussian filter, the type of interpolation, and the edge handling mode.
SuperGlue is used as a deep learning-based alternative for situations where alignment by classical descriptors may be less stable, especially in images with radiometric differences, complex textures, or difficult spatial matches. In EasySpectra, this method combines keypoint detection using SuperPoint, matching using SuperGlue, and homography estimation using RANSAC. The implementation uses pre-trained outdoor weights and allows adjusting parameters such as non-maximum suppression radius, keypoint detection threshold, maximum number of keypoints, matching confidence threshold, number of Sinkhorn optimizer iterations, RANSAC reprojection threshold, interpolation, and edge mode. As with other alignment methods, if a valid transformation cannot be estimated, the original image is retained, preventing the propagation of geometric errors to subsequent steps.
Each backend follows the same conceptual contract: it receives a reference image and a target image and returns either a geometrically transformed version of the target or the original image in the case of failure. This design isolates algorithm-specific implementations from the rest of the system and allows new alignment methods to be added with a minimal impact on higher-level components. In addition, the metodos_dl.py module complements this layer by implementing a homography estimator based on deep neural networks, thereby expanding the spectrum of available registration strategies within the same architectureal framework.

2.5. Preprocessing and Spectral Normalization Layer

The preprocessamento.py module focuses on the logic related to spectral conditioning prior to the analysis. It implements both the orchestration logic of the preprocessing stage and the available transformation methods, including normalization and standardization strategies (min–max normalization per band or global, z-score standardization, and Standard Normal Variate (SNV) applied per pixel), as well as signal smoothing filters such as the Savitzky–Golay filter.
Architecturally, this module acts as a transformation stage that operates on spectral cubes to produce new representations. Its design allows multiple preprocessing operations (up to four) to be chained sequentially, generating new spectral cubes that can persist with their associated wavelength metadata in the JSON format.

2.6. Spectral Analysis and Vegetation Index Computation Layer

The analise_espectral.py and indices_vegetacao.py modules encapsulate two complementary analytical stages of the pipeline. The former is responsible for extracting spectral signatures from regions of interest, whereas the latter computes vegetation indices from the selected spectral bands.
From an architectural perspective, both modules implement domain-specific analytical services that operate on preprocessed spectral data and produce derived numerical representations. They expose their functionalities to the graphical interface through well-defined integration points while remaining independent of the details of data import, alignment, and preprocessing.

2.7. Dataset Construction and Persistence Layer

The dataset_manager.py module implements a lightweight persistence layer for tabular datasets in CSV format. The main responsibility of this module is to ensure structural consistency when accumulating observations extracted from different images or regions of interest. The save_dataset_rows function enforces strict compatibility between the header of an existing dataset and the structure of the new data before appending rows, guaranteeing that both the set and order of the variables remain consistent. Architecturally, this module decouples the concerns of data extraction from those of long-term storage and reuse in statistical analyses and machine learning pipelines.

2.8. Data Interfaces and Internal Data-Flow

Communication between EasySpectra modules follows a common standard, allowing different stages of the processing workflow to use the same data structure without direct dependence on the original acquisition format (Figure 1). After import, spectral images are converted to a common raster representation in a three-dimensional cube in the format height × width × bands, accompanied by auxiliary files and information such as the wavelengths associated with each band. This structure constitutes the main data interface between the import, alignment, preprocessing, spectral analysis, and vegetation index calculation modules. The generated cube is always saved in .npy format.
The import module receives input files, such as individual TIFF bands, .npy spectral cubes, or multiband raster products, and organizes this data as a spectral cube associated with wavelength metadata. Then, the alignment module uses a reference band and applies geometric transformations to the other bands, returning a spatially registered cube. The preprocessing module receives this aligned cube and generates a new spectral representation after correction, normalization, standardization, or smoothing, preserving the relationship between bands and wavelengths. The spectral analysis and vegetation index tools work on the already processed .npy cube, converting regions of interest into average spectra, spectra per pixel, index images, or numerical tables. Finally, the persistence module organizes these results into CSV files with consistent headers, allowing the data to be reused in statistical analyses and machine learning models.
This data flow logic reduces coupling between modules, as each component receives and returns objects with a predictable structure, instead of directly depending on the internal routines of other modules. Thus, new methods of alignment, normalization, feature extraction, or index calculation can be incorporated without altering the central logic of data import or export. Furthermore, the separation between spectral cubes, wavelength metadata, ROI masks, and exported tables improves processing traceability and enhances the reproducibility of analyses.

2.9. Architectural Summary

Taken together, these modules form a layered and component-oriented architecture in which each stage of the spectral processing pipeline is encapsulated in a dedicated component. This design supports (i) clear separation of responsibilities, (ii) independent evolution of processing stages, (iii) straightforward integration of new algorithms or analytical modules, and (iv) the reuse of intermediate representations across different workflows. This architectural organization underpins the extensibility and maintainability of EasySpectra as a research-oriented software platform for image-based spectral analysis.

3. Workflow and Mapping of the Main Functions

Based on the architecture described above, EasySpectra was designed to guide the user step-by-step from data import to the generation of spectra or indices that are ready for statistical analysis. The typical workflow is described in the README, with information on importing the images, aligning and geometrically correcting the bands, performing radiometric calibration, defining regions of interest, extracting spectral signatures, computing vegetation indices and exporting the results. Below, this workflow is detailed step-by-step, with indications of how each stage is carried out in the interface.

3.1. Data Import and Orthomosaic Generation

  • Registration of individual bands: In the “Import” tab of the main interface, the “Import non-georeferenced. The .tif bands” button opens the cadastrar_bandas_gui() wizard, allowing the user to select the .tif files corresponding to the different bands of a sensor to register their wavelengths. The interface then asks whether the user wants to run the alignment immediately; if confirmed, it calls alinhar_a_partir_do_cadastro_gui() to align and stack the bands into a spectral cube.
  • Import of hyperspectral cubes: The “Import .npy spectral cube” button prompts for a .npy file and its associated JSON files. The carregar_npy_com_interpolacao() method loads the data and allows the wavelengths to be adjusted, either manually or automatically.
  • Import of multiband orthomosaics and GeoImport: For georeferenced images, a multiband orthomosaic (GeoTIFF/COG/JP2/VRT) can be imported using the “Import orthomosaic” button. The software loads the file and offers the option of performing a fine alignment of bands. If the user does not yet have an orthomosaic, the “GeoImport: import georeferenced. The .tif bands and create orthomosaic” button launches a wizard (GeoImport) that uses OpenDroneMap (ODM) via Docker to generate an orthomosaic from aerial images and then asks whether it should be aligned or not. This feature is essential for VANT-based or similar datasets.

3.2. Geometric Band Alignment

After the bands are imported, the images must be aligned to correct the shifts and distortions:
  • Alignment of individual bands: In the “Alignment” tab, the “Align and stack imported the .tif bands” button calls the alinhar_a_partir_do_cadastro_gui() function, which uses the methods defined in metodos_alinhamento.py to align each band to a reference. The user can select the method (ORB, SIFT, AKAZE, ECC, Template Matching, MI, or SuperGlue) through internal dialogs. These methods rely on keypoints, similarity metrics, and homography estimation to generate a coherent spectral cube.
  • Alignment of cubes or orthomosaics: The “Align cube/orthomosaic (.npy/GeoTIFF)” button calls alinhar_cubo_multimetodos_gui(). This procedure applies band alignment to existing data .npy cubes or orthomosaics, allowing the same set of algorithms to be used. If the user has already performed alignment during the import stage, this step can be skipped.

3.3. Radiometric Calibration and Preprocessing

With the bands aligned, intensities must be calibrated to reflect and then normalized or filtered:
  • Panel-based calibration: During the import process, the software asks whether the user has reflectance values for each band and, if so, requests these values through a dialog in order to apply the correction (function _ui_pergunta_rho_por_banda() in funcoes_importacao.py). This correction ensures that the bands adequately represent the reflectance measured by the sensor.
  • Preprocessing: The “Pre-processing” tab gathers tools for normalization, standardization, and signal smoothing. The user can select up to four methods in sequence, such as min–max normalization per band, z-score standardization, or Savitzky–Golay filtering, and apply them to the loaded cube. The result can be saved as a new .npy file together with a JSON file containing the wavelengths, or a previously processed cube can be loaded. This step ensures that differences in scale between bands and high-frequency noise do not influence subsequent analyses.

3.4. Selection of Regions of Interest (ROI) and Spectral Extraction

After calibration and preprocessing, the user defines the areas to be analyzed:
  • Selection of bands for visualization: In the “Spectral Analysis” tab, the “Select bands for visualization” button opens a list of wavelengths to compose an RGB or monochromatic image. The selection determines which bands will be displayed on the screen.
  • For spectral data extraction, the ROI can be delimited by rectangular, elliptical, or polygonal tools (free selection), allowing the user to adjust the selection to the geometry of the analyzed target. After selection, the software converts the delimited area into a spatial mask and extracts the spectra corresponding to the valid pixels contained in the ROI. The spectra are organized in a matrix, in which an X ∈ Rn×p matrix is arranged so that each row represents a pixel and each column corresponds to a spectral band associated with the wavelength λj, with i = 1, …, ni = 1, …, n and j = 1, …, p.
  • The user can export only the average spectrum of the ROI or the individual spectra of the pixels. When exporting by individual pixels is selected, two strategies are available: saving all pixels from the ROI or saving a random subsample. In random sampling, the user defines the number of pixels to be exported. The selection is performed without replacement, and the same pixel is not included more than once in the same export. When the number of pixels available in the ROI is less than or equal to the requested number, all pixels are exported, and this condition is communicated to the user.
  • To ensure the reproducibility of the subsampling, the export routine allows specifying an optional random seed. When a seed is defined, the same ROI, the same number of pixels, and the same input configuration produce the same pixel selection in repeated runs. When the seed field is left blank, the subsampling remains stochastic. In all cases, the exported observations receive a user-defined class label, and the final file is saved in CSV format with a header composed of wavelengths and a final column identifying the class.

3.5. Vegetation Index Computation and Export of Metrics

The “Vegetation indices” tab complements spectral analysis by computing derived metrics:
  • Computation of standard vegetation indices: The indices_vegetacao.py module computes standard vegetation indices commonly used in agricultural remote sensing, including NDVI, GNDVI, NDRE, EVI, EVI2, SAVI, and OSAVI. These indices represent complementary spectral metrics, including normalized-difference indices, red-edge-based indices, soil-adjusted indices, and indices that incorporate or avoid the blue band depending on sensor availability.
  • Automatic band selection: For standard indices, EasySpectra automatically selects the required bands based on the wavelength metadata associated with the imported cube. For each index, the software defines target spectral regions, such as blue, green, red, red-edge, and near-infrared, and identifies the available band closest to each required wavelength. The index is computed only when all required bands are available within a predefined wavelength-tolerance limit (the default value is 70 nm).
  • Band-availability verification: When one or more required bands are missing or outside the accepted tolerance, the corresponding index is not computed, and the software informs the user which indices were generated and which were skipped due to missing or incompatible bands. This procedure prevents the automatic calculation of vegetation indices using inappropriate spectral combinations and makes explicit that the applicability of each index depends on the spectral configuration of the sensor and the quality of the wavelength metadata.
  • Spectral requirements of each index: NDVI, SAVI, OSAVI, and EVI2 depend mainly on red and near-infrared bands, whereas EVI also requires a blue band, GNDVI requires a green band, and NDRE requires a red-edge band. Therefore, indices are only generated when the input data provide sufficient spectral support for their physical interpretation. This is particularly important when working with datasets from different sensors, because not all sensors contain the same spectral bands or the same central wavelengths.
  • Creation of custom vegetation indices: In addition to the standard indices implemented in the interface, EasySpectra allows the creation of custom indices through user-defined mathematical expressions. Each band of the spectral cube is referenced by the identifier b0, b1, b2, …, bn, where the number corresponds to the band position in the imported cube. To assist expression construction, the interface displays the list of available bands and their respective wavelengths, allowing the user to select appropriate bands to reproduce known indices or test new spectral combinations.
  • Syntax and restrictions for custom expressions: Custom expressions follow mathematical syntax compatible with Python/NumPy (Table 1). The routine accepts basic arithmetic operations, such as addition, subtraction, multiplication, division, and exponentiation, as well as selected mathematical functions, including sine, cosine, tangent, exponential, logarithm, square root, absolute value, and conditional expressions. The expression must return a two-dimensional array with the same spatial dimensions as the original image. If the expression generates a mathematical error, uses non-existent bands, or returns a structure with incompatible dimensions, the index is not created and the user receives an error message. For example, a normalized-difference index can be entered as (b8 − b3)/(b8 + b3 + 1 × 10−12), where the small term added to the denominator avoids division by zero.
  • Visualization, ROI extraction, and export: After calculation, both standard and custom indices are stored in the same internal structure (Table 1). Therefore, they can be visualized as images, submitted to ROI selection, and exported as mean values or as individual pixel values. When multiple indices are selected for the same ROI, the software organizes the values into separate columns in the CSV file and preserves the user-defined class label. Exporting individual pixel values also allows random sampling without replacement and the use of an optional random seed, ensuring that the same pixel selection can be reproduced when needed.

3.6. Dataset Generation and Final Steps

The exported spectra and indices are accumulated into datasets that were ready for model training or statistical analysis. The dataset_manager.py module ensures that the header and the order of variables remain consistent when are added new observations to the CSV file. At the end of the workflow, the user obtains labeled files that can be analyzed in statistical environments or in machine learning environments.
The general workflow of EasySpectra is shown in Figure 2, which details the mandatory processing steps as well as optional procedures that users may select to obtain more accurate and detailed spectral information.

4. Use Cases and Experimental Results

The dataset used to demonstrate the EasySpectra workflow comprised 110 single-band TIFF images. Multispectral images were acquired using a MicaSense RedEdge-M camera mounted on an unmanned aerial vehicle (UAV). The sensor provides five discrete spectral bands: blue (center wavelength 475 nm, FWHM 32 nm), green (560 nm), red (668 nm), red-edge (717 nm), and near-infrared (842 nm). Each band was recorded as an independent 16-bit single band .TIFF image with a spatial resolution of 1280 × 960 pixels.
Two image acquisition were performed, one on 15 April 2025, at 11:44 local time and another 7 days after, with the camera operating at ISO 200, f/2.8, and an exposure time of 1/823 s. The focal length was 5.5 mm (39.7 mm equivalent), corresponding to a field-of-view of approximately 48.8°. The UAV flight was conducted at an altitude of approximately 201.4 m above sea level, with a pressure altitude of ~130 m, and the image positions were recorded with a horizontal GPS accuracy of approximately 1 m. Downwelling irradiance was measured using an onboard light sensor for each exposure, enabling irradiance-based radiometric normalization. During acquisition, solar geometry was recorded in the image metadata (solar elevation and azimuth), and image orientation parameters (yaw, pitch, and roll) were also stored, allowing consistent radiometric and geometric preprocessing.
Orthomosaics were generated using a custom photogrammetric pipeline built on OpenDroneMap (ODM) and executed using Docker containers. All processing was performed independently for each spectral band, followed by dedicated co-registration and stacking stages to generate spatially consistent, multispectral products. The ODM command-line interface was called with explicit control of the following parameters: --orthophoto-resolution, --feature-quality, --fast-orthophoto, --skip-3 dmodel, --force-gps, and --max-concurrency. Three predefined processing profiles were implemented to control the trade-off between the computational cost, geometric robustness, and spatial detail: Fast, Balanced, and Full.
The Fast profile (Figura 3A) was designed to minimize processing time and memory consumption. In this configuration, ODM was executed with the flags --fast-orthophoto and --skip-3dmodel, disabling dense 3D reconstruction and mesh generation and focusing exclusively on orthophoto production. Feature extraction density was set to --feature-quality medium, and the orthomosaic spatial resolution was fixed at --orthophoto-resolution 10 (10 cm/pixel). This configuration significantly reduces computational cost by limiting the number of extracted keypoints, simplifying image matching, and skipping dense surface reconstruction. This approach may reduce local geometric detail and surface modeling fidelity, as shown in Figure 3A; therefore, it is important to analyze the result of the process to decide whether to proceed with further analyses. Similar speed–accuracy trade-offs in UAV photogrammetry pipelines have been widely reported in the literature [20,21,22].
The Full profile (Figure 3B) was designed to maximize geometric robustness and spatial detail. In this configuration, the fast orthophoto mode was disabled (i.e., --fast-orthophoto not used), dense reconstruction was enabled (i.e., --skip-3dmodel not used), the feature extraction density was increased to --feature-quality high, and the orthomosaic resolution was set to --orthophoto-resolution 5 (5 cm per pixel). In this configuration, the number of extracted keypoints is bigger than fast mode, improving tie-point coverage, and enforcing a more detailed surface reconstruction prior to orthorectification. Consequently, the generated orthomosaics tend to exhibit higher local geometric consistency, better representation of fine structures, and greater stability in areas with complex canopy structure or variable terrain, at the cost of substantially increased processing time and memory usage. The influence of reconstruction density and feature extraction quality on orthomosaic accuracy and 3D consistency is well documented in the photogrammetric literature [23,24].
Each spectral band was independently reconstructed in the ODM, generating one orthomosaic per spectral band. The resulting orthomosaics were then stacked on a common grid. Reprojection was used when all products shared a consistent coordinate reference system and geotransformation. Otherwise, a robust image-based alignment strategy was applied, combining phase correlation for initial translation estimation and multi-scale Enhanced Correlation Coefficient (ECC) affine refinement. This approach ensures reliable sub-pixel co-registration, even in datasets affected by imperfect or inconsistent geotagging, a known limitation ofin multispectral UAV systems [25,26]. This strategy is particularly important for subsequent pixel-wise spectral analyses and vegetation index calculationscomputations.
The mean NDVI values obtained from 100 sampled areas containing cereal rye, grass, and trees differed among the processing strategies used. Figure 4 illustrates a portion of the study area used for spectral data extraction. The Original data, without any processing, presented a mean value of 0.323 ± 0.084, indicating an underestimation of the index and higher variability (Figure 4). The application of the correction step alone increased the mean NDVI to 0.599 ± 0.084, indicating substantial improvement, although dispersion remained relatively high. The product generated by Pix4DFields, which represents the standard workflow used by many users, showed intermediate values (0.69 ± 0.055), whereas the correction + normalization strategy produced mean NDVI values of 0.70 ± 0.052, both exhibiting low dispersion (Figure 5).
These results demonstrate that radiometric corrections directly affect both the magnitude and statistical stability of NDVI estimates. The Correction + normalization strategy yielded values comparable to those obtained with Pix4DFields, a platform widely used for processing georeferenced data. The pixel-wise correlation between the same sampled areas processed with Pix4DFields and Correction + normalization (via EasySpectra) was 0.98, with an MBE of 0.05 (Figure 6(A.1,A.2)), indicating highly correlated data with a negligible bias. In contrast, the application of radiometric correction based only on flight metadata and the original data showed good correlation with the Pix4DFields results (0.86 and 0.84, respectively, Figure 6(B.1,B.2,C.1,C.2)), but with substantially higher bias (MBE = −0.12 and −0.34), indicating a systematic underestimation of NDVI for these two approaches.
The differences observed between the original data, the corrected data, and the corrected data followed by normalization can be explained by the sources of radiometric variation accumulated during image acquisition and processing. In multispectral images obtained by UAV, the image acquired by the sensor depends not only on the properties of the vegetation, but also on other factors such as irradiance incident on the vegetation, solar angle, light exposure, sensor gain, acquisition geometry, presence of shadows, mixing of targets within the pixel, and stability of alignment between bands [25,26]. When these sources of variation are not corrected, instrumental or environmental differences can be interpreted as real variations in vegetation.
Radiometric correction acts primarily in converting digital numbers to a scale closer to reflectance, reducing effects associated with sensor response, exposure, and illumination variation between images [27]. This procedure explains the increase in average NDVI values compared to the original data, as the difference between the red and near-infrared bands better represents the spectral contrast of the vegetation. However, isolated radiometric correction may not completely remove residual variations associated with heterogeneous lighting, local brightness differences, shadows, mixed pixels, or small inconsistencies between bands.
Normalization applied after radiometric correction acts as an additional step in standardizing the scale of the data. This process reduces residual magnitude variations between bands or images and increases comparability between sampled areas [28,29]. Consequently, the correction followed by normalization strategy presented values closer to those obtained on external platforms and less dispersion between sampled regions. This behavior indicates that the combination of the two steps not only shifted the average values of the indices but also reduced some of the variability not directly associated with the state of the vegetation.
Despite this, the choice of preprocessing should be interpreted with caution. Inadequate radiometric corrections, incorrect selection of reference panels, band saturation, spatial misalignment, or the use of incomplete metadata can introduce new errors into the final product. Similarly, overly aggressive normalizations can reduce biologically relevant absolute differences, especially when the magnitude of reflectance is important for physiological interpretation. The remote sensing literature, particularly studies comparing radiometric calibration methods for UAS/UAV multispectral cameras, shows that radiometric calibration is a critical preprocessing step to ensure radiometric consistency, temporal and spatial comparability, and robustness of spectral indices in quantitative applications [28,29]. Without appropriate calibration and normalization, artificial differences in illumination and sensor response can produce NDVI variations for the same target that are comparable in magnitude to real biological variability, leading to erroneous interpretations of vegetation state and dynamics [30].
Another comparison between EasySpectra v0.1.1 and the open-source software WebODM v3.2.4 was conducted using a UAV image dataset containing 336 multispectral images acquired over a 0.06 ha paddy field in northwestern Sri Lanka. Orthomosaics were generated, and NDVI was calculated for each platform. Figure 7 shows the NDVI signatures for the sampled areas obtained using EasySpectra (Figure 7A) and WebODM (Figure 7B).
The vegetation indices derived from both tools showed consistent patterns across all metrics (Table 2). EVI2 values ranged from 0. EVI2 values ranged from 0.07 ± 0.12 to 0.40 ± 0.09 for WebODM Manager, and from 0.08 ± 0.09 to 0.39 ± 0.07 for EasySpectra. For SAVI, WebODM Manager presented values between 0.09 ± 0.14 and 0.47 ± 0.11, while EasySpectra ranged from 0.10 ± 0.11 to 0.46 ± 0.09. OSAVI followed a similar pattern, with WebODM Manager ranging from 0.07 ± 0.12 to 0.39 ± 0.09 and EasySpectra 0.08 ± 0.09 to 0.38 ± 0.07. GNDVI values were 0.07 ± 0.11 to 0.37 ± 0.09 for WebODM Manager and 0.08 ± 0.09 to 0.36 ± 0.07 for EasySpectra. NDRE showed the narrowest range, from 0.05 ± 0.08 to 0.26 ± 0.06 for WebODM Manager and from 0.05 ± 0.06 to 0.25 ± 0.05 for EasySpectra.
The values obtained for NDVI, EVI2, SAVI, OSAVI, GNDVI, and NDRE were similar between WebODM Manager and EasySpectra in 13 sampled areas. The differences between the platforms were small and, in general, located within the variability represented by the standard deviations of each area. This pattern indicates that the consistency observed for NDVI was also maintained for other indices derived from the red, green, red-edge, and near-infrared bands. Therefore, the comparison expands the validation of the crop index module and demonstrates that EasySpectra produces estimates compatible with an external tool in different agricultural spectral metrics.
It is important to highlight that the accuracy of the generated product depends not only on the mathematical formula, but also on the correspondence between the bands available in the sensor and the spectral regions required by each index. Therefore, EasySpectra avoids generating indices when the input data does not offer adequate spectral support for their interpretation by allowing a restriction on the range of bands to be considered for the calculation of the predefined indices.
Hyperspectral data can also be extracted using EasySpectra and undergo normalization processes for model training. Hyperspectral imaging provides rich spectral signatures by capturing reflectance values across many narrow and contiguous wavelength bands, enabling the fine discrimination of subtle differences in material properties. However, raw hyperspectral data often contain variability caused by sensor characteristics, non-uniform illumination, noise, and external perturbations that do not reflect the intrinsic sample properties. Such sources of artificial variability can degrade the performance of machine learning and classification models if not addressed appropriately before analysis [31,32]. These issues make spectral preprocessing and normalization critical steps in workflows that use hyperspectral datasets, especially when downstream tasks include classification or regression models.
Normalization methods aim to reduce non-biological variability and standardize spectral responses across pixels and bands. Common approaches include min–max scaling, which rescales data to a fixed range; standard normal variate (SNV), which removes scatter effects by centering and scaling individual spectra; and z-score normalization (Figure 8D), which standardizes data per band based on the mean and standard deviation. Each method modifies the spectral data to enhance the comparability among samples and reduce the influence of acquisition conditions; however, they also differ in how the features most relevant for classification are preserved or emphasized. The combination of normalization methods is also a common practice in hyperspectral preprocessing to enhance data quality and model performance, as shown in Figure 8C, which shows a combination of min–max scaling and SNV methods. Choosing an appropriate normalization strategy can profoundly affect the separability of classes and the robustness of the models trained on those data.
These normalization processes, when applied after conversion from digital numbers to reflectance, aim to harmonize spectral signatures while reducing variability that is not attributable to the materials of interest. Normalized spectral inputs serve as more stable and discriminative features for machine learning algorithms and classification models, which are sensitive to scale and variance in the training data [31,34]. Adequate normalization helps reduce the risk of overfitting to acquisition artifacts, enhances inter-class separability, and ultimately contributes to improved generalization performance when models are applied to independent datasets [32,35].
To demonstrate the capability of EasySpectra to handle data representing real hyperspectral spectra acquired from sensors, spectral profiles were extracted directly from hyperspectral images obtained from the Proximal Hyperspectral Image Dataset of Various Crops and Weeds for Classification via Machine Learning and Deep Learning Techniques, from USDA Ag Data Commons, (https://doi.org/10.15482/USDA.ADC/25306255), accessed on 21 May 2026. A supervised classification model based on logistic regression was developed using these profiles. The model was trained to discriminate species exclusively based on their spectral signatures, simulating a practical remote sensing application scenario. The model performance was evaluated using a normalized confusion matrix and F1-score, as shown in Figure 9.
The results showed high model performance, with a Macro F1 score of 0.880. The confusion matrix showed that most classes achieved high classification accuracy, particularly redroot pigweed (0.95), soybean (0.90), sugarbeet (0.90), waterhemp (0.90), and kochia (0.90). The canola and ragweed classes achieved accuracies of 0.83 and 0.87, respectively. Misclassifications were limited and mainly occurred among species with greater spectral similarities, such as canola and soybean or ragweed and other species. However, these errors occurred at low frequencies and did not compromise the overall model performance.
In hyperspectral data, the effect of preprocessing is even more evident because the information is distributed across many narrow, contiguous bands. The original spectrum preserves the absolute magnitude of the response recorded by the sensor, but it can also carry variations caused by uneven illumination, acquisition geometry, scattering, high-frequency noise, and local brightness differences. These sources of variation can be spectral patterns associated with biochemical composition, leaf structure, or differences between species [36,37].
Preprocessing can directly alter the degree of separation between classes and, consequently, the performance of classification models. In general, methods that reduce non-biological variations tend to improve model performance, especially when the data present differences in illumination, noise, or scale between samples. On the other hand, when the difference between classes depends on the absolute magnitude of reflectance, normalization can reduce some of the discriminating information. Thus, there is no single universally superior preprocessing method; the choice depends on the nature of the sensor, the radiometric quality of the data, the objective of the analysis, and the statistical or computational model used. Considering the importance of normalization, EasySpectra offers a variety of normalization methods for different situations. The available options and the intended use of each method are summarized in Table 3.
Normalization methods modify spectra in distinct ways. Min-max normalization adjusts values to a common scale, favoring comparison between pixels or samples, but it can be sensitive to extreme values, often caused during image acquisition. Z-score standardization centers and scales the data based on the mean and standard deviation. This approach is useful for models sensitive to the scale of variables. SNV, in turn, acts on each spectrum individually, reducing scattering effects and multiplicative intensity differences. Savitzky–Golay smoothing reduces high-frequency noise and preserves, with certain limitations, the shape of the absorption bands, allowing the overall spectral pattern to be maintained with less noise interference [37].
In the present study, the profiles extracted and preprocessed in EasySpectra preserved sufficient information to discriminate species with satisfactory performance in the classification model. Even a less complex model, such as logistic regression, was able to separate weed and crop species with good precision. This result indicates that the extraction and normalization routines did not eliminate the spectral features relevant to class separation. However, the systematic comparison between different combinations of preprocessing and classification algorithms should be considered a step dependent on the dataset and the experimental objective, and not a fixed property of the software. This is why EasySpectra offers different preprocessing options, allowing the user to evaluate the most appropriate strategy for their data type and analytical purpose.
In addition to the functionalities demonstrated in this study, EasySpectra provides a broad set of tools for multispectral and hyperspectral image analysis, covering the entire workflow from data ingestion to dataset construction. A complete and up-to-date description of all available modules, functions, and workflows implemented in EasySpectra is publicly available in the official documentation hosted on GitHub (https://github.com/matheusfreitas-bit/EasySpectra/tree/main) (accessed on 21 May 2026).

5. Current Limitations and Development Perspectives

Although the results presented in this study show that EasySpectra is capable of supporting different stages of the spectral analysis workflow, some limitations should be acknowledged. The purpose of this study was to present the platform and demonstrate its analytical potential through representative case studies, rather than to provide a fully comprehensive validation across all possible sensors, crops, environments, and acquisition conditions.
In addition, the quality of the outputs still depends, to some extent, on the quality of the input data and preprocessing decisions made by the user. Variations in irradiance, sensor exposure, mixed targets within pixels, canopy structure, and terrain irregularities can affect the radiometric and geometric consistency of images. EasySpectra includes correction, alignment, and normalization routines to reduce these effects; however, as with any platform applied to real field data, such procedures cannot completely remove all sources of variability associated with image acquisition.
From a practical perspective, the current geospatial workflow for orthomosaic generation still depends on integration with OpenDroneMap through Docker, which may add an additional technical step for some users to consider. In addition, features such as batch automation and broader validation with a wider range of sensors are important for future development. The present study also did not include a formal usability assessment with independent users or a systematic benchmark for the processing times. However, these points should be understood as part of the current stage of development of the platform rather than as limitations of its underlying concept. Because EasySpectra is open-source, modular, and extensible, it was designed to evolve over time by incorporating new algorithms, expanding its compatibility, and progressively increasing its applicability across different spectral analysis scenarios.

6. Availability, Code, and Maintenance

EasySpectra is an open-source software that is freely available to the scientific community. The complete source code, together with the documentation and usage examples, is hosted in a public GitHub repository, which makes the development process transparent and allows users to follow, test, and adapt the software to their requirements. To ensure long-term availability and proper citation, a stable release of the software was archived on Zenodo and assigned a persistent digital object identifier (DOI: https://doi.org/10.5281/zenodo.18275020).
The GitHub repository is used as the main platform for development and maintenance, where new features and improvements are gradually added, and the existing components are refined over time. Users are encouraged to report issues or suggest enhancements through the repository, and contributions are welcomed by the authors. Owing to its modular design, EasySpectra can be extended with new preprocessing routines and analysis tools without major changes to the existing code base. This development model helps keep the software up to date while remaining flexible enough to follow the evolving needs of multispectral and hyperspectral image analysis workflows.

7. Conclusions

EasySpectra provides an accessible and fully integrated platform for multispectral and hyperspectral image analysis, consolidating the entire workflow from data ingestion and radiometric preprocessing to spectral analysis, index computation, and dataset construction, within a single and user-friendly environment. By reducing the technical barriers associated with handling spectral imagery, the software facilitates reproducible and standardized analyses in weed science and related fields, such as plant phenotyping and precision agriculture. The modular architecture of EasySpectra allows flexible adaptation to different datasets and experimental designs, particularly when spectral data are available in supported formats such as single-band TIFF images, multiband raster products, or spectral cubes with associated wavelength metadata. Future developments will focus on the integration of machine- and deep-learning classifiers, batch-processing capabilities for large datasets, and advanced tools for high-throughput and large-scale experiments, further expanding the applicability of the platform for data-driven research in agricultural and environmental sciences.

Author Contributions

Conceptualization, methodology, software, formal analysis, visualization, supervision, project administration, and funding acquisition, M.d.F.S.; investigation, validation, and data curation, M.d.F.S., É.V.d.A., J.E.B. and F.d.P.B.; writing—original draft preparation, M.d.F.S.; writing—review and editing, M.d.F.S., G.B.P.B., L.T.R.T.R., E.L.d.C. and H.A.L. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), project/process number 442181/2023-0. The APC was funded by Universidade de Rio Verde.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The data and resources supporting the results of this study are openly available. The EasySpectra software, including source code, documentation, and usage examples, is publicly accessible through the official GitHub repository: https://github.com/matheusfreitas-bit/EasySpectra/tree/main, accessed on 27 May 2026. A stable version of the software has been archived on Zenodo and is available at: https://doi.org/10.5281/zenodo.18275020, ensuring long-term accessibility and reproducibility. All analyses presented in this study can be reproduced using the provided code and workflows. Additional data generated or analyzed during the current study are available from the corresponding author upon reasonable request.

Acknowledgments

The authors acknowledge the financial and institutional support provided by the Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) (project/process number 442181/2023-0), the Universidade de Rio Verde (UniRV) and the Mississippi State University (MSU), which were essential for the development of this study. The authors also thank the administrative and technical staff involved in the experimental and analytical activities. During: the preparation of this manuscript, the authors used ChatGPT (OpenAI, GPT-5) for the purpose of English language revision and text improvement. The authors have reviewed and edited the output and take full responsibility for the content of this publication.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Lu, B.; Dao, P.D.; Liu, J.; He, Y.; Shang, J. Recent advances of hyperspectral imaging technology and applications in agriculture. Remote Sens. 2020, 12, 2659. [Google Scholar] [CrossRef]
  2. Ronay, I.; Lati, R.N.; Kizel, F. Weed Species Identification: Acquisition, Feature Analysis, and Evaluation of a Hyperspectral and RGB Dataset. Remote Sens. 2024, 16, 2808. [Google Scholar] [CrossRef]
  3. Alkhaled, A.Y.; Townsend, P.A.; Heberlein, B.C.; Hills, W.B.; Wang, Y. Using hyperspectral remote sensing to develop new insights into precision nitrogen management for potato production. Smart Agric. Technol. 2025, 12, 101372. [Google Scholar] [CrossRef]
  4. Qiao, L.; Fan, J.; Franco, J.G.; Duff, A.J.; Diaz-Vallejo, E.J.; Yu, T.; Zhang, Z. Hyperspectral reconstruction based on low-cost UAV RGB imagery for alfalfa yield prediction. Biosyst. Eng. 2026, 261, 104328. [Google Scholar] [CrossRef]
  5. Colovic, M.; Yu, K.; Todorovic, M.; Cantore, V.; Hamze, M.; Albrizio, R.; Stellacci, A.M. Hyperspectral vegetation indices to assess water and nitrogen status of sweet maize crop. Agronomy 2022, 12, 2181. [Google Scholar] [CrossRef]
  6. Naik, B.B.; Naveen, H.R.; Sreenivas, G.; Choudary, K.K.; Devkumar, D.; Adinarayana, J. Identification of water and nitrogen stress indicative spectral bands using hyperspectral remote sensing in maize during post-monsoon season. J. Indian Soc. Remote Sens. 2020, 48, 1787–1795. [Google Scholar] [CrossRef]
  7. Feng, L.; Wu, B.; He, Y.; Zhang, C. Hyperspectral imaging combined with deep transfer learning for rice disease detection. Front. Plant Sci. 2021, 12, 693521. [Google Scholar] [CrossRef]
  8. Zhang, X.; Vinatzer, B.A.; Li, S. Hyperspectral imaging analysis for early detection of tomato bacterial leaf spot disease. Sci. Rep. 2024, 14, 27666. [Google Scholar] [CrossRef] [PubMed]
  9. Mensah, B.; Betitame, K.; Zhang, Y.; Peters, T.; Ram, B.G.; Jalal, M.; Sun, X. Hyperspectral imaging and machine learning for herbicide-resistant kochia identification in sugarbeet. J. Agric. Food Res. 2025, 23, 102284. [Google Scholar] [CrossRef]
  10. Bakhshipour, A.; Ramezanpour, S. Harnessing hyperspectral imaging and machine learning techniques for accurate discrimination of peanut plants and weeds. Sci. Rep. 2025, 15, 44478. [Google Scholar] [CrossRef]
  11. Estrada, P.V.; Estrada, J.B.; Valdez-Herrera, J.; Shrestha, A. Rapid detection of ALS inhibitor-resistant weeds using full-spectrum imaging and a CNN. Weed Technol. 2025, 39, e20. [Google Scholar] [CrossRef]
  12. Zhang, T.; Huang, Y.; Reddy, K.N.; Yang, P.; Zhao, X.; Zhang, J. Using machine learning and hyperspectral images to assess damages to corn plant caused by glyphosate and to evaluate recoverability. Agronomy 2021, 11, 583. [Google Scholar] [CrossRef]
  13. Niu, Z.; Rehman, T.; Young, J.; Johnson, W.G.; Yokoo, T.; Young, B.; Jin, J. Hyperspectral analysis for discriminating herbicide site of action. Sensors 2023, 23, 9300. [Google Scholar] [CrossRef] [PubMed]
  14. Niu, Z.; Young, J.; Johnson, W.G.; Young, B.; Wei, X.; Jin, J. Early detection of dicamba and 2,4-D herbicide drifting injuries on soybean with a new spatial-spectral algorithm. Remote Sens. 2023, 15, 5771. [Google Scholar] [CrossRef]
  15. Ram, B.G.; Gc, S.; Sun, X. Herschel Vision: A hyperspectral image processing software for data preparation in machine learning pipelines. SoftwareX 2025, 30, 102089. [Google Scholar] [CrossRef]
  16. Ram, B.G.; Mettler, J.; Howatt, K.; Ostlie, M.; Sun, X. WeedCube: Proximal hyperspectral image dataset of crops and weeds for machine learning applications. Data Br. 2024, 56, 110837. [Google Scholar] [CrossRef]
  17. Gaidel, A.V.; Podlipnov, V.; Ivliev, N.; Paringer, R.; Ishkin, P.; Mashkov, S.; Skidanov, R. Agricultural plant hyperspectral imaging dataset. Comput. Opt. 2023, 47, 442–450. [Google Scholar] [CrossRef]
  18. Wang, Z.; Lin, T.; Li, H.; Yin, Y.; Suo, Y.; Yang, H.; Li, Y.; Cai, F.; Xiao, L. Proximal hyperspectral detection of rice and weed: Characterization and discriminant analysis. Front. Plant Sci. 2025, 16, 1685985. [Google Scholar] [CrossRef]
  19. Panozzo, J.; Guthridge, K.M.; Panozzo, J.; Ludlow, E.J.; Spangenberg, G.C.; Rochfort, S.J. Near-Infrared Hyperspectral Imaging Pipelines for Pasture Seed Quality Evaluation: An Overview. Sensors 2022, 22, 1981. [Google Scholar] [CrossRef]
  20. Nex, F.; Remondino, F. UAV for 3D mapping applications: A review. Appl. Geomat. 2014, 6, 1–15. [Google Scholar] [CrossRef]
  21. Turner, D.; Lucieer, A.; Watson, C. An automated technique for generating georectified mosaics from ultra-high resolution UAV imagery. Remote Sens. 2014, 6, 429–455. [Google Scholar]
  22. James, M.R.; Robson, S.; d’Oleire-Oltmanns, S.; Niethammer, U. Optimising UAV topographic surveys. Earth Surf. Process. Landf. 2017, 42, 1160–1171. [Google Scholar]
  23. Remondino, F.; Spera, M.G.; Nocerino, E.; Menna, F.; Nex, F. State of the art in UAV photogrammetry for mapping and 3D modeling of landscapes and structures. ISPRS J. Photogramm. Remote Sens. 2017, 123, 144–166. [Google Scholar]
  24. Smith, M.W.; Carrivick, J.L.; Quincey, D.J. Structure from motion photogrammetry in physical geography. Prog. Phys. Geogr. 2016, 40, 247–275. [Google Scholar] [CrossRef]
  25. Aasen, H.; Honkavaara, E.; Lucieer, A.; Zarco-Tejada, P.J. Quantitative remote sensing at ultra-high resolution with UAV spectroscopy: A review of sensor technology, measurement procedures, and data correction workflows. Remote Sens. Environ. 2018, 216, 374–392. [Google Scholar] [CrossRef]
  26. Wang, C.; Myint, S.W.; Wang, Z.; Song, J. Spatiotemporal monitoring of urban expansion and its impacts on vegetation using high-resolution UAV imagery and object-based image analysis. ISPRS J. Photogramm. Remote Sens. 2020, 164, 38–49. [Google Scholar]
  27. Fonseka, C.L.I.S.; Halloluwa, T.; Hewagamage, K.P.; Rathnayake, U.; Bandara, R.M.U.S. A dataset of unmanned aerial vehicle multispectral images acquired over a field to identify nitrogen requirements. Data Br. 2024, 54, 110479. [Google Scholar] [CrossRef] [PubMed]
  28. Suomalainen, J.; Oliveira, R.A.; Hakala, T.; Koivumäki, N.; Markelin, L.; Näsi, R.; Honkavaara, E. Direct reflectance transformation methodology for drone-based hyperspectral imaging. Remote Sens. Environ. 2021, 266, 112691. [Google Scholar] [CrossRef]
  29. Deng, L.; Mao, Z.; Li, X.; Hu, Z.; Duan, F.; Yan, Y. UAV-based multispectral remote sensing for precision agriculture: A comparison between different cameras. ISPRS J. Photogramm. Remote Sens. 2018, 146, 124–136. [Google Scholar] [CrossRef]
  30. Zhu, H.; Huang, Y.; An, Z.; Zhang, H.; Han, Y.; Zhao, Z.; Li, F.; Zhang, C.; Hou, C. Assessing radiometric calibration methods for multispectral UAV imagery and the influence of illumination, flight altitude and flight time on reflectance, vegetation index and inversion of winter wheat AGB and LAI. Comput. Electron. Agric. 2024, 208, 108821. [Google Scholar] [CrossRef]
  31. Yan, C. A review on spectral data preprocessing techniques for machine learning and quantitative analysis. iScience 2025, 28, 112759. [Google Scholar] [CrossRef]
  32. Cao, F.; Yang, Z.; Ren, J.; Jiang, M.; Ling, W.-K. Does normalization methods play a role for hyperspectral image classification? arXiv 2017, arXiv:1710.0293932. [Google Scholar] [CrossRef]
  33. Ram, B.G.; Oduor, P.; Igathinathane, C.; Howatt, K.; Sun, X. A systematic review of hyperspectral imaging in precision agriculture. Comput. Electron. Agric. 2024, 222, 109037. [Google Scholar] [CrossRef]
  34. Mensah, B.; Rai, N.; Betitame, K.; Sun, X. Advances in weed identification using hyperspectral imaging: A comprehensive review. J. Agric. Food Res. 2024, 18, 101388. [Google Scholar] [CrossRef]
  35. Zhang, G.; Abdulla, W. Optimizing hyperspectral imaging classification performance with CNN and batch normalization. Appl. Spectrosc. Rev. 2023, 1, 27551857231204622. [Google Scholar] [CrossRef]
  36. Hong, D.; Li, C.; Yokoya, N.; Zhang, B.; Jia, X.; Plaza, A.; Gamba, P.; Benediktsson, J.A.; Chanussot, J. Hyperspectral imaging. Nat. Rev. Methods Primers 2026, 6, 19. [Google Scholar] [CrossRef]
  37. Mazdeyasna, S.; Arefin, M.S.; Fales, A.; Leavesley, S.J.; Pfefer, T.J.; Wang, Q. Evaluating normalization methods for robust spectral performance assessments of hyperspectral imaging cameras. Biosensors 2025, 15, 20. [Google Scholar] [CrossRef]
Figure 1. EasySpectra’s internal data flow architecture. The diagram summarizes the main data interfaces used by the platform, from input spectral files to the generation of co-registered cubes, pre-processed cubes, ROI-based analytical products, and final tables exported for statistical analysis or machine learning models.
Figure 1. EasySpectra’s internal data flow architecture. The diagram summarizes the main data interfaces used by the platform, from input spectral files to the generation of co-registered cubes, pre-processed cubes, ROI-based analytical products, and final tables exported for statistical analysis or machine learning models.
Agriengineering 08 00224 g001
Figure 2. EasySpectra workflow.
Figure 2. EasySpectra workflow.
Agriengineering 08 00224 g002
Figure 3. Alignment strategies implemented in EasySpectra using OpenDroneMap: (A) fast processing mode and (B) full processing mode.
Figure 3. Alignment strategies implemented in EasySpectra using OpenDroneMap: (A) fast processing mode and (B) full processing mode.
Agriengineering 08 00224 g003
Figure 4. Representative portion of the study area used for spectral analysis. The Normalized Difference Vegetation Index (NDVI—(A)), the Normalized Difference RedEdge Index (NDRE—(B)) and the Green Normalized Difference Vegetation Index (GNDVI—(C)) were computed using the EasySpectra software. 1 represents the spectral analysis obtained on 15 April 2025 while 2 corresponds to the spectral analysis obtained 7 days later.
Figure 4. Representative portion of the study area used for spectral analysis. The Normalized Difference Vegetation Index (NDVI—(A)), the Normalized Difference RedEdge Index (NDRE—(B)) and the Green Normalized Difference Vegetation Index (GNDVI—(C)) were computed using the EasySpectra software. 1 represents the spectral analysis obtained on 15 April 2025 while 2 corresponds to the spectral analysis obtained 7 days later.
Agriengineering 08 00224 g004
Figure 5. Normalized Difference Vegetation Index (NDVI) derived from Pix4Dfields and EasySpectra using original imagery, radiometrically corrected data, and corrected plus normalized datasets. Blue boxplots represents the spectral analysis obtained on 15 April 2025 while orange bloxplots corresponds to the spectral analysis obtained 7 days later. The central point represents the mean, the box and whiskers encompass 75% of the data, and points outside indicate outliers. n = number of observations equal 100.
Figure 5. Normalized Difference Vegetation Index (NDVI) derived from Pix4Dfields and EasySpectra using original imagery, radiometrically corrected data, and corrected plus normalized datasets. Blue boxplots represents the spectral analysis obtained on 15 April 2025 while orange bloxplots corresponds to the spectral analysis obtained 7 days later. The central point represents the mean, the box and whiskers encompass 75% of the data, and points outside indicate outliers. n = number of observations equal 100.
Agriengineering 08 00224 g005
Figure 6. Correlation of Normalized Difference Vegetation Index (NDVI) obtained from Pix4Dfields and EasySpectra considering original data (A), radiometrically corrected data (B), and radiometrically corrected and normalized data (C). Dashed line represents the linear trend of the data. R2 is the coefficient of determination; MBE is the mean bias error. 1 represents the spectral analysis obtained on 15 April 2025, while 2 corresponds to the spectral analysis obtained seven days later.
Figure 6. Correlation of Normalized Difference Vegetation Index (NDVI) obtained from Pix4Dfields and EasySpectra considering original data (A), radiometrically corrected data (B), and radiometrically corrected and normalized data (C). Dashed line represents the linear trend of the data. R2 is the coefficient of determination; MBE is the mean bias error. 1 represents the spectral analysis obtained on 15 April 2025, while 2 corresponds to the spectral analysis obtained seven days later.
Agriengineering 08 00224 g006
Figure 7. Normalized Difference Vegetation Index (NDVI) obtained using the EasySpectra (A) and WebODM (B) software, along with the orthomosaic of the area indicating the sampled points (C). The image was derived from the open-source dataset [27], corresponding to a flight conducted on 24 August 2023.
Figure 7. Normalized Difference Vegetation Index (NDVI) obtained using the EasySpectra (A) and WebODM (B) software, along with the orthomosaic of the area indicating the sampled points (C). The image was derived from the open-source dataset [27], corresponding to a flight conducted on 24 August 2023.
Agriengineering 08 00224 g007
Figure 8. RGB image of Amaranthus tuberculatus (waterhemp) acquired with a hyperspectral camera (A), original spectral profile of waterhemp (B), spectral profile after normalization using the max–min per band and standard normal variate methods (C) and spectral profile after normalization using the z-score per band method (D) extracted using EasySpectra. The yellow overlay in the image indicates a free-form polygonal Region of Interest (ROI) manually delineated using the EasySpectra software to extract spectral information for further analysis. The image was obtained from the WeedCube dataset [33].
Figure 8. RGB image of Amaranthus tuberculatus (waterhemp) acquired with a hyperspectral camera (A), original spectral profile of waterhemp (B), spectral profile after normalization using the max–min per band and standard normal variate methods (C) and spectral profile after normalization using the z-score per band method (D) extracted using EasySpectra. The yellow overlay in the image indicates a free-form polygonal Region of Interest (ROI) manually delineated using the EasySpectra software to extract spectral information for further analysis. The image was obtained from the WeedCube dataset [33].
Agriengineering 08 00224 g008
Figure 9. Normalized confusion matrix and F1-score obtained for the classification of different species based on hyperspectral profiles extracted using EasySpectra. The classification was performed using 10 randomly sampled points from 20 images per species, totaling 200 experimental samples.
Figure 9. Normalized confusion matrix and F1-score obtained for the classification of different species based on hyperspectral profiles extracted using EasySpectra. The classification was performed using 10 randomly sampled points from 20 images per species, totaling 200 experimental samples.
Agriengineering 08 00224 g009
Table 1. Operational parameters, execution rules, and constraints implemented in EasySpectra for region-of-interest (ROI) data export, random pixel sampling, and custom vegetation index computation.
Table 1. Operational parameters, execution rules, and constraints implemented in EasySpectra for region-of-interest (ROI) data export, random pixel sampling, and custom vegetation index computation.
FunctionalityUser-Defined ParameterRule Implemented in EasySpectra
ROI exportMean or individual pixelsExports one mean spectrum/index value or one row per valid pixel
Random samplingNumber of pixelsSampling without replacement
Random samplingRandom seedOptional integer seed for reproducible pixel selection
Small ROIRequested pixels > available pixelsAll available pixels are exported
Custom indexBand identifiersBands are referenced as b0, b1, …, bn
Custom indexMathematical expressionPython/NumPy-compatible expression returning a 2D array
Custom indexInvalid expressionIndex is not created and an error message is shown
Table 2. Mean and standard deviation of NDVI, EVI2, SAVI, OSAVI, GNDVI and NDRE values extracted from 13 sampled areas using WebODM Manager and EasySpectra. The vegetation-index were calculated from UAV multispectral imagery obtained from the open-source dataset, corresponding to the flight conducted on 24 August 2023.
Table 2. Mean and standard deviation of NDVI, EVI2, SAVI, OSAVI, GNDVI and NDRE values extracted from 13 sampled areas using WebODM Manager and EasySpectra. The vegetation-index were calculated from UAV multispectral imagery obtained from the open-source dataset, corresponding to the flight conducted on 24 August 2023.
NDVIEVI2SAVI
WebOMDEasyspectraWebOMDEasyspectraWebOMDEasyspectra
Areaμ/σμ/σμ/σμ/σμ/σμ/σ
10.43/0.090.40/0.070.40/0.080.37/0.060.47/0.100.44/0.08
20.37/0.080.37/0.080.34/0.070.34/0.070.41/0.090.41/0.09
30.32/0.160.30/0.110.29/0.150.28/0.100.35/0.180.33/0.12
40.26/0.110.28/0.090.24/0.100.26/0.080.29/0.120.31/0.10
50.23/0.140.21/0.120.21/0.130.19/0.110.25/0.150.23/0.13
60.39/0.120.36/0.080.36/0.110.33/0.070.43/0.130.40/0.09
70.41/0.110.39/0.080.38/0.100.36/0.070.45/0.120.43/0.09
80.39/0.130.42/0.080.36/0.120.39/0.070.43/0.140.46/0.09
90.43/0.100.39/0.090.40/0.090.36/0.080.47/0.110.43/0.10
100.24/0.210.22/0.140.22/0.190.20/0.130.26/0.230.24/0.15
110.37/0.170.30/0.100.34/0.160.28/0.090.41/0.190.33/0.11
120.18/0.150.16/0.090.17/0.140.15/0.080.20/0.170.18/0.10
130.08/0.130.09/0.100.07/0.120.08/0.090.09/0.140.10/0.11
OSAVIGNDVINDRE
WebOMDEasyspectraWebOMDEasyspectraWebOMDEasyspectra
Areaμ/σμ/σμ/σμ/σμ/σμ/σ
10.39/0.080.36/0.060.37/0.080.34/0.060.26/0.050.24/0.04
20.34/0.070.34/0.070.31/0.070.31/0.070.22/0.050.22/0.05
30.29/0.150.27/0.100.27/0.140.26/0.090.19/0.100.18/0.07
40.24/0.100.25/0.080.22/0.090.24/0.080.16/0.070.17/0.05
50.21/0.130.19/0.110.20/0.120.18/0.100.14/0.080.13/0.07
60.35/0.110.33/0.070.33/0.100.31/0.070.23/0.070.22/0.05
70.37/0.100.35/0.070.35/0.090.33/0.070.25/0.070.23/0.05
80.35/0.120.38/0.070.33/0.110.36/0.070.23/0.080.25/0.05
90.39/0.090.35/0.080.37/0.090.33/0.080.26/0.060.23/0.05
100.22/0.190.20/0.130.20/0.180.19/0.120.14/0.130.13/0.08
110.34/0.150.27/0.090.31/0.140.26/0.090.22/0.100.18/0.06
120.16/0.140.15/0.080.15/0.130.14/0.080.11/0.090.10/0.05
130.07/0.120.08/0.090.07/0.110.08/0.090.05/0.080.05/0.06
μ = mean; σ = standard deviation.
Table 3. Main preprocessing approaches available in EasySpectra, expected effect on spectral data, and recommended application scenarios.
Table 3. Main preprocessing approaches available in EasySpectra, expected effect on spectral data, and recommended application scenarios.
Preprocessing MethodMain Effect on Spectral DataRecommended UseMain Caution
Radiometric
correction
Converts raw digital values toward reflectance-like valuesQuantitative comparison among images and vegetation-index computationDepends on correct reference panels or reliable metadata
Min–max
normalization
Rescales values to a common rangeReducing scale differences among bands or imagesSensitive to extreme values
Z-score
standardization
Centers and scales each variable by mean and standard deviationMachine-learning models sensitive to variable scaleMay reduce absolute reflectance interpretation
SNVCenters and scales each individual spectrumReducing scatter and multiplicative effectsCan remove magnitude differences that may be biologically relevant
Savitzky–Golay
smoothing
Reduces high-frequency spectral noisePreserving spectral shape while reducing noiseExcessive smoothing can attenuate narrow spectral features
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Souza, M.d.F.; Almeida, É.V.d.; Borkowski, J.E.; Basílio, F.d.P.; Braz, G.B.P.; Reginaldo, L.T.R.T.; Carmo, E.L.d.; Lins, H.A. EasySpectra: An Integrated Open-Access Platform for Spectral Image Analysis. AgriEngineering 2026, 8, 224. https://doi.org/10.3390/agriengineering8060224

AMA Style

Souza MdF, Almeida ÉVd, Borkowski JE, Basílio FdP, Braz GBP, Reginaldo LTRT, Carmo ELd, Lins HA. EasySpectra: An Integrated Open-Access Platform for Spectral Image Analysis. AgriEngineering. 2026; 8(6):224. https://doi.org/10.3390/agriengineering8060224

Chicago/Turabian Style

Souza, Matheus de Freitas, Éder Vaz de Almeida, Junior Eugenio Borkowski, Franco de Paula Basílio, Guilherme Braga Pereira Braz, Lais Tereza Rego Torquato Reginaldo, Eduardo Lima do Carmo, and Hamurábi Anízio Lins. 2026. "EasySpectra: An Integrated Open-Access Platform for Spectral Image Analysis" AgriEngineering 8, no. 6: 224. https://doi.org/10.3390/agriengineering8060224

APA Style

Souza, M. d. F., Almeida, É. V. d., Borkowski, J. E., Basílio, F. d. P., Braz, G. B. P., Reginaldo, L. T. R. T., Carmo, E. L. d., & Lins, H. A. (2026). EasySpectra: An Integrated Open-Access Platform for Spectral Image Analysis. AgriEngineering, 8(6), 224. https://doi.org/10.3390/agriengineering8060224

Article Metrics

Back to TopTop