Paracuda is an open-source tool for analyzing spectral data and building, validating, and applying machine-learning prediction models - designed for spectroscopy and hyperspectral remote sensing, but usable for any tabular spectral dataset.
The interface is organized as a 7-step wizard (Data → Configuration → Preprocess → Model → Validate → Execution → Apply) with a live Model Development Flow diagram, so a complete workflow - from loading spectra to applying a trained model on a hyperspectral image - can be run without writing any code.
- Flexible input: load spectral data from Excel (
.xlsx,.xls,.ods) or CSV - Data Converter: a built-in wizard that auto-detects arbitrary instrument layouts
(row-wise or transposed/column-wise), handles
nm/µmunits, optionally merges a separate target properties (soil/vegetation) file, and exports to the Paracuda-compatible format - Data checks & statistics: inspect loaded data and export summary statistics
- Multi-property selection: analyze several properties in a single run
- Preprocessing: Continuum Removal, First Derivative, Second Derivative, Absorbance (plus optional PCA dimensionality reduction in the model pipeline)
- Band resampling (7 methods): Linear, Nearest-Neighbour, Quadratic and Cubic-Spline interpolation, Gaussian SRF convolution, Empirical SRF integration, and Band Averaging - for harmonizing spectra to a target sensor's band configuration
- Wavelength exclusion: drop noisy regions with custom ranges or one-click presets (water-absorption bands, noisy detector edges)
- Custom band definitions: upload per-band FWHM or full Spectral Response Function (SRF) tables for bandwidth-aware resampling
- Regression models: PLS-R, SVM, Ridge, Lasso, Multiple Linear Regression, Elastic Net, Huber Regressor, Gradient Boosting, Gaussian Process, Random Forest, and XGBoost
- Compositional modeling: ALR / CLR / ILR log-ratio transforms so predictions of sum-constrained parts (e.g. sand + silt + clay) add up to 100%
- Hyperparameter tuning: automated optimization (Optuna) for supported models
- Cross-validation: K-Fold, Leave-One-Out, and Leave-P-Out strategies
- Multi-model comparison: train and compare multiple models automatically
- Best-fit recommendation: suggests the best model per property from R², RMSE, and cross-validation metrics
- Automated plots: observed-vs-predicted scatter plots, reflectance-spectra plots, and feature-importance charts (importance bars for tree models; wavelength-correlation plots for others)
- Comprehensive reporting: Excel workbooks with per-model comparison sheets plus multi-page PDF plot reports (model file, Excel report, and PDF share one run timestamp)
- Hyperspectral image prediction: apply a trained model across a full image cube
- Multi-format geospatial I/O: GeoTIFF/TIFF, ENVI (
.dat/.bil/.bip/.bsq+.hdr), ERDAS Imagine (.img), NITF, and PCIDSK - wavelengths/FWHM are recovered from ENVI headers, and predictions are written back in the same format with georeferencing preserved - Robust handling: automatic gain/offset scaling, background/no-data and bad-band masking, and memory-safe chunked processing for large scenes
- Resampled-cube export: optionally export the resampled image (or tabular spectra) to verify the harmonization step
- Themes: Ocean, Slate, Forest, Light-Contrast, and Dark (View → Theme)
- Model Development Flow: a live, themed pipeline diagram that reflects your current settings and can be exported at 300 DPI
- Built-in Help Assistant: searchable in-app guidance (see
HELP_SYSTEM_README.md)
Not every instrument exports data in the layout Paracuda expects. The Paracuda Data
Converter (Tools → Data Converter, or run utils/data_converter.py) is a three-step
wizard - Load Data → Configure → Preview & Export - that auto-detects the layout of an
arbitrary Excel/CSV file and converts it to the standard
Names | Prop1 … PropN | WL1 … WLM format.
Paracuda III is organized into focused packages:
| Path | Contents |
|---|---|
paracuda.py |
Launcher entry point |
gui/ |
Tkinter application, split into composable mixins |
preprocessing/ |
Spectral preprocessing, resampling, compositional transforms |
models/ |
Model training, hyperparameter tuning, batch processing |
validation/ |
Cross-validation |
utils/ |
File I/O, data converter, image processing, help assistant |
paracuda_theme.py |
Shared color themes |
If you're not comfortable installing packages or running scripts from a terminal, just
use the included launcher - double-click run_paracuda.bat. It automatically:
- Finds your Conda installation (Miniforge, Miniconda, or Anaconda)
- Creates the
paracudaenvironment and installs everything fromrequirements.txtthe first time you run it (this one-time setup takes a few minutes) - Activates the
paracudaenvironment and launches Paracuda III
The only prerequisite is a Conda installation (Miniforge, Miniconda, or Anaconda). If Conda can't be found, or setup fails, the launcher prints clear guidance and stays open so you can read the message.
The tool uses several Python packages listed in requirements.txt:
pip install -r requirements.txtRun the tool from the repository root:
python paracuda.pyA typical batch workflow:
- Data - load spectral data and select one or more properties
- Configuration / Preprocess - choose resampling, exclusions, and preprocessing
- Model / Validate - pick single or multiple models and a cross-validation strategy
- Execution - run the analysis to get an Excel report, PDF plots, and best-model recommendations, then save the trained model
- Apply - load a hyperspectral image or new dataset and predict with the saved model
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License - see the LICENSE file for details.
If you use this software in your research, please cite:
@software{Paracuda2026,
author = {Sharad Kumar Gupta},
title = {Paracuda III: An Open-Source Machine Learning tool for Spectroscopic Analysis},
year = {2026},
url = {https://github.com/sharadgupta27/paracuda}
}
This software is based on the Paracuda II tool:
Carmon, N., & Ben-Dor, E. (2017). An advanced analytical approach for spectral-based modelling of soil properties. International Journal of Emerging Technologies and Advanced Engineering, 7, 90–97.
For commercial licensing inquiries, please contact: sharadgupta27@gmail.com

