summaryrefslogtreecommitdiff
path: root/tutorials/module_4/spectroscopy problem/spectroscopy.py
diff options
context:
space:
mode:
Diffstat (limited to 'tutorials/module_4/spectroscopy problem/spectroscopy.py')
-rw-r--r--tutorials/module_4/spectroscopy problem/spectroscopy.py48
1 files changed, 32 insertions, 16 deletions
diff --git a/tutorials/module_4/spectroscopy problem/spectroscopy.py b/tutorials/module_4/spectroscopy problem/spectroscopy.py
index b3aeab5..e195fbd 100644
--- a/tutorials/module_4/spectroscopy problem/spectroscopy.py
+++ b/tutorials/module_4/spectroscopy problem/spectroscopy.py
@@ -6,30 +6,46 @@ Created on Wed Nov 5 12:58:59 2025
@author: christian
"""
+
+"""
+Problem:
+
+- Import xls data into Python
+- Plot the Intensity [a.u.] vs pixels
+- Interpolate and convert x-axis from pixels to nm (true wavelength) using Hg lamp data (using data in file: **Lampa_Calibrare_Mercur.xlsx**)
+- Find response function of the spectrometer using the tungsten lamp data from file: "**Calibrare Intensitate Oxigen.xlsx**)": $R=\frac{I_{measured}}{I_{true}}$ (where True is computed by Planck's law of radiation (see notes in the pptx above)
+- Convert y-axis from Intensity [a.u.] into Intensity in [W/(cm^2*sr*nm)] by dividing the measured Oxygen spectrum with the response function: $I_{oxygen, true}=\frac{I_{oxygen, measured}}{R}$
+- Once the spectra is in real units: compute the density of one of the oxygen lines by integrating underneath one of the peaks (see equation from Slide 39 - bottom). We will give all of the constants that are in this equation (see the "I**ntensity_Calibration_Oxygen_Discharge_Solution.xlsx**")
+"""
+
import pandas as pd
import matplotlib.pyplot as plt
Hg_data = 'Lampa_Calibrare_Mercur.xlsx'
-Ar_data = 'Spectru Descarcare Argon.xlsx'
+#Ar_data = 'Spectru Descarcare Argon.xlsx'
+Ox_data = 'Calibrare Intensitate Oxigen.xlsx'
+
+df_Hg = pd.read_excel(Hg_data, header=11, engine='openpyxl')
+df_Ox = pd.read_excel(Ox_data, header=3, engine='openpyxl')
+#df_Ar = pd.read_excel(Ar_data, header=14, engine='openpyxl')
-df_Hg = pd.read_excel(
- Hg_data,
- header=11, # row number to use as header
- engine='openpyxl'
-)
-df_Ar = pd.read_excel(
- Ar_data,
- header=14, # row number to use as header
- engine='openpyxl'
-)
+# Trims mercury data to the first 2000 pixels
+df_Hg = df_Hg[df_Hg['Pixels']<2000]
-filtered = df_Hg[df_Hg['Pixels']>2000]
+"Plot Intensity vs Pixels for mercury"
+# Plot Hg intensity-pixel plot
plt.figure(figsize=(8,5))
-plt.plot(df_Hg['Pixels'], df_Hg['Intensity'], marker='o', linestyle='-')
-plt.xlabel('Pixelse')
-plt.ylabel('Intensity')
-plt.title('Pixel-Intensity')
+plt.plot(df_Hg['Pixels'], df_Hg['Intensity'], linestyle='-')
+plt.xlabel('Pixels')
+plt.ylabel('Intensity [a.u.]')
+plt.title('Pixel-Intensity (Hg)')
plt.grid(True)
plt.show()
+
+
+
+
+
+