Hai, Habr.
Hanya orang-orang malas yang tidak berbicara tentang perubahan iklim. Dan secara kebetulan menemukan situs yang bagus dengan data historis, menjadi menarik untuk memeriksa bagaimana suhu benar-benar berubah selama bertahun-tahun. Untuk pengujian, kami akan mengambil data dari beberapa kota dan menganalisisnya menggunakan Pandas dan Matplotlib. Pada saat yang sama, kita akan mengetahui apakah salju Chelyabinsk begitu parah, dan di tempat yang lebih hangat, di Moskow atau St. Petersburg.

Ditemukan juga beberapa pola yang lebih menarik. Siapa yang mau tahu detailnya, tolong, di bawah kucing.
Pengumpulan data
Saya tidak akan memberikan tautan ke situs di sini, cukup ketik "cuaca dan iklim" Google, itu akan menjadi yang pertama. Data itu sendiri ditampilkan sebagai tabel HTML:

Itu terlihat indah, tetapi untuk analisis itu tidak terlalu nyaman. Kami akan menyalin data ke csv, untuk ini saya menggunakan ekstensi gratis untuk Chrome yang disebut
Copytables . Anda sudah dapat bekerja dengan ini lebih lanjut, jika semuanya dilakukan dengan benar, Anda harus mendapatkan file dari formulir berikut:
Year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dev,Avg 2003,-7.3,-8.6,-2.7,4.7,15.5,12.8,20.6,16.9,11.3,5.6,1.1,-2.1,5.7 2004,-6.5,-7.0,1.3,4.6,11.4,15.3,19.0,18.4,12.1,5.9,-1.6,-2.9,5.8 2005,-3.0,-8.9,-6.0,7.1,14.8,16.5,19.3,17.6,13.1,6.0,1.4,-4.1,6.2
Sekarang memuat data ke dalam kerangka data Pandas. Kami akan melihat data dari tahun 1900.
import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates from matplotlib.ticker import FormatStrFormatter, LinearLocator, FuncFormatter df = pd.read_csv("moscow.csv", sep=',', encoding='utf-8') df = df[(df['Year'] >= 1900)] plt.rcParams["figure.figsize"] = (8, 5) fig, ax = plt.subplots() def neg_tick(x, pos): return '%.1f' % (-x if x else 0) plt.bar(df['Year'].values, -df['Jan'].values, label=f'{cityname} - January Temperature, C') plt.plot(df['Year'].values, -df['Jan'].rolling(window=20, min_periods=1).mean(), 'r-') ax.yaxis.set_major_formatter(FuncFormatter(neg_tick)) plt.legend(loc='best') plt.tight_layout() plt.show()
Ada satu kekhasan di sini - saya menggunakan grafik "terbalik" untuk suhu negatif, di mana saya harus menggunakan kelas FuncFormatter dan fungsi neg_tick.
Dengan kode, semuanya, seperti yang Anda lihat, tidak ada yang rumit. Sekarang mari kita lihat apa yang terjadi. Sebagai perbandingan, saya mengambil beberapa kota - Moskow, St. Petersburg dan Amsterdam. Kota-kota lain dapat ditonton sendiri.
Moskow dan Petersburg
Saya menampilkan data pada satu grafik, karena pada saat yang sama menarik untuk membandingkan suhu Moskow dengan St. Petersburg.
Untuk suhu musim dingin, ambil Januari. Gambar sudah di KDPV, tetapi untuk integritas saya akan membawanya lagi.
Musim Dingin, Januari:

Musim Panas, Juni:

Di Moskow, iklimnya memang lebih kontinental - lebih dingin di musim dingin dan lebih panas di musim panas. Puncak lain yang menarik, terlihat pada grafik - musim dingin yang sangat dingin pada tahun 1941-1945 - terasa di bawah rata-rata. Keluhan dari Jerman tentang "musim dingin umum" memiliki alasan sendiri.
Secara keseluruhan, hasilnya menarik. Suhu rata-rata memang berubah ke arah positif, tetapi musim dingin telah menjadi lebih dingin di sekitar tahun 80-an, dan musim panas menjadi lebih hangat di suatu tempat di sekitar tahun 50-an. Kenapa, saya tidak tahu.
Menarik juga bagaimana selektif ingatan manusia. Masa kecil saya di tahun 80-an, dan saya ingat musim dingin yang sangat dingin di bawah -20, berjalan dengan sepatu bot dan penutup telinga yang terasa dingin dan sebagainya. Ternyata pada tahun 80-an salju di bulan Januari tidak separah yang saya rasakan, tetapi ternyata, hari-hari terdingin lebih diingat.
Ngomong-ngomong, menjadi menarik untuk memeriksa seberapa parah pilek di
Chelyabinsk sesuai dengan lelucon:

Ya, perbedaan suhu rata-rata hampir 2 kali lipat. Ketika di Moskow suhu rata-rata Januari adalah -6, di Chelyabinsk -12. Jika di Moskow suhu rata-rata tiba-tiba turun ke -20 ... namun, menurut statistik, ini adalah yang terakhir pada tahun 1942. Berapa banyak yang tidak diketahui di Chelyabinsk, tidak ada data.
Sekarang pertimbangkan kota-kota Eropa.
Amsterdam
Di Amsterdam, iklimnya cukup hangat, meskipun tren secara keseluruhan tetap ada. "Emisi" suhu negatif yang menarik.
Musim Dingin, Januari:

Sangat lucu bahwa suhu rata-rata Januari di -7 pada tahun 1963m sangat mengesankan Belanda sehingga bahkan masuk
ke bioskop lokal .
Suhu musim panas juga berubah.
Musim Panas, Juni:

Yang menarik, musim dingin di Amsterdam tidak banyak berubah seperti di Moskow dan St. Petersburg, dan pengaruh laut kemungkinan akan memengaruhi. Sebagai perbandingan, Anda dapat melihat beberapa kota benua, misalnya
Praha :

Menariknya, hingga tahun 40-an, suhu tumbuh, maka nilai rata-rata menurun. Apa yang telah berubah, saya tidak tahu. Dan ini bukan anomali iklim lokal, efek yang sama terjadi di
Salzburg :

Seperti yang disarankan dalam komentar, grafik menunjukkan puncak yang menarik dari suhu negatif dengan periode ~ 20 tahun. Ada apa, saya tidak tahu.
Kesimpulan
Sebenarnya, saya bukan ahli meteorologi, jadi tidak akan ada kesimpulan. Perubahan iklim pasti ada di sana, tidak mungkin untuk menyangkalnya, dan suhu rata-rata memang meningkat. Menarik juga untuk melakukan overlay data pada grafik konsentrasi CO2 di atmosfer selama 100 tahun ini, atau pada beberapa peristiwa lain, misalnya, pada grafik aktivitas matahari. Yang juga cukup menarik adalah penurunan suhu rata-rata setelah tahun 1940 - apakah ini benar-benar faktor perang (walaupun saya tidak yakin di sini), atau adakah peristiwa lain, seperti letusan gunung berapi besar.
Mereka yang berharap dapat melakukan percobaan lebih lanjut sendiri.