Sekali lagi, ngeri, aku benar-benar mengikat jaket dan mempercepat langkahku, bergegas untuk bekerja. Di tempat kerja, kopi panas, unit sistem hangat dan tugas menarik. Tapi mereka tidak berputar di kepalaku, sementara angin dingin menggeliat di dadaku, tetapi sedikit kecurigaan samar tentang perubahan musim. Itu perlu untuk memeriksa apakah pemanasan dan pendinginan datang tepat waktu, dan tidak lebih awal? Mungkin musim digeser?
Tak perlu dikatakan bahwa setibanya di tempat kerja saya lupa memikirkan kecurigaan saya yang samar-samar. Tapi itu tidak hilang sepenuhnya, tetapi kadang-kadang muncul di kepala saya ketika, misalnya, saya menderita panas pada bulan Mei atau melihat pohon yang menguning pada bulan Juli.

Jadi, tanpa benar-benar mengikuti prinsip bahwa Anda perlu mulai membuat ide dalam 48 jam pertama, setelah berbulan-bulan saya melakukan sedikit riset untuk menguji kecurigaan saya. Pengingat adalah artikel tentang Gismeteo .
Data
Langkah pertama adalah mendapatkan data. Ternyata, menemukan suhu rata-rata harian tidak semudah kelihatannya. Setelah lima menit googling, saya menemukan sebuah pertanyaan di Toaster , di mana saya sampai di situs www.ncdc.noaa.gov . Tetapi data yang diterima tidak memuaskan saya (banyak kelalaian dalam tanggal), terus googling, saya menerima pencarian di situs http://aisori-m.meteo.ru/waisori/ .
Sepotong data:
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"
Memperoleh suhu tahunan dengan offset
Pertama-tama, saya mengubah csv
dengan data menjadi array objek.
Kemudian dia menulis fungsi yang mengembalikan satu tahun dari array dengan offset sejumlah hari tertentu.
Secara lebih rinci, kami memiliki array seperti itu:
... 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 ...
Jika Anda meminta semua data tahun 1956 dalam fungsi, maka itu hanya dikembalikan, dan jika Anda meminta data dengan offset -1 hari, suhu untuk setiap hari akan diambil dari hari sebelumnya. Yaitu, untuk 1 Januari 1956, suhu akan diambil pada 31 Desember 1955
... 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) ...
Mendapatkan suhu bulanan rata-rata
Dalam potongan array yang dihasilkan untuk tahun ini, saya menghitung suhu rata-rata bulanan, dengan demikian memperoleh vektor suhu untuk tahun tersebut.
[ -16.716129032258067, -16.317857142857143, -17.690322580645155, -11.57333333333333, 0.3967741935483872, 9.163333333333332, 17.845161290322586, 17.225806451612904, 15.490000000000004, 9.922580645161291, 1.7233333333333334, -8.26774193548387 ]
Jarak antara tahun offset
Jika saya memiliki vektor suhu selama satu tahun, maka saya dapat membandingkan jarak antara vektor.
Artinya, jika cuaca hampir tidak berubah sama sekali dari tahun ke tahun, maka jarak antara vektor akan menjadi nol. Dari sini saya memutuskan bahwa saya akan membandingkan, misalnya, vektor 2001 dan semua vektor 2002 yang diperoleh dari offset.
... 2001 == 2002 -2 2001 == 2002 -1 2001 == 2002 2001 == 2002 +1 2001 == 2002 +2 ...
Setelah mengambil offset dari perbandingan itu, di mana jarak antara vektor minimal. Artinya, jika ternyata jarak antara 2001
dan 2002 +2
minimal, maka musim 2002 bergeser 2 hari ke depan relatif terhadap 2001.
Ke depan, saya akan mengatakan bahwa saya mengambil tahun 1956 untuk tahun pertama dan melihat perubahan selama 30 hari bolak-balik.
Saya memprogram algoritma pada js dan membuat situs kecil untuk verifikasi mudah.
Kode sumber di github .
Memeriksa Asumsi
Kemerovo
Ya! Musim mulai berubah lebih cepat dari 2013 dalam 10 hari, dan rata-rata sejak 1956 dalam 8 hari!

Moskow
Hampir tidak ada perpindahan.

Arkhangelsk

Kaliningrad

Saint Petersburg

Tyumen

Vladivostok

Kesimpulan
Sensasi itu tidak tertipu, tetapi sensasi itu masih perlu diperiksa.
PS Sebenarnya, saya sedang mencari Novosibirsk. Di situs Novosibirsk tidak, tetapi Kemerovo saya benar-benar puas.
PPS Ternyata kemudian, file itu hilang pada tahun 2018, dan saya membutuhkan Januari ini, jadi saya mengunduh bulan yang hilang dari situs pogodaiklimat.ru .