Updating figures.

This commit is contained in:
tschan_d committed 2026-09-11 17:22:16 +02:00
1 parent fe64bb903a
commit 9e2f571306
12 files changed
+6029 -4050

No files matched your search

@@ -107,10 +107,10 @@
"ax_1 = plt.axes([0.2, 0.2, 0.6, 0.6], frameon=True)\n",
"ax_2 = plt.twinx(ax=ax_1)\n",
"\n",
"ax_1.plot(ozon_analyser.file.data['timestamp'], ozon_analyser.file.data['ozone'], color = 'red', linestyle = '-.',label=r'$\\chi_{\\ce{O3}}$')\n",
"ax_1.plot(ozon_analyser.file.data['timestamp'], ozon_analyser.file.data['ozone'], color = 'black', linestyle = '-.',label=r'$\\chi_{\\ce{O3}}$')\n",
"ax_1.set_ylabel(r'Ozone mole fraction $\\chi_{\\ce{O3}}$ $(\\text{ppb})$')\n",
"\n",
"ax_2.step(smps_analyser.data['Starting Time (-)'], smps_analyser.data['Mass Production Rate (kg/s)'], color='blue', linestyle='-', label=r'$\\accentset{*}{m}$')\n",
"ax_2.step(smps_analyser.data['Starting Time (-)'], smps_analyser.data['Mass Production Rate (kg/s)'], color='red', linestyle='-', label=r'$\\accentset{*}{m}$')\n",
"ax_2.set_ylabel(r'Mass flux $\\accentset{*}{m}$ $(\\unit{\\kilo\\gram\\per\\second})$')\n",
"\n",
"ax_1.vlines(ozon_analyser.on_time_interval, ymin=0, ymax=70000, colors='k', linestyles='--', linewidth=0.5)\n",
@@ -124,7 +124,7 @@
"lines_1, labels_1 = ax_1.get_legend_handles_labels()\n",
"lines_2, labels_2 = ax_2.get_legend_handles_labels()\n",
"\n",
"ax_1.set_ylim([0, 70000])\n",
"ax_1.set_ylim([0, 80000])\n",
"ax_2.set_ylim([0, 5E-09])\n",
"\n",
"ax_1.legend(lines_1 + lines_2, labels_1 + labels_2, loc='upper right')\n",
File diff suppressed because it is too large. Load diff
@@ -96,7 +96,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": null,
"id": "99c569ff",
"metadata": {},
"outputs": [],
@@ -107,7 +107,7 @@
"ax_1 = plt.axes([0.2, 0.2, 0.6, 0.6], frameon=True)\n",
"ax_2 = plt.twinx(ax=ax_1)\n",
"\n",
"ax_1.plot(ozon_analyser.file.data['timestamp'], ozon_analyser.file.data['ozone'], color = 'red', linestyle = '-.',label=r'$\\chi_{\\ce{O3}}$')\n",
"ax_1.plot(ozon_analyser.file.data['timestamp'], ozon_analyser.file.data['ozone'], color = 'black', linestyle = '-.',label=r'$\\chi_{\\ce{O3}}$')\n",
"ax_1.set_ylabel(r'Ozone mole fraction $\\chi_{\\ce{O3}}$ $(\\text{ppb})$')\n",
"\n",
"ax_2.step(smps_analyser.data['Starting Time (-)'], smps_analyser.data['Mass Production Rate (kg/s)'], color='blue', linestyle='-', label=r'$\\accentset{*}{m}$')\n",
@@ -124,7 +124,7 @@
"lines_1, labels_1 = ax_1.get_legend_handles_labels()\n",
"lines_2, labels_2 = ax_2.get_legend_handles_labels()\n",
"\n",
"ax_1.set_ylim([0, 70000])\n",
"ax_1.set_ylim([0, 80000])\n",
"ax_2.set_ylim([0, 5E-09])\n",
"\n",
"ax_1.legend(lines_1 + lines_2, labels_1 + labels_2, loc='upper right')\n",
File diff suppressed because it is too large. Load diff
@@ -69,26 +69,26 @@
"# Linking to the data\n",
"\n",
"# Specify the source file paths to for SMPS data for the different filters used\n",
"smps_analyser_01 = OFRAnalyser(data_source_file = Path(r\"Z:\\Data\\SMPS\\processed\\2026\\09_September\\20260902\\20260902_aPinene_SOA.txt\"),\n",
" flow_source_file = Path(r\"Z:\\People\\David_Tschan\\OFR_SMPS\\flow_files\\20260902_SET02_EXP13_flow_file.txt\"),\n",
" smpl_number_list = range(1, 60),\n",
" on_time_interval = [pd.Timestamp('2026-09-02 09:52:00'), pd.Timestamp('2026-09-02 10:52:00')])\n",
"smps_analyser_02 = OFRAnalyser(data_source_file = Path(r\"Z:\\Data\\SMPS\\processed\\2026\\09_September\\20260903\\20260903_aPinene_SOA.txt\"),\n",
"smps_analyser_01 = OFRAnalyser(data_source_file = Path(r\"Z:\\Data\\SMPS\\processed\\2026\\09_September\\20260903\\20260903_aPinene_SOA.txt\"),\n",
" flow_source_file = Path(r\"Z:\\People\\David_Tschan\\OFR_SMPS\\flow_files\\20260903_SET02_EXP14_flow_file.txt\"),\n",
" smpl_number_list = range(1, 60),\n",
" on_time_interval=[pd.Timestamp('2026-09-03 15:20:00'), pd.Timestamp('2026-09-03 16:20:00')])\n",
"smps_analyser_03 = OFRAnalyser(data_source_file = Path(r\"Z:\\Data\\SMPS\\processed\\2026\\09_September\\20260904\\20260904_aPinene_SOA.txt\"),\n",
"smps_analyser_02 = OFRAnalyser(data_source_file = Path(r\"Z:\\Data\\SMPS\\processed\\2026\\09_September\\20260904\\20260904_aPinene_SOA.txt\"),\n",
" flow_source_file = Path(r\"Z:\\People\\David_Tschan\\OFR_SMPS\\flow_files\\20260904_SET02_EXP15_flow_file.txt\"),\n",
" smpl_number_list = range(1, 60),\n",
" on_time_interval = [pd.Timestamp('2026-09-04 13:22:00'), pd.Timestamp('2026-09-04 14:22:00')])\n",
"smps_analyser_03 = OFRAnalyser(data_source_file = Path(r\"Z:\\Data\\SMPS\\processed\\2026\\09_September\\20260910\\20260910_aPinene_SOA.txt\"),\n",
" flow_source_file = Path(r\"Z:\\People\\David_Tschan\\OFR_SMPS\\flow_files\\20260910_SET02_EXP16_flow_file.txt\"),\n",
" smpl_number_list = range(1, 60),\n",
" on_time_interval=[pd.Timestamp('2026-09-10 15:42:00'), pd.Timestamp('2026-09-10 16:42:00')])\n",
"\n",
"# Specify the source file paths to the API O3 monitor data for the different filters used\n",
"ozon_analyser_01 = OzoneAnalyser(file = DATFile(file = Path(r\"Z:\\Data\\API_O3\\2026\\09_September\\2026-09-02_09.01.11_PC14750_API_O3.dat\"), data_name = 'ozone'),\n",
"ozon_analyser_01 = OzoneAnalyser(file = DATFile(file = Path(r\"Z:\\Data\\API_O3\\2026\\09_September\\2026-09-03_14.23.44_PC14750_API_O3.dat\"), data_name = 'ozone'),\n",
" on_time_interval=None)\n",
"ozon_analyser_02 = OzoneAnalyser(file = DATFile(file = Path(r\"Z:\\Data\\API_O3\\2026\\09_September\\2026-09-03_14.23.44_PC14750_API_O3.dat\"), data_name = 'ozone'),\n",
"ozon_analyser_02 = OzoneAnalyser(file = DATFile(file = Path(r\"Z:\\Data\\API_O3\\2026\\09_September\\2026-09-04_12.28.13_PC14750_API_O3.dat\"), data_name = 'ozone'),\n",
" on_time_interval=None)\n",
"ozon_analyser_03 = OzoneAnalyser(file = DATFile(file = Path(r\"Z:\\Data\\API_O3\\2026\\09_September\\2026-09-04_12.28.13_PC14750_API_O3.dat\"), data_name = 'ozone'),\n",
" on_time_interval=None)"
"ozon_analyser_03 = OzoneAnalyser(file = DATFile(file = Path(r\"Z:\\Data\\API_O3\\2026\\09_September\\2026-09-10_14.43.47_PC14750_API_O3.dat\"), data_name = 'ozone'),\n",
" on_time_interval = [pd.Timestamp('2026-09-10 15:00:00'), pd.Timestamp('2026-09-04 17:12:00')])"
]
},
{
@@ -104,7 +104,7 @@
" smps_analyser.GetData()\n",
" ozon_analyser.GetData()\n",
"\n",
" ozon_analyser.AverageWithSMPS(smps_analyser = smps_analyser, cut_edges = 2, subtract_baseline = ['yes', 1])"
" ozon_analyser.AverageWithSMPS(smps_analyser = smps_analyser, cut_edges = 2, subtract_baseline = ['yes', 3])"
]
},
{
@@ -127,7 +127,7 @@
" marker = 'o',\n",
" markersize = 2.5,\n",
" markerfacecolor = 'red',\n",
" label = r'Filter 1')\n",
" label = r'Set 2 Exp. 14')\n",
"\n",
"ax.plot(ozon_analyser_02.averaged_data['Ozone (ppb)'] / 1000,\n",
" ozon_analyser_02.averaged_data['Mass Production Rate (kg/s)'],\n",
@@ -137,7 +137,7 @@
" marker = 'd',\n",
" markersize = 4,\n",
" markerfacecolor = 'blue',\n",
" label = 'Filter 2')\n",
" label = 'Set 2 Exp. 15')\n",
"\n",
"ax.plot(ozon_analyser_03.averaged_data['Ozone (ppb)'] / 1000,\n",
" ozon_analyser_03.averaged_data['Mass Production Rate (kg/s)'],\n",
@@ -147,17 +147,18 @@
" marker = 's',\n",
" markersize = 2.5,\n",
" markerfacecolor = 'green',\n",
" label = 'Filter 3')\n",
" label = 'Set 2 Exp. 16')\n",
"\n",
"#ax.set_yscale('log')\n",
"\n",
"ax.set_xlabel(r'Deviation from $\\ce{O3}$ baseline $\\Delta\\chi_{\\ce{O3}}$ $(\\unit{\\ppm})$')\n",
"ax.set_ylabel(r'Mass flux $\\accentset{*}{m}$ $(\\unit{\\kilo\\gram\\per\\second})$')\n",
"\n",
"ax.set_ylim([0, 70000])\n",
"ax.set_ylim([0, 5E-09])\n",
"#ax.set_ylim([0, 70000])\n",
"#ax.set_ylim([0, 5E-09])\n",
"#ax.set_xlim([2, 12])\n",
"\n",
"ax.legend(loc='lower left')\n",
"ax.legend(loc='upper right')\n",
"\n",
"#plt.show()\n",
"plt.savefig(\"figure.pgf\", format='pgf', dpi=400)\n",
File diff suppressed because it is too large. Load diff
@@ -60,7 +60,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 3,
"id": "429e1aed",
"metadata": {},
"outputs": [],
@@ -80,7 +80,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 4,
"id": "26333625",
"metadata": {},
"outputs": [],
@@ -96,7 +96,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 5,
"id": "99c569ff",
"metadata": {},
"outputs": [],
@@ -107,10 +107,10 @@
"ax_1 = plt.axes([0.2, 0.2, 0.6, 0.6], frameon=True)\n",
"ax_2 = plt.twinx(ax=ax_1)\n",
"\n",
"ax_1.plot(ozon_analyser.file.data['timestamp'], ozon_analyser.file.data['ozone'], color = 'red', linestyle = '-.',label=r'$\\chi_{\\ce{O3}}$')\n",
"ax_1.plot(ozon_analyser.file.data['timestamp'], ozon_analyser.file.data['ozone'], color = 'black', linestyle = '-.',label=r'$\\chi_{\\ce{O3}}$')\n",
"ax_1.set_ylabel(r'Ozone mole fraction $\\chi_{\\ce{O3}}$ $(\\text{ppb})$')\n",
"\n",
"ax_2.step(smps_analyser.data['Starting Time (-)'], smps_analyser.data['Mass Production Rate (kg/s)'], color='blue', linestyle='-', label=r'$\\accentset{*}{m}$')\n",
"ax_2.step(smps_analyser.data['Starting Time (-)'], smps_analyser.data['Mass Production Rate (kg/s)'], color='red', linestyle='-', label=r'$\\accentset{*}{m}$')\n",
"ax_2.set_ylabel(r'Mass flux $\\accentset{*}{m}$ $(\\unit{\\kilo\\gram\\per\\second})$')\n",
"\n",
"ax_1.vlines(ozon_analyser.on_time_interval, ymin=0, ymax=70000, colors='k', linestyles='--', linewidth=0.5)\n",
@@ -124,9 +124,8 @@
"lines_1, labels_1 = ax_1.get_legend_handles_labels()\n",
"lines_2, labels_2 = ax_2.get_legend_handles_labels()\n",
"\n",
"ax_1.set_ylim([0, 70000])\n",
"#ax_2.set_ylim([0, 5E-09])\n",
"ax_2.set_yscale('log')\n",
"ax_1.set_ylim([0, 80000])\n",
"ax_2.set_ylim([0, 5E-09])\n",
"\n",
"ax_1.legend(lines_1 + lines_2, labels_1 + labels_2, loc='upper right')\n",
"\n",
File diff suppressed because it is too large. Load diff
+18 -16
View File
@@ -1,25 +1,27 @@
METADATA
----------------------------------------------------------------------
Standard 2 mg / L TOC
Standard Prep. Date 10.09.2026
Measurement Date 10.09.2026
Standard 2.00
Unit mg/L
Prepared 10.06.2026
Measured 10.09.2026
CALIBRATION DATA
conc. STD Dilution A1 A2 A3
(mg / L) (-) (-) (-) (-)
0.05 40.0 0.3451 0.3456 0.3914
0.10 20.0 0.6457 0.6743 0.5987
0.20 10.0 0.9987 1.0544 1.0343
0.40 5.00 1.3654 1.4102 1.3862
1.00 2.00 2.3302 2.2963 2.3417
2.00 1.00 4.3698 4.1897 4.4005
0.05 40.00 0.4019 0.9061 0.6915
0.10 20.00 1.264 1.230 1.249
0.20 10.00 1.909 2.049 2.005
0.50 4.000 5.410 5.482 5.887
0.70 2.857 7.544 8.078 7.808
1.00 2.000 10.83 10.76 10.53
2.00 1.000 21.69 21.67 0.03210
CALIBRATION RESULTS
----------------------------------------------------------------------
Slope 10.3656
Intercept 0.33560
R2 0.99740
FILE IC_Calibration.cal
COMPUTED 10.09.2026 17:45:36
----------------------------------------------------------------------
Slope 0.1268
Intercept -0.1197
R2 0.9327
EXCLUDED None
FROM 0.0500
TO 2.0000
COMPUTED 11.09.2026 16:48:19
+11 -19
View File
@@ -1,25 +1,17 @@
METADATA
----------------------------------------------------------------------
Standard 2 mg / L TOC
Standard Prep. Date 10.09.2026
Measurement Date 10.09.2026
Standard 2.00
Unit mg/L
Prepared 10.06.2026
Measured 10.09.2026
CALIBRATION DATA
conc. STD Dilution A1 A2 A3
(mg / L) (-) (-) (-) (-)
0.05 40.0 0.3451 0.3456 0.3914
0.10 20.0 0.6457 0.6743 0.5987
0.20 10.0 0.9987 1.0544 1.0343
0.40 5.00 1.3654 1.4102 1.3862
1.00 2.00 2.3302 2.2963 2.3417
2.00 1.00 4.3698 4.1897 4.4005
CALIBRATION RESULTS
----------------------------------------------------------------------
Slope 10.3656
Intercept 0.33560
R2 0.99740
FILE NPOC_Calibration.cal
COMPUTED 10.09.2026 17:45:36
----------------------------------------------------------------------
0.05 40.00 0.4019 0.9061 0.6915
0.10 20.00 1.264 1.230 1.249
0.20 10.00 1.909 2.049 2.005
0.50 4.000 5.410 5.482 5.887
0.70 2.857 7.544 8.078 7.808
1.00 2.000 10.83 10.76 10.53
2.00 1.000 21.69 21.67 0.03210
+91 -38
View File
@@ -2,75 +2,128 @@
"cells": [
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"id": "393a8a7f",
"metadata": {},
"outputs": [],
"source": [
"from defs.TOC import TC_Calibration"
"from defs.TOC import Calibration\n",
"from pathlib import Path\n",
"\n",
"# Importing libraries required for plotting and exporting\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.dates import DateFormatter, HourLocator\n",
"\n",
"# Setting style of figures and backend\n",
"import matplotlib\n",
"matplotlib.use('pgf')\n",
"plt.style.use(r'C:\\Users\\tschan_d\\Documents\\code\\.mplstyle')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f2cf26e4",
"execution_count": 5,
"id": "3151288f",
"metadata": {},
"outputs": [],
"source": [
"dilutions = [10, 7, 5, 3, 2]\n",
"NPOCs = [7.136, 4.120, 3.552, 3.430, 3.255]"
"# Configuring backend\n",
"\n",
"matplotlib.rcParams.update({'text.usetex': True,\n",
" 'pgf.rcfonts': False,\n",
" 'font.family': 'serif',\n",
" 'font.serif': [],\n",
" 'font.sans-serif': [],\n",
" 'font.size': 8,\n",
" 'legend.fontsize': 8,\n",
" 'xtick.labelsize': 8,\n",
" 'ytick.labelsize': 8,\n",
" 'pgf.texsystem': r'lualatex',\n",
" 'pgf.preamble': r'\\usepackage{unicode-math}' + \n",
" r'\\usepackage{accents}' + \n",
" r'\\usepackage{fontspec}' + \n",
" r'\\usepackage[T1]{fontenc}' +\n",
" r'\\usepackage{unicode-math}' +\n",
" r'\\setmainfont{STIX Two Text}' +\n",
" r'\\setmathfont{STIX Two Math}' + \n",
" r'\\usepackage{siunitx}' + \n",
" r'\\usepackage{mhchem}' + \n",
" r'\\newcommand{\\der}[1]{\\ensuremath{\\textnormal{d}\\,{#1}}}'})"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d81f0103",
"metadata": {},
"outputs": [],
"source": [
"def fitfunc(x, a):\n",
" return np.divide(a, x)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "d8d8a1af",
"execution_count": 7,
"id": "ea0c4325",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
"name": "stdout",
"output_type": "stream",
"text": [
" concentration dilution area_1 area_2 area_3 area_average\n",
"0 0.05 40.000 0.4019 0.9061 0.6915 0.666500\n",
"1 0.10 20.000 1.2640 1.2300 1.2490 1.247667\n",
"2 0.20 10.000 1.9090 2.0490 2.0050 1.987667\n",
"3 0.50 4.000 5.4100 5.4820 5.8870 5.593000\n",
"4 0.70 2.857 7.5440 8.0780 7.8080 7.810000\n",
"5 1.00 2.000 10.8300 10.7600 10.5300 10.706667\n",
"6 2.00 1.000 21.6900 21.6700 0.0321 14.464033\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\tschan_d\\Documents\\code\\defs\\TOC.py:62: UserWarning: Calibration alreadyt exists, will be overwritten...\n",
" warnings.warn(\"Calibration alreadyt exists, will be overwritten...\")\n"
]
}
],
"source": [
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"calibration = Calibration(cal_file = Path(r\"C:\\Users\\tschan_d\\Documents\\analysis\\TOC_Analysis\\20260909\\IC_Calibration.cal\"))\n",
"calibration.calibrate()\n",
"\n",
"parameter = curve_fit(fitfunc, xdata = [1 / dilution for dilution in dilutions], ydata=NPOCs, p0 = [7])\n",
"xs = np.divide(1, np.linspace(start = 1, stop = 11, num = 1000))\n",
"ys = fitfunc(xs, parameter[0][0])\n",
"print(calibration.calibrant_data)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "00b59d82",
"metadata": {},
"outputs": [],
"source": [
"# Creating figure\n",
"\n",
"ax.scatter([1 / dilution for dilution in dilutions], NPOCs)\n",
"ax.plot(xs, ys, linestyle = '--')\n",
"fig = plt.figure(figsize=(8.8 / 2.54, 5 / 2.54))\n",
"ax_1 = plt.axes([0.2, 0.2, 0.6, 0.6], frameon=True)\n",
"\n",
"ax_1.plot(calibration.calibrant_data['area_average'], calibration.calibrant_data['concentration'], color = 'red',\n",
" linestyle = 'None',\n",
" marker = 'o',\n",
" markersize = 2.5,\n",
" markerfacecolor = 'red')\n",
"\n",
"ax.set_xlabel('1 / Dilution')\n",
"ax.set_ylabel('NPOC (mg/L)')\n",
"ax_1.plot([0, 17], calibration.compute([0, 17]), 'k')\n",
"\n",
"plt.show()"
"ax_1.set_xlabel(r'Area $(-)$')\n",
"ax_1.set_ylabel(r'Concentration $(\\unit{\\milli\\gram\\per\\liter})$')\n",
"\n",
"ax_1.set_xlim([0, 16])\n",
"ax_1.set_ylim([0, 2.1])\n",
"\n",
"lines_1, labels_1 = ax_1.get_legend_handles_labels()\n",
"\n",
"#plt.show()\n",
"plt.savefig(\"figure.pgf\", format='pgf', dpi=400)\n",
"plt.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "00b59d82",
"id": "0a5d7e8e",
"metadata": {},
"outputs": [],
"source": []
File diff suppressed because it is too large. Load diff