This repository serves to consolidate and optimize the great work started in reu2024-hyperspectral-camera. Please visit the original repository for a detailed history of the project.
The purpose of the project is to install a hyperspectral camera in the Laser Diode Floating Zone (LDFZ) furnace at PARADIM Johns Hopkins. Temperature is a critical parameter in floating zone bulk crystal growth, but direct measurement is often impractical due to safety concerns and varying material emissivity. This projects ascertains temperatures via pyrometry, a non-contact technique that measure the intensity of emitted radiation from the sample. Our approach uses hyperspectral imaging -- capturing intensity values values across hundreds of wavelengths at each pixel. This spectral information enables accurate temperature estimation by accounting for emissivity variations and providing spatially resolved temperature maps. The result is a generated image where each pixel corresponds to a temperature reading, allowing the user to see temperature gradients and hotspots across the growth region.
The raw data is too large to upload to GitHub. The data is located here as of 1/30/2025.
The latest version of PyrometryAnalysis exports a csv into: export/{image_name}/{date}_b{binning_factor}.csv.
This repository showcases the evolving development of a hyperspectral pyrometry method. Older functional versions of the code are found in archive/.
The following scripts conduct Pyrometry
pyro_1.0.0.py - unchanged pyrometry analysis ('clean_analysis.py') from reu2024.
pyro_2.0.0.py - optimized and parallelized improvement of original.
pyro_3.0.0.py - Latest version with highly detailed logging, documentation, minor optimizations, command-line arguments, and configuration.
Ensure you have the required dependencies installed by running:
pip install -r requirements.txtRun the script providing the required arguments.
python pyro_3.0.0.py [options] datafolderRequired Arguments
datafolder- Path to the input folder containing the hyperspectral data. The raw data should include:darkReference.rawdarkReference.hdrraw.rawraw.hdrwhiteReference.rawwhiteReference.hdr
Optional Arguments
--ncpu NCPU- Number of CPU processors to use. This defaults to all avaliable if not provided.--bin BIN- The binning factor reduces the resolution of the input image, reducing computational load at the expense of preciseness. The greater the number, the more reduction. This defaults to 1 (no binning, full resolution).--pltcoords PLTCOORDS- Space-seperated list of coordinates (e.g."0,0 1,2 2,3") to plot Fitted Spectrum for.--quiet- Only log high-level information (WARNING, ERROR, CRITICAL)--verbose- Log all levels of information (DEBUG, INFO, WARNING, ERROR, CRITICAL).