In Kemerowo ersetzen sich die Jahreszeiten von Jahr zu Jahr

Noch einmal krümmte ich mich, zog meine Jacke vollständig an, beschleunigte mein Tempo und eilte zur Arbeit. Bei der Arbeit heißer Kaffee, eine warme Systemeinheit und interessante Aufgaben. Aber sie drehten sich nicht in meinem Kopf, während der kalte Wind in meinem Busen kramte, sondern ein leicht vager Verdacht über die wechselnden Jahreszeiten. Es musste überprüft werden, ob das Erwärmen und Abkühlen pünktlich und nicht früher erfolgte. Vielleicht sind die Jahreszeiten verschoben?


Es versteht sich von selbst, dass ich bei der Ankunft bei der Arbeit vergessen habe, über meinen vagen Verdacht nachzudenken. Aber es löste sich nicht vollständig auf, sondern tauchte gelegentlich in meinem Kopf auf, als ich zum Beispiel im Mai unter Hitze litt oder im Juli einen vergilbten Baum sah.



Also, ohne wirklich dem Prinzip zu folgen, dass Sie in den ersten 48 Stunden eine Idee machen müssen, habe ich nach vielen Monaten ein wenig recherchiert, um meinen Verdacht zu testen. Eine Erinnerung war ein Artikel über Gismeteo .


Daten


Der erste Schritt war, die Daten zu erhalten. Wie sich herausstellte, ist es nicht so einfach, die täglichen Durchschnittstemperaturen zu ermitteln, wie es scheint. Nach fünf Minuten googeln stieß ich auf eine Frage im Toaster , wo ich auf die Website www.ncdc.noaa.gov kam . Aber die empfangenen Daten haben mich nicht zufrieden gestellt (viele Auslassungen in den Daten), weiter gegoogelt und auf der Website http://aisori-m.meteo.ru/waisori/ das bekommen, wonach ich gesucht habe.


Datenstück:


29645 1955 1 1 "-31.0" 29645 1955 1 2 "-23.8" 29645 1955 1 3 "-18.7" 29645 1955 1 4 "-13.3" 29645 1955 1 5 "-16.8" 29645 1955 1 6 "-16.8" 29645 1955 1 7 "-18.6" 29645 1955 1 8 "-17.0" 29645 1955 1 9 "-6.7" 29645 1955 1 10 "-10.4" 

Jährliche Temperaturen mit Offset erhalten


Zunächst habe ich die csv mit den Daten in ein Array von Objekten konvertiert.


Dann schrieb er eine Funktion, die ein Jahr aus dem Array mit einem Versatz von einer bestimmten Anzahl von Tagen zurückgab.
Im Detail haben wir einen solchen Teil des Arrays:


 ... 1955 12 29 -34.5 1955 12 30 -37.7 1955 12 31 -36.3 1956 1 1 -29.2 1956 1 2 -32.9 1956 1 3 -38.1 1956 1 4 -36.6 ... 

Wenn Sie alle Daten von 1956 in der Funktion anfordern, wird diese einfach zurückgegeben. Wenn Sie Daten mit einem Versatz von -1 Tag anfordern, wird die Temperatur für jeden Tag vom vorherigen Tag übernommen. Das heißt, für den 1. Januar 1956 wird die Temperatur am 31. Dezember 1955 gemessen


 ... 1956 1 1 -36.3 ← ( 1955 12 31) 1956 1 2 -29.2 ← ( 1956 1 1) 1956 1 3 -32.9 ← ( 1956 1 2) 1956 1 4 -38.1 ← ( 1956 1 3) ... 

Ermitteln der durchschnittlichen monatlichen Temperatur


In der resultierenden Schicht des Arrays für das Jahr berechnete ich die durchschnittlichen monatlichen Temperaturen und erhielt so einen Temperaturvektor für das Jahr.


 [ -16.716129032258067, -16.317857142857143, -17.690322580645155, -11.57333333333333, 0.3967741935483872, 9.163333333333332, 17.845161290322586, 17.225806451612904, 15.490000000000004, 9.922580645161291, 1.7233333333333334, -8.26774193548387 ] 

Abstand zwischen Offsetjahren


Wenn ich ein Jahr lang einen Temperaturvektor habe, kann ich den Abstand zwischen den Vektoren vergleichen.
Das heißt, wenn sich das Wetter von Jahr zu Jahr kaum verändert hätte, wäre der Abstand zwischen den Vektoren Null. Von hier aus habe ich beschlossen, zum Beispiel den Vektor von 2001 und alle durch den Offset erhaltenen Vektoren von 2002 zu vergleichen.


 ... 2001  == 2002  -2  2001  == 2002  -1  2001  == 2002  2001  == 2002  +1  2001  == 2002  +2  ... 

Nach dem Versatz dieses Vergleichs, bei dem der Abstand zwischen den Vektoren minimal ist. Das heißt, wenn sich herausstellt, dass der Abstand zwischen 2001 und 2002 +2 minimal ist, wurde die Saison 2002 im Vergleich zu 2001 um 2 Tage verschoben .


Mit Blick auf die Zukunft werde ich sagen, dass ich 1956 für das erste Jahr genommen und mir die Schicht 30 Tage lang hin und her angesehen habe.


Wir machen den Code aus


Ich habe den Algorithmus auf js programmiert und eine kleine Site zur einfachen Überprüfung erstellt.
Quellcode auf Github .


Annahmen überprüfen


Kemerowo


Ja! Die Jahreszeiten begannen sich ab 2013 um 10 Tage und im Durchschnitt seit 1956 um 8 Tage schneller zu ändern!


Moskau


Es gibt fast keine Verschiebung.


Archangelsk



Kaliningrad



Sankt Petersburg



Tjumen



Wladiwostok



Fazit


Die Empfindung wurde nicht getäuscht, aber die Empfindungen müssen noch überprüft werden.


PS Tatsächlich habe ich nach Nowosibirsk gesucht. Auf der Novosibirsk Seite war das nicht, aber Kemerovo war ich rundum zufrieden.


PPS Wie sich etwas später herausstellte, fehlte die Datei im Jahr 2018, und ich brauchte diesen Januar, also habe ich den fehlenden Monat von der Website pogodaiklimat.ru heruntergeladen.

Source: https://habr.com/ru/post/de421077/


All Articles