A MATLAB GUI Demo for 3D Geophysical Predictive Modeling by Spectral Feature Subset Selection
This repository provides a Demo (evaluation) version of FSS3D, a MATLAB GUI for 3D geophysical predictive modeling in mineral exploration. FSS3D implements Spectral Feature Subset Selection (SFSS)—an integrated workflow that combines 3D geophysical inversion, multivariate feature extraction (PCA/ICA), wavelet-based spectral decomposition, and genetic-algorithm optimization to select predictive spectral features and reconstruct 3D geological targets from multiple geophysical images.
The Demo is intended for:
- Pre‑purchase evaluation of the workflow and interface
- Training / teaching on small 3D examples
- Non‑commercial exploratory use with limited grid size and parameter ranges
It shares the same scientific basis and general workflow as the full version, but enforces strict limits on model size and certain parameters to keep computations small and fast.
Please cite the software as:
Abbassi, B. (2024). FSS3D: Spectral Feature Subset Selection 3D – 3D Geophysical Predictive Modeling by Spectral Feature Subset Selection (Demo version). GitHub. https://github.com/bahmanabbassi/FSS3D
Scientific basis — please also cite when using the Demo in research:
- PhD thesis: Abbassi, B. (2018). Integrated imaging through 3D geophysical inversion, multivariate feature extraction and spectral feature selection. Thèse de doctorat, Université du Québec en Abitibi-Témiscamingue. https://depositum.uqat.ca/id/eprint/782/
- Paper: Abbassi, B., Cheng, L.-Z., Jébrak, M., and Lemire, D. (2022). 3D Geophysical Predictive Modeling by Spectral Feature Subset Selection in Mineral Exploration. Minerals, 12, 1296. https://doi.org/10.3390/min12101296
More information and related projects: https://github.com/bahmanabbassi
The Demo implements the same SFSS workflow as the full FSS3D but with the following key limitations:
-
Maximum number of voxels (grid resolution):
- Input and target grids are limited to Xn ≤ 50, Yn ≤ 50, Zn ≤ 50.
- If imported data would exceed these limits, the GUI:
- Caps the displayed Xn/Yn/Zn at 50, and
- Shows a popup message inviting you to obtain the full version.
-
Restricted parameter ranges:
- Certain advanced options in spectral/spatial feature extraction and genetic algorithm optimization are limited to small/medium values appropriate for demo-size models.
- Some controls present in the full version are non-editable or disabled.
-
No license file required (for the Demo only):
- The Demo runs directly in MATLAB with the above limitations.
- The full FSS3D uses a node-locked license and P-code distribution.
Despite these limits, the Demo allows you to:
- Load reduced 3D geophysical property models
- Extract spectral and spatial features
- Run feature subset selection and predictive modeling
- Visualize 3D targets and predictions on small grids
- Hardware: Windows-based PC with at least 8 GB RAM (more RAM and SSD/NVMe recommended for better performance).
- Software: MATLAB R2024a (24.1) or later.
- Required MATLAB Toolboxes:
- Statistics and Machine Learning Toolbox
- Optimization Toolbox
Installation:
- Download or clone this Demo repository to your preferred directory.
- In MATLAB, set the folder containing the FSS3D program files (including
FSS3D.mlapp) as the Current Folder. - Launch the GUI by either:
- Opening
FSS3D.mlappin App Designer and pressing Run, or - Typing
FSS3Din the MATLAB Command Window.
- Opening
No license file is needed for the Demo; it runs with the built-in voxel and parameter limits.
- Create CSV files with columns
X, Y, Z, Property(for geophysical inputs and for the target variable). - Ensure coordinates are in UTM meters and consistent across all datasets.
- For the Demo, downsample or crop your data so that the resulting grid will be roughly within 50 × 50 × 50 voxels.
- In Project Coordinates (in UTM meters), enter:
X Min,X MaxY Min,Y MaxZ Min,Z Max
- Click Calculate to initialize the project grid.
- In Input Data, set approximate X Spacing, Y Spacing, Z Spacing.
- The app will compute
Xn,Yn,Zn; in the Demo they are capped at 50.
- The app will compute
- In the Input Data panel, click Add Data.
- Choose a CSV file (e.g., resistivity, chargeability, susceptibility).
- The app will:
- Read the CSV
- Interpolate / grid the property into the project volume
- Update
Xn,Yn,Zn(capped at 50 in the Demo)
- Repeat Add Data for additional properties.
- Use the Display panel (sliders X/Y/Z, AZ, EL) to inspect the loaded volumes.
- In the Target Data panel, click Add Target.
- Choose a CSV with
X, Y, Z, Target(e.g., grade or lithology indicator). - The app interpolates to a target volume on the project grid (also limited to 50³ voxels in the Demo).
- Adjust Radius, Filter Ratio, and Scale Factor to control target smoothing and scaling.
- In Spatial Feature Extraction, set:
- Number of spatial features (within the demo-allowed range).
- In Spectral Feature Extraction:
- Choose the type of transform (PCA/ICA, CWT-based) and set:
- Number of CWT features
- Scales and angles (for 3D CWT)
- PCA/ICA convergence parameters (iterations, tolerance)
- Choose the type of transform (PCA/ICA, CWT-based) and set:
- Run the extraction; the app computes spatial/spectral feature volumes from the input data.
- Configure Genetic Algorithm parameters (population size, number of generations, etc.) within allowed demo limits.
- Start the GA-based Feature Subset Selection:
- Each candidate subset is evaluated by training a neural network (MLP) and measuring prediction error vs. the 3D target.
- The algorithm searches for subsets that balance prediction accuracy and parsimony (fewer features).
- When the GA ends, inspect:
- Selected features
- Objective values (errors and number of features)
- Use the Display controls to:
- Visualize input properties, target volume, and predicted 3D models.
- Compare slices in X/Y/Z for interpretation.
- Save figures or export data for further analysis in MATLAB or external tools.
FSS3D Demo uses the same core components as the full version; original license headers are preserved in the corresponding files.
-
Yet Another Wavelet Toolbox (YAWTB)
Used for 3D continuous wavelet transforms (CWT) and related wavelet functions. -
PCA and ICA Package (MATLAB Central)
Used for multivariate feature extraction (PCA/ICA) in both spatial and spectral domains.
Please acknowledge these components when using wavelet or PCA/ICA functionality in your work.
If you need to:
- Work with larger 3D grids (beyond the 50-voxel limits)
- Access the full set of parameters and advanced options
- Use FSS3D in production-scale mineral exploration studies
please contact the development team for information about the full FSS3D distribution and licensing.
Lead Developer: Bahman Abbassi
Principal Investigator: Li‑Zhen Cheng
Affiliation: Institut de Recherche en Mines et en Environnement (IRME), Université du Québec en Abitibi-Témiscamingue (UQAT)
Contact:
- GitHub: https://github.com/bahmanabbassi
- Email (research / academic): bahman.abbassi@uqat.ca
The full version is licensed (P-code with node-locked license tied to MAC address). Terms and pricing are handled through UQAT and project leads.
This Demo is provided “as is”, without any express or implied warranty. It is intended for evaluation, teaching, and research purposes on small examples. The author, principal investigator, and affiliated institutions are not responsible for any decisions or actions based on the results produced by this software.