Am Morgen, wenn ich frühstücke, schaue ich durch Yandex. Wetter fast täglich und ich bekomme regelmäßig ein Gefühl von Deja Vu, aber nur umgekehrt. Sie schauen - eine Temperatur für das Wochenende wird angezeigt, und am nächsten Tag schauen Sie - bereits sind die anderen Temperaturindikatoren versprochen. Langsam beginnen Sie an Ihrem Gedächtnis zu zweifeln (30 Jahre - dies ist bereits das vierte Dutzend, das begonnen hat). Um jedoch nicht den Mut zu verlieren, habe ich mich entschlossen zu überprüfen, inwieweit die Vorhersage mit der tatsächlichen Temperatur korreliert.
Die blaue Linie ist die tatsächliche Temperatur. Der orangefarbene Bereich gibt den Bereich der Vorhersagen an.

Die Quelle des Bildes .
Einige technische Details
Zunächst habe ich in den Kronen ein Skript installiert, das die Yandex.Weather-Seite stündlich als HTML-Datei speichert und eine Weile arbeiten lässt.
curl https://yandex.ru/pogoda/novosibirsk > test/`date +%Y-%m-%d-%H-%M`
php , , json , , , . :
function parseFile($day) {
global $mega, $csv, $realT;
$predicts = [];
$html = file_get_html(__DIR__ . '/test/' . $day);
foreach($html->find('.forecast-brief_cols_10') as $element) {
foreach ($element->find('.forecast-brief__item-temp-day') as $s) {
$predicts[] = str_replace('−', '-', $s->plaintext);
}
}
$dayDate = date_create_from_format("Y-m-d-H-i", $day);
$dayDateString = date_format($dayDate, 'Y-m-d H:i:s');
$dayArr = explode('-', $day);
if ($dayArr[3] == 14) {
foreach($html->find('.current-weather__thermometer_type_now') as $s) {
$realT[] = [
intval(date_format($dayDate, 'U') . '000'),
intval(str_replace('−', '-', $s->plaintext))
];
}
}
for ($i = 1; $i < count($predicts); $i++) {
$nextDay = date('Y-m-d', strtotime('+' . $i . ' day', strtotime($dayDateString)));
$nextDayArr = explode('-', $nextDay);
$line = [
'Y' => $dayArr[0],
'm' => $dayArr[1],
'd' => $dayArr[2],
'H' => $dayArr[3],
'i' => $dayArr[4],
'_m' => $nextDayArr[1],
'_d' => $nextDayArr[2],
'_C' => $predicts[$i]
];
$mega[] = $line;
$csv .= join(';', array_values($line)) . "\n";
}
}

, , . .
:


, .