Tim Ritberg:
> Ich habe eine Mysql-Datenbank mit Temperaturwerten. Meßzeitpunkt ist
> immer eine Temperaturveränderung, also keine festen Intervalle.
>
> Jetzt suche ich eine Möglichkeit einen Tagestemperaturverlauf anzeigen
> zu können.
Baue ein Array auf, was alle theoretischen Werte im Verlauf abdeckt.
Dann nimm' die Werte und verteile Sie in das Raster. Der Meßzeitpunkt
muss natürlich bekannt sein
Angenommen, Du hast die Werte aus der Datenbank in einem Array $values
mit jeweils Stunde und Wert:
<?php
$values =
[
[ 'hour' => 0, 'value' => 2.4 ],
[ 'hour' => 2, 'value' => 4.2 ],
[ 'hour' => 3, 'value' => 7.7 ],
[ 'hour' => 8, 'value' => 12.1 ],
[ 'hour' => 9, 'value' => 12.7 ],
[ 'hour' => 14, 'value' => 18.4 ],
];
$hour = 0;
while ($hour<24) {
$dayValues[$hour] = 0;
$hour++;
}
foreach ($values as $value) {
$dayValues[$value['hour']] = $value['value'];
}
echo "Zeitreihe 0-23 Uhr:\n";
$hour = 0;
while ($hour<24) {
printf("Wert um %d Uhr: %f\n", $hour, $dayValues[$hour]);
$hour++;
}
?>
Wenn Du die "Lücken" in der Zeitreihe auffüllen willst, müsstest Du die
Quelldaten nach der Stunde aufsteigend sortieren und Dir dann beim
übertragen in das Ziel-Array bei jedem Schritt merken, was der letzte
Stundenwert war und ggf. vom letzten bis zum aktuellen Wert
interpolierte Werte eintragen.
--
Arno Welzel
https://arnowelzel.de