| |
Visual-Basic EinsteigerAuswerten von Temperaturen ? | | | Autor: anfaenger_michael | Datum: 24.01.19 08:05 |
| Moin moin,
ich habe eine Datei die Zeiten und Temperaturen enthält.
Aufbau jeweils Datum und Temperatur:
21.01.2019 20:17:24 20.8
21.01.2019 21:17:00 21.2
22.01.2019 10:12:10 21.0
22.01.2019 12:10:23 21.5
usw. usw... ca. 2000 Zeilen
Nun meine Frage:
Ich möchte aus diesen Daten eine Auswertung erstelle.
Diese soll beinhalten:
-Die Temperaturschwankung über den ganzen Zeitraum in 1/2 Stunde.
-Die Temperaturschwankung über den ganzen Zeitraum in 1 Stunde.
-Die Temperaturschwankung über den ganzen Zeitraum in 4 Stunden.
-Die Temperaturschwankung über den ganzen Zeitraum in 7 Tagen.
Leider habe ich nicht einmal einen Ansatz wie ich das angehen soll.
Hat hier jemand einen Tipp, oder gar eine Lösung ?
Danke.
Gruß
Michael | |
Re: Auswerten von Temperaturen ? | | | Autor: Manfred X | Datum: 24.01.19 17:57 |
| Hallo!
Welche VB-Version?
Definiere den Begriff "Temperaturschwankung"!
(Wie darstellen: Diagramm, Extremwerte, Perzentile,
Streuungsmaß, Glättverfahren z.B. Gleitdurchschnitt ...)
Zwischen den Messungen liegen anscheinend keine
gleichen Abstände. Innerhalb der Intervalle liegen
deshalb vermutlich unterschiedliche Anzahlen von
Messungen. Soll das einbezogen werden? Wie?
Eventuell ist auch die Meßgenauigkeit relevant und zu beachten! | |
Re: Auswerten von Temperaturen ? | | | Autor: anfaenger_michael | Datum: 25.01.19 13:47 |
| Hallo Manfred,
Danke für die Antwort.
Frage 1
VB6
Frage 2
Ich meine die Schwankung der Temperatur in den einzelnen Zeiten.
Die Extremwerte als Zahl wären ausreichend. Diagramm wird nicht benötigt.
Frage 3
Das die Intervalle nicht die gleiche Zeitfolge aufweisen, war mein Fehler.
Normal folgen die Messungen in einem Intervall von 30 Minuten.
Die Meßgenauigkeit ist hierbei nicht Relevant.
Noch eine Frage am Rande.
Kommst Du aus der Statistik ?
Gruß
Michael | |
Re: Auswerten von Temperaturen ? | | | Autor: Manfred X | Datum: 25.01.19 15:19 |
| Hallo!
Dann stellt sich eine weitere Frage.
Wie bestimmst Du den Startzeitpunkt für die
Festlegung der äquidistanten Zeitintervalle?
- beginnend beim Zeitpunkt der ersten Messung
- abhängig von der jeweiligen Äquidistanz
(30min-Wechsel, Stundenwechsel, Tageswechsel, Wochenwechsel usw.)
--> am ersten geeigneten Wechsel-Zeitpunkt vor der ersten Messung
--> am ersten geeigneten Wechsel-Zeitpunkt nach der ersten Messung
- Festlegung eines Start-Zeitpunktes, der für alle
Äquidistanzen gleich ist. | |
Re: Auswerten von Temperaturen ? | | | Autor: anfaenger_michael | Datum: 25.01.19 15:44 |
| Hallo Manfred,
der Startzeitpunkt sollte der erste Eintrag in der Datei sein.
Gruß
Michael | |
Re: Auswerten von Temperaturen ? | | | Autor: Manfred X | Datum: 25.01.19 18:33 |
| Tja, VB6
Den alten Schrott habe ich seit mehr als 10 Jahren
nicht mehr angefaßt.
Es gab hier noch eine alte Möhe, auf der das installiert war.
Erwarte keine Top-Lösung!!
Als Parameter erwartet die Routine das Datenfile und die
Angabe des Intervalls für die Klassenbildung in Minuten.
Danach eine Ausgabedatei (wird überschrieben!)
Es wird angenommen, die erste Zeile der Eingabedatei enthalte
das früheste Datum (= Startdatum der Klassenbildung).
Angenommener Dateiaufbau (Zeile):
8.1.2019 15:0:0 09,28
Private Sub GetTempSpan(ByVal file As String, ByVal Interval As Integer, _
ByVal outfile As String)
Open file For Input As #1
Dim line As String
Dim parts() As String, dt As Date, temp As Double
Dim found As Boolean, limit As Date, start As Date
Dim i%, k%, kmax%
Line Input #1, line
parts = Split(line)
start = CDate(parts(0) & " " & parts(1)) 'Startdatum
'Ermittlung der benötigten Klassenzahl
While Not EOF(1)
Line Input #1, line
parts() = Split(line, " ")
dt = CDate(parts(0) & " " & parts(1))
found = False: limit = start: k = 0
While Not found
k = k + 1
limit = DateAdd("n", k * Interval, start)
found = dt <= limit
Wend
If k > kmax Then kmax = k
Wend
Close #1
'Bestimmung der Extremwerte pro Intervall (min, max)
Dim min() As Double, max() As Double, classlimit() As Date
ReDim min(kmax) As Double
ReDim max(kmax) As Double
ReDim classlimit(kmax) As Date
For k = 1 To kmax
min(k) = 1000: max(k) = -1000 'Vorbelegung der Extremwertarrays
Next k
Open file For Input As #1
While Not EOF(1)
Line Input #1, line
parts() = Split(line, " ")
dt = CDate(parts(0) & " " & parts(1))
temp = CDbl(parts(2))
found = False: limit = start: k = 0
While Not found
k = k + 1
limit = DateAdd("n", k * Interval, start)
classlimit(k) = limit
found = dt <= limit
Wend
If min(k) > temp Then min(k) = temp
If max(k) < temp Then max(k) = temp
Wend
Close #1
'Ausgabe Intervall-Obergrenze und Extremwerte
Open outfile For Output As #1
For k = 1 To kmax
Print #1, Format(classlimit(k), "General Date"); " "; min(k); " --- "; max( _
k)
Next k
Close #1
End Sub | |
Re: Auswerten von Temperaturen ? | | | Autor: anfaenger_michael | Datum: 28.01.19 12:48 |
| Hallo Manfred,
Funktioniert.
Chapeau Manfred.
Danke.
Gruß
Michael | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|