[general]
name=PARACUDA-NG
qgisMinimumVersion=3.30
qgisMaximumVersion=4.99
description=Spectral machine learning: build, validate and apply regression models for spectroscopy and multispectral / hyperspectral imagery, integrated with QGIS raster layers.
about=PARACUDA-NG (PARAmetric CUbe Data Analysis, Next Generation) is a spectral machine-learning toolkit for spectroscopy and multispectral / hyperspectral remote sensing, embedded in QGIS as a native, dockable panel. A 7-step wizard (Data, Configuration, Preprocess, Model, Validate, Execution, Apply) takes you from loading spectral data through spectral resampling to a selectable sensor grid (Sentinel-2, Landsat 5/7/8/9, EnMAP, EMIT, PRISMA, DESIS, PlanetScope, VENuS and more), preprocessing (smoothing, continuum removal, derivatives, absorbance, baseline correction), and training or comparing regression models (PLS-R, SVM, Ridge, Lasso, MLR, Elastic Net, Huber, Gradient Boosting, Gaussian Process, Random Forest, XGBoost) with optional Optuna hyperparameter tuning and cross-validation. A trained model can be applied directly to a loaded QGIS raster layer, writing the prediction back as a new layer with a matching colour map, or to an unknown tabular dataset. Additional tools include compositional (CLR/ALR/ILR) modelling for parts that sum to 100 percent, a label-permutation and spectral-mixing integrity suite, cross-sensor spectral harmonisation (transfer functions), and a data converter for arbitrary instrument layouts. PARACUDA-NG needs a few Python packages QGIS does not ship (scikit-learn, joblib, optuna, xgboost, rasterio, spectral); it installs them into QGIS's Python on first run, or via Tools then Install Python dependencies.
version=1.0.2
author=Sharad Kumar Gupta
email=sharadgupta27@gmail.com
tracker=https://github.com/sharadgupta27/paracuda-qgis/issues
repository=https://github.com/sharadgupta27/paracuda-qgis
homepage=https://paracuda-ng.github.io/
license=MIT
category=Raster
icon=icon.png
supportsQt6=True
hasProcessingProvider=False
experimental=False
deprecated=False
tags=spectroscopy,hyperspectral,multispectral,machine learning,regression,raster,remote sensing,soil,chemometrics,PLS,random forest,XGBoost,resampling,Sentinel-2,EnMAP,EMIT,PRISMA
changelog=1.0.2
    - Raster-layer filter resolves the QGIS 3.34+ scoped enum first and only falls back to the pre-3.34 unscoped member, so the Qt6 compatibility check is clean while QGIS 3.30-3.33 keeps working.
    - Renamed an ambiguous single-letter local (E741) and replaced a bare except (E722) in the models backend.
    1.0.1
    - Workbook XML in the Data Converter's fast .xlsx reader is now parsed with defusedxml, which refuses the entity declarations behind "billion laughs" expansion; without defusedxml installed the reader stands down and pandas reads the file as before.
    - Replaced every silent try/except/pass with contextlib.suppress so the intent is explicit, and documented the two subprocess call sites that launch pip.
    1.0.0
    - First QGIS plugin release: the full 7-step spectral-ML wizard as a native, dockable Qt6 panel (QGIS 3.30+ and QGIS 4).
    - Apply a trained model to a loaded QGIS raster layer and add the prediction back as a new layer with a matching colour map.
    - Data / Configuration / Preprocess / Model / Validate / Execution / Apply steps with a live Model Development Flow diagram (exportable at 300 DPI).
    - Sensor resampling for Sentinel-2, Landsat 5/7/8/9, EnMAP, EMIT, PRISMA, DESIS, PlanetScope and VENuS, plus custom FWHM/SRF grids and band binning.
    - Single and batch model runs, Find Best Preprocessing search, Optuna tuning, K-Fold / Leave-One-Out / Leave-P-Out cross-validation, and compositional (CLR/ALR/ILR) modelling.
    - Check Spectral Integrity (label-permutation and spectral-mixing tests) and Spectral Harmonization tools, plus a Data Converter.
    - Data loading runs off the UI thread behind a progress dialog and picks the fastest available reader, roughly halving the time to open a large spreadsheet.
    - Data Distribution inspects one property at a time from a drop-down, with a histogram, boxplot, normal Q-Q plot, cumulative distribution and findings.
    - Noisy-edge and water-band exclusion presets follow the selected spectral domain (VSWIR, LWIR or both) and merge into the Omit field instead of stacking duplicates.
    - Automatic first-run installation of the required Python packages; five selectable themes (Ocean, Slate, Forest, Light-Contrast, Dark).
