From c85402b74254a7321a419b482abfd603e3fb7499 Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Mon, 10 Nov 2025 15:18:09 -0700 Subject: Removed obsidian header tags --- .../Calibrare Intensitate Oxigen.xlsx | Bin 0 -> 64999 bytes ...sity_Calibration_Oxygen_Discharge_Solution.xlsx | Bin 0 -> 402305 bytes .../Lampa_Calibrare_Mercur.xlsx | Bin 0 -> 135793 bytes .../Spectru Descarcare Argon.xlsx | Bin 0 -> 74877 bytes .../module_4/spectroscopy_problem/spectroscopy.py | 51 +++++++++++++++++++++ 5 files changed, 51 insertions(+) create mode 100644 tutorials/module_4/spectroscopy_problem/Calibrare Intensitate Oxigen.xlsx create mode 100644 tutorials/module_4/spectroscopy_problem/Intensity_Calibration_Oxygen_Discharge_Solution.xlsx create mode 100644 tutorials/module_4/spectroscopy_problem/Lampa_Calibrare_Mercur.xlsx create mode 100644 tutorials/module_4/spectroscopy_problem/Spectru Descarcare Argon.xlsx create mode 100644 tutorials/module_4/spectroscopy_problem/spectroscopy.py (limited to 'tutorials/module_4/spectroscopy_problem') diff --git a/tutorials/module_4/spectroscopy_problem/Calibrare Intensitate Oxigen.xlsx b/tutorials/module_4/spectroscopy_problem/Calibrare Intensitate Oxigen.xlsx new file mode 100644 index 0000000..f18e170 Binary files /dev/null and b/tutorials/module_4/spectroscopy_problem/Calibrare Intensitate Oxigen.xlsx differ diff --git a/tutorials/module_4/spectroscopy_problem/Intensity_Calibration_Oxygen_Discharge_Solution.xlsx b/tutorials/module_4/spectroscopy_problem/Intensity_Calibration_Oxygen_Discharge_Solution.xlsx new file mode 100644 index 0000000..cdeec66 Binary files /dev/null and b/tutorials/module_4/spectroscopy_problem/Intensity_Calibration_Oxygen_Discharge_Solution.xlsx differ diff --git a/tutorials/module_4/spectroscopy_problem/Lampa_Calibrare_Mercur.xlsx b/tutorials/module_4/spectroscopy_problem/Lampa_Calibrare_Mercur.xlsx new file mode 100644 index 0000000..b429c6d Binary files /dev/null and b/tutorials/module_4/spectroscopy_problem/Lampa_Calibrare_Mercur.xlsx differ diff --git a/tutorials/module_4/spectroscopy_problem/Spectru Descarcare Argon.xlsx b/tutorials/module_4/spectroscopy_problem/Spectru Descarcare Argon.xlsx new file mode 100644 index 0000000..7c98481 Binary files /dev/null and b/tutorials/module_4/spectroscopy_problem/Spectru Descarcare Argon.xlsx differ diff --git a/tutorials/module_4/spectroscopy_problem/spectroscopy.py b/tutorials/module_4/spectroscopy_problem/spectroscopy.py new file mode 100644 index 0000000..e195fbd --- /dev/null +++ b/tutorials/module_4/spectroscopy_problem/spectroscopy.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +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' +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') + + +# Trims mercury data to the first 2000 pixels +df_Hg = 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'], linestyle='-') +plt.xlabel('Pixels') +plt.ylabel('Intensity [a.u.]') +plt.title('Pixel-Intensity (Hg)') +plt.grid(True) +plt.show() + + + + + + -- cgit v1.2.3