Kalibrierung_Lüftung
Bibliotheken importieren
# Name des aktuellen Notebooks für die exportierten Datein
file_name = "Kalibrierung_Volumenstrom_Lueftung"
# Ordner auf dem Server (nach files/)
ftp_folder = 'Notebooks/Aufbereitung'
## Bibliotheken, Module und Text- bzw- Grafikformatierungen aus zentraler Datei laden
%run ../Template/libraries_and_styles.ipynb
def conv(val):
if not val:
return 0
try:
return np.float64(val)
except:
return np.float64(0)
## Bestimmtheitsmaß R²
def r2(yi,yhati):
ybar = np.sum(yi) / len(yi)
ssres = np.sum((yi - yhati)**2)
sstot = np.sum((yi - ybar)**2)
r2 = 1 - ssres / sstot
return r2
## Warum auch immer muss rcParams.update() in eine eigene Zelle...
mpl.use('WebAgg')
mpl.use("pgf")
mpl.rcParams.update(params)
Daten Import
############################### Log Dateien auswählen und einlesen ###############################
testodaten = pd.read_csv("Rohdaten/MA_Lueftung_Kalibrierung_Testo.csv", sep=";", decimal="," , thousands='.' ,encoding="cp1252")
testodaten['Datum'] = pd.to_datetime(testodaten['Datum'],dayfirst=True)
testodaten.set_index(['Datum'], inplace=True)
testodaten = testodaten.resample('1Min').fillna(method='ffill').interpolate()
intellidaten = pd.read_csv("Rohdaten/MA_Lueftung_Kalibrierung_Intelli2.csv", sep=";", decimal="," , thousands='.' ,encoding="cp1252")
intellidaten['Zeit'] = pd.to_datetime(intellidaten['Zeit'],dayfirst=True)
intellidaten.set_index(['Zeit'], inplace=True)
intellidaten.columns = ['Vpunkt_Raum1', 'Vpunkt_Raum2', 'Vpunkt_Flur', '4', '5', '6', '7', '8', '9',]
intellidaten = intellidaten.resample('1Min').ffill().ffill()
intellidaten['Vpunkt_Gesamt'] = intellidaten['Vpunkt_Raum1'] + intellidaten['Vpunkt_Raum2'] + intellidaten['Vpunkt_Flur']
druck = pd.read_csv('Arbeitsdaten/Daten_15s.csv')
druck["Zeit"] = pd.to_datetime(druck["Zeit"],dayfirst=True)
druck.set_index(['Zeit'], inplace=True)
daten = testodaten.merge(intellidaten, left_index=True, right_index=True, how='inner')
daten = daten.merge(druck.L_Zuluft_Druck, left_index=True, right_index=True, how='inner')
daten = daten.merge(druck.L_Duschen_Ablufttfeuchte, left_index=True, right_index=True, how='inner')
## Flur
von = pd.to_datetime("03.08.18 11:15",infer_datetime_format=True)
bis = pd.to_datetime("03.09.18 09:00",infer_datetime_format=True)
daten['Vpunkt_Flur_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * 0.2**2) / 4) * 3600
## Raum 1
von = pd.to_datetime("03.09.18 10:00",infer_datetime_format=True)
bis = pd.to_datetime("03.10.18 16:45",infer_datetime_format=True)
daten['Vpunkt_Raum1_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * 0.315**2) / 4) * 3600
## Raum 2
von = pd.to_datetime("03.10.18 17:15",infer_datetime_format=True)
bis = pd.to_datetime("03.11.18 16:00",infer_datetime_format=True)
daten['Vpunkt_Raum2_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * 0.2**2) / 4) * 3600
## Fortuft
von = pd.to_datetime("03.11.18 16:30",infer_datetime_format=True)
bis = pd.to_datetime("03.12.18 17:00",infer_datetime_format=True)
a=.4
b=a
d=(2*a*b/(a+b))
daten['Vpunkt_Fortluft_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * d**2) / 4) * 3600
##* (2*.4*.4/(.8))* 3600# (0.4**2) * 3600
Plot alles
graph = daten[['Vpunkt_Raum1_testo','Vpunkt_Raum1','Vpunkt_Raum2_testo','Vpunkt_Raum2','Vpunkt_Flur_testo','Vpunkt_Flur','Vpunkt_Fortluft_testo','Vpunkt_Gesamt']]
color = [ colo('blau',1), colo('blau',1.7), colo('rot',1), colo('rot',1.7), colo('grün',1), colo('grün',1.7), colo('orange',1), colo('orange',1.7)]
fig, ax = plt.subplots()
ax = graph.plot(ax=ax, color=color, linewidth=0.8)
ax.set_ylim(0,2000)
ax.get_yaxis().set_major_formatter(mpl.ticker.FuncFormatter(lambda x, loc: locale.format_string('%d', x, 1))) ## dot as thousand separator
h0, l0 = ax.get_legend_handles_labels()
labels = ['Raum1_testo','Raum1','Raum2_testo','Raum2','Flur_testo','Flur','Fortluft Testo','Summe12F']
legend = plt.legend(h0, labels, ncol=4, loc=1)
set_legend_linewidth(legend)
plt.savefig(output_folder + '/' + file_name + '_vor_Korrektur.pdf')
display(fig)
Regressions
Flur
## Regressions Flur
## Zeitraum der jeweiligen Messung
von = pd.to_datetime("03.08.18 11:15",infer_datetime_format=True) # Zeitformat: MM.DD.YY HH:MM
bis = pd.to_datetime("03.09.18 09:00",infer_datetime_format=True)
auswahl = daten[['Vpunkt_Flur_testo','Vpunkt_Flur']].loc[von:bis]
## Polynome für Regerssionsgerade berechnen und ausgeben
korr = auswahl[np.isfinite(daten['Vpunkt_Flur_testo']) & np.isfinite(auswahl['Vpunkt_Flur'])]
w = np.polyfit(korr['Vpunkt_Flur'],korr['Vpunkt_Flur_testo'],1)
p = np.poly1d(w) #polynom defined by the coefficients in w
r2_0 = r2(korr['Vpunkt_Flur_testo'],p(korr['Vpunkt_Flur']))
Markdown('Bestimmtheitsmaß: '+str(r2_0)+'<br>Polynome: '+str(p))
## Wert der Anlage korrigieren und alle Werte plotten
auswahl['Vpunkt_Flur_korr'] = auswahl['Vpunkt_Flur'] * p[1] + p[0]
graph = auswahl[['Vpunkt_Flur_testo','Vpunkt_Flur','Vpunkt_Flur_korr']]
color = [ colo('blau',1), colo('rot',1), colo('grün',1)]
fig, ax = plt.subplots()
ax = graph.plot(ax=ax, color=color, linewidth=0.8)
h0, l0 = ax.get_legend_handles_labels()
labels = ['Flur_testo','Flur','Flur_korr']
legend = plt.legend(h0, labels, ncol=1, loc=1)
set_legend_linewidth(legend)
plt.savefig(output_folder + '/' + file_name + '_Flur_Graph.pdf')
display(fig)
c:\users\kolja\appdata\local\programs\python\python37\lib\site-packages\ipykernel_launcher.py:9: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
if __name__ == '__main__':
Seminarraum 1
von = pd.to_datetime("03.09.18 10:00",infer_datetime_format=True)
bis = pd.to_datetime("03.10.18 16:45",infer_datetime_format=True)
auswahl = daten[['Vpunkt_Raum1_testo','Vpunkt_Raum1']].loc[von:bis]
## Polynome für Regerssionsgerade berechnen und ausgeben
korr=auswahl[np.isfinite(daten['Vpunkt_Raum1_testo']) & np.isfinite(auswahl['Vpunkt_Raum1'])]
w = np.polyfit(korr['Vpunkt_Raum1'],korr['Vpunkt_Raum1_testo'],1)
p = np.poly1d(w) #polynom defined by the coefficients in w
r2_0 = r2(korr['Vpunkt_Raum1_testo'],p(korr['Vpunkt_Raum1']))
Markdown('Bestimmtheitsmaß: '+str(r2_0)+'<br>Polynome: '+str(p))
c:\users\kolja\appdata\local\programs\python\python37\lib\site-packages\ipykernel_launcher.py:6: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
Bestimmtheitsmaß: 0.9804251519184085
Polynome:
1.153 x + 16.43
Seminarraum 2
## Regressions Raum 2
## Zeitraum der jeweiligen Messung
von = pd.to_datetime("03.10.18 17:15",infer_datetime_format=True)
bis = pd.to_datetime("03.11.18 16:00",infer_datetime_format=True)
auswahl = daten[['Vpunkt_Raum2_testo','Vpunkt_Raum2']].loc[von:bis]
## Polynome für Regerssionsgerade berechnen und ausgeben
korr = auswahl[np.isfinite(daten['Vpunkt_Raum2_testo']) & np.isfinite(auswahl['Vpunkt_Raum2'])]
w = np.polyfit(korr['Vpunkt_Raum2'],korr['Vpunkt_Raum2_testo'],1)
p = np.poly1d(w) #polynom defined by the coefficients in w
r2_0 = r2(korr['Vpunkt_Raum2_testo'],p(korr['Vpunkt_Raum2']))
Markdown('Bestimmtheitsmaß: '+str(r2_0)+'<br>Polynome: '+str(p))
c:\users\kolja\appdata\local\programs\python\python37\lib\site-packages\ipykernel_launcher.py:9: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
if __name__ == '__main__':
c:\users\kolja\appdata\local\programs\python\python37\lib\site-packages\IPython\core\interactiveshell.py:3326: RankWarning: Polyfit may be poorly conditioned
exec(code_obj, self.user_global_ns, self.user_ns)
Bestimmtheitsmaß: 0.0
Polynome:
0.2757 x + 58.2
Plot Kalibriert & Messung
## Werte für die Datenaufbereitung
daten['Vpunkt_Flur_korr'] = daten['Vpunkt_Flur'] * 1.1296358 + 37.60581093
daten['Vpunkt_Raum1_korr'] = daten['Vpunkt_Raum1'] * 1.15344567 + 16.40466896
daten['Vpunkt_Raum2_korr'] = daten['Vpunkt_Raum2'] * 0.27570561 + 58.19456266
daten['Vpunkt_Gesamt_korr'] = daten['Vpunkt_Raum1_korr'] + daten['Vpunkt_Raum2_korr'] + daten['Vpunkt_Flur_korr']
graph = daten[['Vpunkt_Raum1_testo','Vpunkt_Raum1_korr','Vpunkt_Raum2_testo','Vpunkt_Raum2_korr','Vpunkt_Flur_testo','Vpunkt_Flur_korr','Vpunkt_Fortluft_testo','Vpunkt_Gesamt_korr']]
color = [ colo('blau',1.7), colo('blau',1), colo('rot',1.7), colo('rot',1), colo('grün',1.7), colo('grün',1), colo('orange',1.4), colo('orange',1)]
fig, ax = plt.subplots()
ax = graph.plot(ax=ax, color=color, linewidth=0.8)
# ax2 = ax.twinx()
# daten['L_Zuluft_Druck'].plot(ax=ax2,color=colo('black',.8), linewidth=0.5)
## Achsen
ax.set_ylim(0,2000)
ax.get_yaxis().set_major_formatter(mpl.ticker.FuncFormatter(lambda x, loc: locale.format_string('%d', x, 1))) ## dot as thousand separator
ax.set_ylabel(r'\textbf{Voluenstrom} (m^3/h)')
# ax2.set_ylabel(r'\textbf{Druck} (Pa)')
# ax2.set_ylim(70,120)
## Legende
ax.get_legend().remove()
h0, l0 = ax.get_legend_handles_labels()
labels = ['Raum1_testo','Raum1','Raum2_testo','Raum2','Flur_testo','Flur','Fortluft_testo','Summe12F','Druck Zuluft']
legend = plt.legend(h0, labels, ncol=4, loc=1)
set_legend_linewidth(legend)
# ax.set(xlim=[pd.to_datetime("03.12.18 00:00:00"),pd.to_datetime("03.12.18 12:00:00")])
# ax.set(xlim=[pd.to_datetime("03.09.18 00:00:00"),pd.to_datetime("03.09.18 12:00:00")])
plt.savefig(output_folder + '/' + file_name + '_nach_Korrektur.pdf')
display(fig)
vorher - nachher
daten['Gesamt_korr'] = daten['Vpunkt_Flur_korr'] + daten['Vpunkt_Raum1_korr'] + daten['Vpunkt_Raum2_korr']
daten['Gesamt'] = daten['Vpunkt_Flur'] + daten['Vpunkt_Raum1'] + daten['Vpunkt_Raum2']
graph = daten[['Gesamt_korr','Gesamt','Vpunkt_Flur_korr','Vpunkt_Flur','Vpunkt_Raum1_korr','Vpunkt_Raum1','Vpunkt_Raum2_korr','Vpunkt_Raum2']]
color = [ colo('blau',1), colo('blau',1.7), colo('rot',1), colo('rot',1.7), colo('grün',1), colo('grün',1.7), colo('orange',1), colo('orange',1.7)]
fig, ax = plt.subplots()
ax = graph.plot(ax=ax, color=color, linewidth=0.8)
ax.set_ylim(0,2200)
ax.get_yaxis().set_major_formatter(mpl.ticker.FuncFormatter(lambda x, loc: locale.format_string('%d', x, 1))) ## dot as thousand separator
h0, l0 = ax.get_legend_handles_labels()
labels = ['Gesamt_korr','Gesamt','Flur_korr','Flur','Raum1_korr','Raum1','Raum2_korr','Raum2']
legend = plt.legend(h0, labels, ncol=4, loc=1)
set_legend_linewidth(legend)
plt.savefig(output_folder + '/' + file_name + '_Alles_Vergleich.pdf')
display(fig)
Erklärung zur Abbildung:
Die Werte mit _testo im Namen sind die Messwerte von dem externen Messgerät (Testo480).
Die restlichen Werte sind die mit den Testo-Daten korrigierten Werte der Lüftungsanlage.
Der Wert Summe12F ist die Summe der drei korrigierten Volumenströme, dieser wird mit dem Wert Fortluft_testo verglichen.
Das passt auch erst ganz gut, aber die Erhöhung des Volumenstromes aus Raum1 ist nicht sichtbar...?
Die schwarze Linie ist der Druck des Zuluftkanales, der wie erwartet, auf über 90Pa steigt, wenn der Gesamtvolumenstrom 1.500m3/h erreicht.
Druck und Volumenstrom
graph = daten[['Vpunkt_Raum1_testo','Vpunkt_Raum1','Vpunkt_Raum2_testo','Vpunkt_Raum2','Vpunkt_Flur_testo','Vpunkt_Flur','Vpunkt_Fortluft_testo','Vpunkt_Gesamt','L_Zuluft_Druck']]
graph['L_Zuluft_Druck'] = daten['L_Zuluft_Druck'] * 10
# graph = daten[['Vpunkt_Raum1_testo','Vpunkt_Raum1','Vpunkt_Raum2_testo','Vpunkt_Raum2','Vpunkt_Flur_testo','Vpunkt_Flur','Vpunkt_Fortluft_testo','Vpunkt_Gesamt','L_Zuluft_Druck']]#,'L_Duschen_Ablufttfeuchte']]
color = [ colo('blau',1), colo('blau',1.7), colo('rot',1), colo('rot',1.7), colo('grün',1), colo('grün',1.7), colo('orange',1), colo('orange',1.7), colo('black',1.7)]
fig, ax = plt.subplots()
ax = graph.plot(ax=ax, color=color, linewidth=0.8)
ax.set_ylim(0,2000)
ax.get_yaxis().set_major_formatter(mpl.ticker.FuncFormatter(lambda x, loc: locale.format_string('%d', x, 1))) ## dot as thousand separator
ax.axhline(y=855, linewidth=0.4, color=colo('black',1), xmin=0.0001, xmax=1)
ax.axhline(y=950, linewidth=0.4, color=colo('black',1), xmin=0.0001, xmax=1)
h0, l0 = ax.get_legend_handles_labels()
labels = ['Raum_1_ext','Raum_1','Raum_2_ext','Raum_2','Flur_ext','Flur','Fortluft_ext','Summe 1+2+F','Druck_Zuluft']
legend = plt.legend(h0, labels, ncol=5, loc=1)
set_legend_linewidth(legend)
plt.savefig(output_folder + '/' + file_name + '_Druck_und_LF.pdf')
display(fig)
fig, ax = plt.subplots( figsize=(8,2.5))
ax2 = ax.twinx()
daten['Vpunkt_Fortluft_testo'].plot(ax=ax,color=colo('grün',1), linewidth=.5, label = 'Fortluft Testo', style='-')
daten['Vpunkt_Gesamt'].plot(ax=ax,color=colo('blau',1), linewidth=.5, label = 'Fortluft Intelli', style='-')
# ax.axhline(y=0, linewidth=0.4, color=colo('black',.7), xmin=0.0001, xmax=1)
# ax.set_ylabel(r'\textbf{Bilanzfehler} ($kWh$)')
ax.set_ylim(600,1500)
# ax2.set_ylim(-33,100)
# date_form = DateFormatter("%d.%m. %H")
# ax.xaxis.set_major_formatter(date_form)
plt.xticks(rotation=0, ha='center')
ax.set_xlabel('')
h0, l0 = ax.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
legend = plt.legend(h0+h2, l0+l2, ncol=3, loc=1)
set_legend_linewidth(legend)
ax.set(xlim=[pd.to_datetime("2018.03.11 15:00:00"),pd.to_datetime("2018.03.12 18:00:00")])
display(fig)
Werte zur Verhältnisrechnung
print('Flur h')
print(int(daten['Vpunkt_Flur'].loc['2018-03-08 11:00' : '2018-03-08 14:00'].mean()))
print(int(daten['Vpunkt_Flur_testo'].loc['2018-03-08 11:00' : '2018-03-08 14:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-08 11:00' : '2018-03-08 14:00'].mean()/10))
print('Flur l')
print(int(daten['Vpunkt_Flur'].loc['2018-03-09 00:00' : '2018-03-09 02:00'].mean()))
print(int(daten['Vpunkt_Flur_testo'].loc['2018-03-09 00:00' : '2018-03-09 02:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-09 00:00' : '2018-03-09 02:00'].mean()/10))
print('Raum1 h')
print(int(daten['Vpunkt_Raum1'].loc['2018-03-09 11:00' : '2018-03-09 14:00'].mean()))
print(int(daten['Vpunkt_Raum1_testo'].loc['2018-03-09 11:00' : '2018-03-09 14:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-09 11:00' : '2018-03-09 14:00'].mean()/10))
print('Raum1 l')
print(int(daten['Vpunkt_Raum1'].loc['2018-03-10 11:00' : '2018-03-10 14:00'].mean()))
print(int(daten['Vpunkt_Raum1_testo'].loc['2018-03-10 11:00' : '2018-03-10 14:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-10 11:00' : '2018-03-10 14:00'].mean()/10))
print('Raum2 l')
print(int(daten['Vpunkt_Raum2'].loc['2018-03-11 00:00' : '2018-03-11 04:00'].mean()))
print(int(daten['Vpunkt_Raum2_testo'].loc['2018-03-11 00:00' : '2018-03-11 04:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-11 00:00' : '2018-03-11 04:00'].mean()/10))
print('Gesamt l')
print(int(daten['Vpunkt_Gesamt'].loc['2018-03-11 17:00' : '2018-03-12 04:00'].mean()))
print(int(daten['Vpunkt_Fortluft_testo'].loc['2018-03-11 17:00' : '2018-03-12 04:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-11 17:00' : '2018-03-12 04:00'].mean()/10))
print('Gesamt h')
print(int(daten['Vpunkt_Gesamt'].loc['2018-03-12 10:00' : '2018-03-12 16:00'].mean()))
print(int(daten['Vpunkt_Fortluft_testo'].loc['2018-03-12 10:00' : '2018-03-12 16:00'].mean()))
print(int(daten['L_Zuluft_Druck'].loc['2018-03-12 10:00' : '2018-03-12 16:00'].mean()/10))
zeiten = ['2018-03-08 18:00','2018-03-09 00:00','2018-03-09 14:00','2018-03-11 14:00','2018-03-12 14:00','2018-03-12 00:00']
werte = pd.DataFrame(columns=('Vpunkt_Raum1_testo','Vpunkt_Raum1','Vpunkt_Raum2_testo','Vpunkt_Raum2','Vpunkt_Flur_testo','Vpunkt_Flur','Vpunkt_Fortluft_testo','Vpunkt_Gesamt','L_Zuluft_Druck'))
for zeit in zeiten:
werte.loc[zeit] = daten[['Vpunkt_Raum1_testo','Vpunkt_Raum1','Vpunkt_Raum2_testo','Vpunkt_Raum2','Vpunkt_Flur_testo','Vpunkt_Flur','Vpunkt_Fortluft_testo','Vpunkt_Gesamt','L_Zuluft_Druck']].loc[zeit]
werte
Flur h
100
155
8
Flur l
183
243
7
Raum1 h
1017
1187
8
Raum1 l
411
491
7
Raum2 l
211
116
7
Gesamt l
771
792
7
Gesamt h
1419
784
9
| Vpunkt_Raum1_testo | Vpunkt_Raum1 | Vpunkt_Raum2_testo | Vpunkt_Raum2 | Vpunkt_Flur_testo | Vpunkt_Flur | Vpunkt_Fortluft_testo | Vpunkt_Gesamt | L_Zuluft_Druck | |
|---|---|---|---|---|---|---|---|---|---|
| 2018-03-08 18:00 | NaN | 945.163 | NaN | 311.645 | 158.336270 | 100.751 | NaN | 1357.559 | 91.447 |
| 2018-03-09 00:00 | NaN | 418.236 | NaN | 212.744 | 248.814138 | 183.756 | NaN | 814.736 | 79.213 |
| 2018-03-09 14:00 | 1290.539559 | 1017.890 | NaN | 312.767 | NaN | 101.260 | NaN | 1431.917 | 90.304 |
| 2018-03-11 14:00 | NaN | 411.291 | 124.407069 | 211.075 | NaN | 148.996 | NaN | 771.362 | 74.955 |
| 2018-03-12 14:00 | NaN | 1010.220 | NaN | 306.394 | NaN | 100.239 | 814.300816 | 1416.853 | 91.311 |
| 2018-03-12 00:00 | NaN | 411.291 | NaN | 211.075 | NaN | 148.996 | 678.584013 | 771.362 | 76.471 |
von = pd.to_datetime("03.08.18 11:15",infer_datetime_format=True)
bis = pd.to_datetime("03.09.18 09:00",infer_datetime_format=True)
daten['Vpunkt_Flur_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * 0.2**2) / 4) * 3600
## Raum 1
von = pd.to_datetime("03.09.18 10:00",infer_datetime_format=True)
bis = pd.to_datetime("03.10.18 16:45",infer_datetime_format=True)
daten['Vpunkt_Raum1_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * 0.315**2) / 4) * 3600
## Raum 2
von = pd.to_datetime("03.10.18 17:15",infer_datetime_format=True)
bis = pd.to_datetime("03.11.18 16:00",infer_datetime_format=True)
daten['Vpunkt_Raum2_testo'] = daten['Geschwindigkeit'].loc[von:bis] * ((math.pi * 0.2**2) / 4) * 3600
## Fortuft
von = pd.to_datetime("03.11.18 16:30",infer_datetime_format=True)
bis = pd.to_datetime("03.12.18 17:00",infer_datetime_format=True)
a=.4
Save & Upload
## Skriptlaufzeit Ende (Funktion in: libraries_and_styles.ipynb)
hours, minutes, seconds = laufzeit()
## Notebook speichern vor dem Upload (Funktion in: libraries_and_styles.ipynb)
save_notebook()
## Notebook als Markdown Datei mit eingebetten Grafiken speichern und auf den Server laden
%run ../Template/save_and_upload.ipynb Kalibrierung_Testo_174H
