Analysis of spectral interferogram data using a fast-Fourier transform (FFT) on the NIREOS GEMENI interferometer.
Unfortunately, we no longer maintain this project actively for lack of time. We nevertheless hope that these scripts will be useful to anyone performing photoluminescence or interferometry measurements.
Download scripts to your computer. The main scripts are "Gemini_Averaged_MAP_script_CJH.py" and "Gemini_MAP_script_CJH.py". To run these scrpits, make sure they are in the same directory as all the other helper .py files. Also, the 3 calibration files (202009015_parameters_cal.txt; 202009015_parameters_int.txt; 202009015_parameters_scale.txt) must also be in the same directory.
The following libraries are used, and should be already installed if using Spyder:
- matplotlib; numpy; scipy; time; os; ast; glob; csv
The following libraries may need to be installed via the "Anaconda Prompt":
- h5py (conda install h5py)
- BaselineRemoval (pip install BaselineRemoval)
Data analysis follows the uploaded pdf Understanding FTIR and the following link The FFT in FTIR
Recomended Procedure for TRPL MAP data:
-
This will sum the data over all times to maximize your signal for determining optimal FFT parameters. This is more effective than doing it at each time value since the FFT parameters should be the same for all times. Observe the plots that are generated.
-
Insert a filepath to the data directory which contains the "..._MAP.txt" "..._POS.txt", and "..._TIME.txt" data
-
Pick the appropriate wavelength range for your data, based on the detector used (Vis = 400-1000; NIR = 950-1700).
-
Pick appropraite FFT paramters for tha data.
-
Run the script and observe the output plots:
- Plot 1 -> Verify correct background subtraction region. Adjust if needed. The region in red is used to detrmine background, ensure no signal here.
- Plot 2 -> Verify apodization function. You can zoom in if needed. The blue curve is the measured interferogram, the green curve is the apodization function, anb the orange curve is the new interferogram after applying the apodization function.
- Plot 3 -> Observe the data prep. Should be reflected around peak and padded with desired zeros in the middle.
- Plot 4 & 5 -> Will show the Raw and Phase-Corrected FFT data
- Plot 6 -> TRPL computed by summing all data (integral TRPL). You can adjust range if needed.
- Plot 7 -> Resulting integral PL from the FFT
- Observe your resulting PL data and adjust FFT paramters accordingly.
- This will generally involve the apodization width
- If you are satisfied with your FFT, ensure that "save_params = True". This will save the metadata into the "path" directory of our data for use in the MAP script.
- Run the Gemini_MAP_script_CJH.py script.
- The basic way to run this script is to insert the directory for your data which also contains the FFT metadata from the preceding steps. Set "params_from_INTR_metadata = True" to import the metadata for the FFT at each time point.
- If it is the first time running the MAP data analysis, make sure to set ImportTRES = False.
- Input a "rangeval" which will trim the data to an upper time to limit the computational load.
- Check plotting ranges in the "Plotting Metadata" section of the code
- Run the script. Adjust "Plotting Metadata" to get the desired plots.
- To use entire dataset for the TRPL data (for good resolution), set Usemapdata=True. This will use the rawdata prior to losing a lot of signal in the FFT, apodiztion, etc. If Usemapdata=False and AverageTRPL = False, you will plot the full integral TRPL, but it is computed after the FFT (not recommended).
- You can average the TRPL or PL data over a given range or ranges, input as a list. You must toggle the legend on/off manually when multiple curves are shown.
- For the standalone TRPL plot, it is posisble to pick a different plot range.
- It is also possible to fit TRPL data (currently with a single exponential) over a given range. Toggle manually if you want the fit to be in the composite TRES plot.