ich habe vor einiger Zeit mit einem Kollegen einen Code erstellt, der mir aus bestimmten Datensätzen einen Volumenstrom berechnet und mir zusätzlich noch das Zapfprofil über das gesamte Jahr ausgibt. Da mein Kollege mir nicht mehr helfen kann, bitte ich hier in diesem Forum um Hilfe. Nun zu den Details. Mithilfe eines bestimmten Tools habe ich sekündliche Messwerte in fünf sekündliche Werte mitteln lassen und in entsprechenden .csv- Dateien gespeichert. Hierbei handelt es sich um ein Warmwasser- Zapfprofil für den Zeitraum eines knappen Monats (28 Tage). Pro Tag habe ich 17280 Zeilen mit Werten ( kommt zustande wenn man (3600s/h*5)*24h rechnet). Nun kommt der Code zum Einsatz. Der Code berechnet mir für jeden Tag dieses Zeitraumes den Zapfvolumenstrom und am Ende wird das zusätzlich auf das gesamte Jahr unter Berücksichtigung der Ferienzeiten erweitert, damit ich ein Jahreszapfprofil habe. Jetzt zu meinem Problem: Der Code gibt mir anstelle von 6.307.200 Zeilen/ Jahr nur 6.307.187 Zeilen/ Jahr aus. Es fehlen also genau Zeilen und ich komme nicht darauf, was ich ändern muss, um den korrekten Wert zu bekommen. Ich teile hier den relevanten Teil des Codes mit der Bitte um einen Rat, was ich ändern bzw. verbessern muss.
import pandas as pd
import numpy as np
df = pd.DataFrame()
.
.
.
.
t_ww = 60
t_zapf = 45
t_korr = 45
t_kw = 10
cp = 4.18 # kJ/kg/K
roh = 995.757297 # kg/m^3
# T_KW_lin - interpolierte T_Cold_min- Daten -> neuer Name für T_Cold_min ist T_KW_lin
start = 16
end = 13.5
lin_temp = np.linspace(start, end, len(df))
print(lin_temp)
# Normierung auf T_KW bei angenommener Zapftemperatur t_korr an der Zapfstelle
df['T_KW_lin'] = lin_temp # t_cold min hiermit ersetzen; hier: kw_lin mit T_KW_lin ersetzt
df['q_korr'] = df['Q_Flow_Tap_in_kW']*((t_korr-t_kw)/(t_ww-t_kw)/(t_korr-df['T_KW_lin'])/(t_ww-df['T_KW_lin'])) # Hier: T_Cold_min mit T_KW_lin ersetzt
# Berechnung des normierten Zapfvolumenstroms bei t_zapf
df['V_korr'] = df['q_korr'] * 1000 * 1000/(roh*cp*(t_zapf-t_kw)) # Einheit l/s
df['V_korr_5s'] = df['V_korr'] * 5 # Einheit l/5*s
repeated_column = np.tile(df['V_korr_5s'].values, 13)
repeated_column = np.concatenate([repeated_column, df['V_korr_5s'][:17280].values])
# df['V_korr'].to_csv("volumenstrom_jke.csv", decimal=",", sep=";")
print(len(df))
print(len(repeated_column))
# Ferienzeiten
# Weihnachtsferien 2022/23
repeated_column[17281:103680] = 0
# Winterferien 2023
repeated_column[518400:535680] = 0
# Osterferien 2023
repeated_column[1486080:1745280] = 0
# Himmelfahrt 2023
repeated_column[2384640:2401920] = 0
# Pfingsten 2023
repeated_column[2574720:2592000] = 0
# Sommerferien 2023
repeated_column[3231360:3939840] = 0
# Tag der Arbeit 2023 + Brückentag
repeated_column[4752000:4769280] = 0
# Herbstferien 2023
repeated_column[4993920:5253120] = 0
# Weihnachtsferien 2023/24
repeated_column[6203520:6272640] = 0
np.savetxt("Volumenstrom_LMS.csv", repeated_column, delimiter=',')
repeated_column = repeated_column*5
Ich kann leider nicht alles aus dem Code zeigen, aber vielleicht reicht das für die Lösung. Ich danke für jede Hilfe und wünsche allen eine gute Zeit.
