Wunderground, Endauswertung: einheitliche Formatierung
mithilfe von Eclipse
This commit is contained in:
parent
a038d0e773
commit
5e8ada7897
2 changed files with 51 additions and 51 deletions
|
@ -4,7 +4,7 @@ import math
|
||||||
from datetime import datetime # aus dem Modul datetime Datentyp datetime (Datum und Zeit) importieren
|
from datetime import datetime # aus dem Modul datetime Datentyp datetime (Datum und Zeit) importieren
|
||||||
bis_roh = "2014/02/01 22:1:00"
|
bis_roh = "2014/02/01 22:1:00"
|
||||||
|
|
||||||
namen = ["Innentemperatur", "Gerätetemperatur 1", "Außentemperatur", "Gerätetemperatur 2", "Temperatur (Luft)", "Luftfeuchtigkeit", "Luftdruck\t", "Temperatur (Druck)", "Prozessor\t","Qualität\t"]
|
namen = ["Innentemperatur", "Gerätetemperatur 1", "Außentemperatur", "Gerätetemperatur 2", "Temperatur (Luft)", "Luftfeuchtigkeit", "Luftdruck\t", "Temperatur (Druck)", "Prozessor\t", "Qualität\t"]
|
||||||
format = "%Y/%m/%d %H:%M:%S"
|
format = "%Y/%m/%d %H:%M:%S"
|
||||||
eingabeformat = "%d.%m.%y %H:%M:%S"
|
eingabeformat = "%d.%m.%y %H:%M:%S"
|
||||||
von_roh = "2014/02/01 18:12:42"
|
von_roh = "2014/02/01 18:12:42"
|
||||||
|
@ -12,24 +12,24 @@ von_roh = "2014/02/01 18:12:42"
|
||||||
|
|
||||||
def offnen(datei):
|
def offnen(datei):
|
||||||
with open(datei) as filein:
|
with open(datei) as filein:
|
||||||
reader =csv.reader(filein, quoting=csv.QUOTE_NONNUMERIC)
|
reader = csv.reader(filein, quoting = csv.QUOTE_NONNUMERIC)
|
||||||
global liste # Liste außerhalb von Funtion nutzen
|
global liste # Liste außerhalb von Funtion nutzen
|
||||||
liste = list(zip(*reader)) # = [temp1,temp2,temp3,temp4,luft_temp,luft_feucht,druck,temp_druck,rasp]
|
liste = list(zip(*reader)) # = [temp1,temp2,temp3,temp4,luft_temp,luft_feucht,druck,temp_druck,rasp]
|
||||||
|
|
||||||
def ausreisser(spalte):
|
def ausreisser(spalte):
|
||||||
zeilenanzahl = len(spalte) -1
|
zeilenanzahl = len(spalte) - 1
|
||||||
i = 0
|
i = 0
|
||||||
|
|
||||||
while i < zeilenanzahl:
|
while i < zeilenanzahl:
|
||||||
if (spalte[i] != "") and (spalte[i+1] != "") and (spalte[i-1] != ""):
|
if (spalte[i] != "") and (spalte[i + 1] != "") and (spalte[i - 1] != ""):
|
||||||
diff1 = spalte[i]-spalte[i+1]
|
diff1 = spalte[i] - spalte[i + 1]
|
||||||
diff2 = spalte[i]-spalte[i-1]
|
diff2 = spalte[i] - spalte[i - 1]
|
||||||
if ((diff1 < -schwankung) or (diff1 > schwankung)) and ((diff2 < -schwankung) or (diff2 > schwankung)):
|
if ((diff1 < -schwankung) or (diff1 > schwankung)) and ((diff2 < -schwankung) or (diff2 > schwankung)):
|
||||||
print("in Spalte " + str(liste.index(spalte)+1) + " Zeile " + str(i+1) + " ist ein Ausreisser (" + str(spalte[i]) + ")")
|
print("in Spalte " + str(liste.index(spalte) + 1) + " Zeile " + str(i + 1) + " ist ein Ausreisser (" + str(spalte[i]) + ")")
|
||||||
ausreisserliste.append((liste.index(spalte),i))
|
ausreisserliste.append((liste.index(spalte), i))
|
||||||
# else:
|
# else:
|
||||||
# print("Passt:" + str(i),str(diff1),str(diff2))
|
# print("Passt:" + str(i),str(diff1),str(diff2))
|
||||||
i+= 1
|
i += 1
|
||||||
|
|
||||||
def mittelwert(spalte):
|
def mittelwert(spalte):
|
||||||
summe = 0
|
summe = 0
|
||||||
|
@ -42,7 +42,7 @@ def mittelwert(spalte):
|
||||||
return mittelwert
|
return mittelwert
|
||||||
|
|
||||||
def minmax(spalte):
|
def minmax(spalte):
|
||||||
mini = spalte[0] #Minimum auf ersten Wert setzen
|
mini = spalte[0] # Minimum auf ersten Wert setzen
|
||||||
maxi = spalte[0]
|
maxi = spalte[0]
|
||||||
for wert in spalte:
|
for wert in spalte:
|
||||||
if wert != "":
|
if wert != "":
|
||||||
|
@ -50,9 +50,9 @@ def minmax(spalte):
|
||||||
mini = wert
|
mini = wert
|
||||||
if wert > maxi:
|
if wert > maxi:
|
||||||
maxi = wert
|
maxi = wert
|
||||||
return (mini,maxi)
|
return (mini, maxi)
|
||||||
|
|
||||||
def standardabweichung(spalte,mw):
|
def standardabweichung(spalte, mw):
|
||||||
n = 0
|
n = 0
|
||||||
summe = 0
|
summe = 0
|
||||||
for wert in spalte:
|
for wert in spalte:
|
||||||
|
@ -68,7 +68,7 @@ def datum_offnen():
|
||||||
global inhalt
|
global inhalt
|
||||||
inhalt = datei.readlines()
|
inhalt = datei.readlines()
|
||||||
datei.close()
|
datei.close()
|
||||||
def datumsauswahl(von,bis):
|
def datumsauswahl(von, bis):
|
||||||
|
|
||||||
start_gefunden = False
|
start_gefunden = False
|
||||||
stop_gefunden = False
|
stop_gefunden = False
|
||||||
|
@ -85,7 +85,7 @@ def datumsauswahl(von,bis):
|
||||||
print("Entweder ist der Endzeitpunkt vor dem Startzeitpunkt oder die beiden liegen zu nahe an den Grenzwerten.")
|
print("Entweder ist der Endzeitpunkt vor dem Startzeitpunkt oder die beiden liegen zu nahe an den Grenzwerten.")
|
||||||
exit(1)
|
exit(1)
|
||||||
print("Der Messwert geht von Zeile " + str(start) + " bis Zeile " + str(stop) + " und über folgenden Zeitraum: " + str(bis - von))
|
print("Der Messwert geht von Zeile " + str(start) + " bis Zeile " + str(stop) + " und über folgenden Zeitraum: " + str(bis - von))
|
||||||
return start,stop
|
return start, stop
|
||||||
|
|
||||||
def datumsfrage(frage):
|
def datumsfrage(frage):
|
||||||
while True:
|
while True:
|
||||||
|
@ -99,20 +99,20 @@ def datumsfrage(frage):
|
||||||
|
|
||||||
offnen("vorbereitet.csv")
|
offnen("vorbereitet.csv")
|
||||||
datum_offnen()
|
datum_offnen()
|
||||||
spalten_nummer=0
|
spalten_nummer = 0
|
||||||
ausreisserliste= []
|
ausreisserliste = []
|
||||||
for spalte in liste:
|
for spalte in liste:
|
||||||
if (spalten_nummer == 9):
|
if (spalten_nummer == 9):
|
||||||
schwankung=1000
|
schwankung = 1000
|
||||||
else:
|
else:
|
||||||
schwankung = 10
|
schwankung = 10
|
||||||
ausreisser(spalte)
|
ausreisser(spalte)
|
||||||
spalten_nummer += 1
|
spalten_nummer += 1
|
||||||
print("Bitte Datum im Format 'DD.MM.YY HH:MM:SS' eingeben")
|
print("Bitte Datum im Format 'DD.MM.YY HH:MM:SS' eingeben")
|
||||||
print("Es sollte zwischen " + datetime.strptime(inhalt[1].rstrip(),format).strftime(eingabeformat) + " und " + datetime.strptime(inhalt[-1].rstrip(),format).strftime(eingabeformat) + " liegen")
|
print("Es sollte zwischen " + datetime.strptime(inhalt[1].rstrip(), format).strftime(eingabeformat) + " und " + datetime.strptime(inhalt[-1].rstrip(), format).strftime(eingabeformat) + " liegen")
|
||||||
von = datumsfrage("von: ")
|
von = datumsfrage("von: ")
|
||||||
bis = datumsfrage("bis: ")
|
bis = datumsfrage("bis: ")
|
||||||
startstop = datumsauswahl(von,bis)
|
startstop = datumsauswahl(von, bis)
|
||||||
von = startstop[0]
|
von = startstop[0]
|
||||||
bis = startstop[1]
|
bis = startstop[1]
|
||||||
liste_auswahl = []
|
liste_auswahl = []
|
||||||
|
@ -123,10 +123,10 @@ liste = liste_auswahl
|
||||||
print("------Mittelwerte------")
|
print("------Mittelwerte------")
|
||||||
mittelwerte = [] # leere Liste erstellen
|
mittelwerte = [] # leere Liste erstellen
|
||||||
for spalte in liste:
|
for spalte in liste:
|
||||||
mw = mittelwert(spalte) #jeden MW ausrechnen ...
|
mw = mittelwert(spalte) # jeden MW ausrechnen ...
|
||||||
mittelwerte.append(mw) # ... und an die Liste anhängen
|
mittelwerte.append(mw) # ... und an die Liste anhängen
|
||||||
mittelausgabe = zip(namen,mittelwerte) # in Tupel umwandeln [(Innentemperatur, 25), (Außentemperatur,8)]
|
mittelausgabe = zip(namen, mittelwerte) # in Tupel umwandeln [(Innentemperatur, 25), (Außentemperatur,8)]
|
||||||
for name,mittelwert in mittelausgabe:
|
for name, mittelwert in mittelausgabe:
|
||||||
print(name + ":\t%0.2f" % mittelwert) # jedes Tupel ausgeben
|
print(name + ":\t%0.2f" % mittelwert) # jedes Tupel ausgeben
|
||||||
|
|
||||||
print("------Minimum-Maximum------")
|
print("------Minimum-Maximum------")
|
||||||
|
@ -138,14 +138,14 @@ for spalte in liste:
|
||||||
maxi = minumax[1]
|
maxi = minumax[1]
|
||||||
minima.append(mini)
|
minima.append(mini)
|
||||||
maxima.append(maxi)
|
maxima.append(maxi)
|
||||||
minmaxausgabe = zip(namen,minima,maxima)
|
minmaxausgabe = zip(namen, minima, maxima)
|
||||||
for name,minimum,maximum in minmaxausgabe:
|
for name, minimum, maximum in minmaxausgabe:
|
||||||
print(name + ":\t" + str(minimum) + "\t" + str(maximum))
|
print(name + ":\t" + str(minimum) + "\t" + str(maximum))
|
||||||
print("------Standardabweichung------")
|
print("------Standardabweichung------")
|
||||||
standardabweichungen=[]
|
standardabweichungen = []
|
||||||
for spalte in liste:
|
for spalte in liste:
|
||||||
abweichung = standardabweichung(spalte,mittelwerte[liste.index(spalte)]) #Mittelwert über Stelle in Liste herausfinden
|
abweichung = standardabweichung(spalte, mittelwerte[liste.index(spalte)]) # Mittelwert über Stelle in Liste herausfinden
|
||||||
standardabweichungen.append(abweichung)
|
standardabweichungen.append(abweichung)
|
||||||
stabausgabe = zip(namen,standardabweichungen)
|
stabausgabe = zip(namen, standardabweichungen)
|
||||||
for name,abweichung in stabausgabe:
|
for name, abweichung in stabausgabe:
|
||||||
print(name + ":\t%0.2f" % abweichung)
|
print(name + ":\t%0.2f" % abweichung)
|
||||||
|
|
|
@ -5,28 +5,28 @@ from datetime import datetime
|
||||||
import requests
|
import requests
|
||||||
from wunderground_pwd import * # password und wu_id
|
from wunderground_pwd import * # password und wu_id
|
||||||
|
|
||||||
innentemp_c=float(sys.argv[1])
|
innentemp_c = float(sys.argv[1])
|
||||||
gertemp1_c=float(sys.argv[2])
|
gertemp1_c = float(sys.argv[2])
|
||||||
bodentemp_c=float(sys.argv[3])
|
bodentemp_c = float(sys.argv[3])
|
||||||
gertemp2_c=float(sys.argv[4])
|
gertemp2_c = float(sys.argv[4])
|
||||||
lufttemp_c=float(sys.argv[5])
|
lufttemp_c = float(sys.argv[5])
|
||||||
luftfeucht=float(sys.argv[6])
|
luftfeucht = float(sys.argv[6])
|
||||||
aussentemp_c=float(sys.argv[7])
|
aussentemp_c = float(sys.argv[7])
|
||||||
druck=float(sys.argv[8])
|
druck = float(sys.argv[8])
|
||||||
processor_c=float(sys.argv[9])
|
processor_c = float(sys.argv[9])
|
||||||
qualitat=float(sys.argv[10])
|
qualitat = float(sys.argv[10])
|
||||||
innentemp = 9.0/5.0 * innentemp_c + 32
|
innentemp = 9.0 / 5.0 * innentemp_c + 32
|
||||||
gertemp1 = 9.0/5.0 * gertemp1_c + 32
|
gertemp1 = 9.0 / 5.0 * gertemp1_c + 32
|
||||||
bodentemp = 9.0/5.0 * bodentemp_c + 32
|
bodentemp = 9.0 / 5.0 * bodentemp_c + 32
|
||||||
gertemp2 = 9.0/5.0 * gertemp2_c + 32
|
gertemp2 = 9.0 / 5.0 * gertemp2_c + 32
|
||||||
lufttemp = 9.0/5.0 * lufttemp_c + 32
|
lufttemp = 9.0 / 5.0 * lufttemp_c + 32
|
||||||
aussentemp = 9.0/5.0 * aussentemp_c + 32
|
aussentemp = 9.0 / 5.0 * aussentemp_c + 32
|
||||||
processor = 9.0/5.0 * processor_c + 32
|
processor = 9.0 / 5.0 * processor_c + 32
|
||||||
druck_hg = druck * 0.02956
|
druck_hg = druck * 0.02956
|
||||||
zeit=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
|
zeit = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
|
||||||
pfad="http://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?ID=" + wu_id + "&PASSWORD=" + password + "&dateutc=" + zeit + "&tempf=" + str(aussentemp) + "&temp2f=" + str(bodentemp) + "&temp2f=" + str(lufttemp) + "&baromin=" + str(druck_hg) + "&humidity=" + str(luftfeucht) + "&indoortempf=" + str(innentemp) + "&softwaretype=raspberry_pi&action=updateraw&realtime=1&rtfreq=30"
|
pfad = "http://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?ID=" + wu_id + "&PASSWORD=" + password + "&dateutc=" + zeit + "&tempf=" + str(aussentemp) + "&temp2f=" + str(bodentemp) + "&temp2f=" + str(lufttemp) + "&baromin=" + str(druck_hg) + "&humidity=" + str(luftfeucht) + "&indoortempf=" + str(innentemp) + "&softwaretype=raspberry_pi&action=updateraw&realtime=1&rtfreq=30"
|
||||||
r = requests.get(pfad)
|
r = requests.get(pfad)
|
||||||
if (r.text == "success\n") & (r.status_code == 200):
|
if (r.text == "success\n") & (r.status_code == 200):
|
||||||
print("ok")
|
print("ok")
|
||||||
else:
|
else:
|
||||||
print("Ein Fehler ist aufgetreten: " + r.text)
|
print("Ein Fehler ist aufgetreten: " + r.text)
|
Reference in a new issue