Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NASA Volcanic Ash FTIR Spectroscopy Analysis

R Python License

Automated analysis pipeline for FTIR spectroscopy data of basaltic volcanic ash samples using KBr pellet transmission method.

📋 Project Overview

This project analyzes Fourier Transform Infrared (FTIR) spectroscopy data from volcanic ash samples to identify mineral composition. The pipeline includes:

  • Baseline normalization (KBr Blank ÷ Control)
  • Peak detection for mineral identification
  • Calibration quality assessment
  • Publication-ready visualizations

Samples Analyzed

Sample ID Type Concentrations
20161113-3B Basaltic ash (milled, 125μm) 0.5%, 1.0%, 1.5%, 2.0%, 2.5%
A990308-lb Basaltic ash (milled, 125μm) 0.5%, 1.0%, 1.5%, 2.0%, 2.5%

📁 Repository Structure

NASA-FTIR-Spectroscopy/
│
├── README.md                           # This file
├── .gitignore                          # Git ignore rules
│
├── scripts/
│   ├── R/
│   │   ├── nasa_spectroscopy_analysis.R        # Main R analysis script
│   │   └── calibration_check.R                 # Calibration assessment
│   │
│   └── Python/
│       └── spectroscopy_analysis.py            # Python analysis script
│
├── reports/
│   ├── calibration_check.Rmd                   # Basic calibration report
│   └── calibration_check_with_comparison.Rmd   # Full report with old vs new comparison
│
├── outputs/
│   ├── plots/                          # Generated visualizations
│   └── tables/                         # CSV output files
│
├── data/                               # Raw data (not tracked - see Data section)
│   └── .gitkeep
│
└── docs/
    ├── METHODS.md                      # Detailed methodology
    └── CALIBRATION_GUIDE.md            # Spectrometer calibration guide

🚀 Quick Start

Prerequisites

R (recommended):

install.packages(c("tidyverse", "pracma", "gridExtra", "knitr", "kableExtra"))

Python (alternative):

pip install pandas numpy scipy matplotlib

Running the Analysis

Option 1: R (Recommended)

# Open RStudio and run:
source("scripts/R/nasa_spectroscopy_analysis.R")

Option 2: R Markdown Report

# In RStudio, open and knit:
rmarkdown::render("reports/calibration_check_with_comparison.Rmd")

Option 3: Python

python scripts/Python/spectroscopy_analysis.py

📊 Calibration Status

Current Metrics (Latest Test Data)

Metric Value Target Status
Baseline Mean 0.519 ~1.0 ⚠️ Marginal
CV 12.0% < 5% ⚠️ Marginal
Baseline SD 0.062 < 0.05 ⚠️ Marginal

Progress from Original Data

Metric OLD NEW Improvement
CV 23.6% 12.0% ⬇️ 49% better
Mean 0.294 0.519 ⬆️ 76% closer to 1.0
Status ✗ Poor ⚠️ Marginal ✅ Improving

🔬 Methodology

Normalization Process

  1. Baseline Correction:

    Normalized_Baseline = KBr_Blank / Control
    
  2. Sample Normalization:

    Normalized_Sample = Sample / Normalized_Baseline
    
  3. Peak Detection:

    • Scipy find_peaks() (Python) or pracma::findpeaks() (R)
    • Prominence threshold: 0.05
    • Minimum distance: 10 points

Expected Mineral Signatures

Wavenumber (cm⁻¹) Vibration Mode Mineral
1000-1100 Si-O stretch Silicates
450-550 Si-O-Si bend Silicates
650-700 Al-O vibration Feldspars
800-900 Fe-O vibration Iron oxides
3400-3600 O-H stretch Hydration

📈 Output Examples

Calibration Check Plot

Calibration Check

Normalized Baseline Comparison

Baseline Comparison


📂 Data

Raw FTIR data files are not included in this repository due to size.

To use this pipeline:

  1. Place your data in the data/ folder
  2. Update file paths in the scripts
  3. Run the analysis

Expected data structure:

data/
├── New Kbr Press/
│   ├── Control.CSV
│   └── Kbr Blank 1.CSV
│
├── KBr 125um 20161113-3B (milled)/
│   ├── KBr 0.5% Volcanic Ash (125um) 20161113-3B/
│   ├── KBr 1% Volcanic Ash (125um) 20161113-3B/
│   └── ...
│
└── KBr 125um A990308-lb (milled)/
    └── ...

👥 Contributors

Name Role Affiliation
Ethan Herrington Lead Researcher Northern Arizona University, Mechanical Engineering
Holden Hrabak Lead Data Analyst Northern Arizona University, Software Engineering

Contributions

Ethan Herrington — Project conception, experimental design, sample preparation, FTIR data acquisition, spectrometer calibration, and research methodology.

Holden Hrabak — Data analysis pipeline development, statistical analysis, visualization design, quality control metrics, and technical documentation.


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


📧 Contact

For questions about this analysis pipeline, please open an issue on this repository.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages