Faịlụ:Temp-sunspot-co2.svg

O sị testwiki
Gaa na nsoroụzọ Malie na ịchọọ
Failụ si na nke mbu (usòrò SVG, nà áhà pixel 720 × 540, ívụ usòrò: 98 KB)

Failụ a si na Wikimedia Commons,enwekwara ike iji ya eme ihe na arụmarụ ọzọ. Nkọwa na ihuakwukwọ nkọwa failụ eziri na okpuru.

Mmẹkụwátá

Nkówá
English: Global average temperature, atmospheric CO2, and sunspot activity since 1850. Thick lines for temperature and sunspots represent a 25 year LOWESS and moving average smoothing of the raw data.
Ǹgụ́ụ̀bọ̀chị̀ 11 Jenụwarị 2009 (original upload date)
Mkpọlọ́gwụ̀ Transferred from en.wikipedia to Commons by Anrie using CommonsHelper.
Odé ákwụ́kwọ́ Leland McInnes at Bekee Wikipedia
Nke ya ozor
SVG genesis
InfoField
 The source code of this SVG is invalid due to an error.
 This W3C-invalid diagram was created with Matplotlib.
#(light blue) Law Dome CO2 Data: ftp://ftp.ncdc.noaa.gov/pub/data/paleo/icecore/antarctica/law/law_co2.txt
  1. (blue) Mauna Loa CO2 data: ftp://aftp.cmdl.noaa.gov/products/trends/co2/co2_mm_mlo.txt
  2. (red) Temperature Data: http://www.cru.uea.ac.uk/cru/data/temperature/hadcrut3gl.txt, http://woodfortrees.org/data/hadcrut4gl/mean:12
  3. (orange) Sunspot data: http://sidc.oma.be/DATA/yearssn.dat, http://www.sidc.be/silso/DATA/SN_y_tot_V2.0.txt

Global average temperature, atmospheric CO2, and sunspot activity since 1850. Thick lines for temperature and sunspots represent a 25 year moving average smoothing of the raw data.

This figure was produced by Leland McInnes using python and matplotlib and is licensed under the GFDL. All data is from publicly available sources.


The plot can likely be updated for more recent data using these same script, though minor modifications may be required for changes in data formats, locations, etc.

This file may be updated to reflect new information. If you wish to use a specific version of the file without it being overwritten, please upload the required version as a separate file.
Source code
InfoField

Python code

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pylab as plt
import matplotlib.ticker as ticker
import urllib3
import ftplib
import shutil

plt.rcdefaults()
plt.style.use('classic')

def saveurl(url, fname):
    if url.startswith("ftp"):
        ftp = ftplib.FTP('/'.join(url.split('/')[2:3]))
        ftp.login('', '')
        with open(fname, 'wb') as f:
            res = ftp.retrbinary('RETR %s' % '/'.join(url.split('/')[3:]), f.write)
    else:
        c = urllib3.PoolManager()
        with c.request('GET', url, preload_content=False) as resp, open(fname, 'wb') as out_file:
            shutil.copyfileobj(resp, out_file)
    print('saved', fname, 'from', url)

def smooth_convolution(signal, window_size):
    window_size = 1 + 2 * (window_size // 2) # should be odd
    w = np.hamming(window_size)
    y = (np.convolve(w, signal) / np.convolve(w, np.ones_like(signal)))
    return y[(len(w)-1)//2:-(len(w)//2)]

def smooth_lowess(signal, window_size):
    s = window_size // 2
    window = np.hamming(1+2*s) / np.hamming(1+2*s).sum()
    smoothed = np.empty_like(signal)
    for i in range(len(signal)):
        i0, i1 = max(i-s, 0), min(i+s, len(signal)-1) + 1
        # linear LOWESS smoothing
        smoothed[i] = np.poly1d(np.polyfit(np.arange(i0, i1), signal[i0:i1], deg=1,
            w=np.sqrt(window[i0-i+s:i1-i+s])))(i)
    return smoothed

saveurl("http://woodfortrees.org/data/hadcrut4gl/mean:12", "hadcrut4gl.txt")
with open("hadcrut4gl.txt") as temp_file:
    temp_years, temps = [], []
    for l in temp_file.readlines():
        yT = l.split()
        if (not l.startswith('#')) and len(yT) == 2:
            temp_years.append(float(yT[0]))
            temps.append(float(yT[1]))
    #print('T', list(zip(temp_years, temps)))

saveurl("ftp://aftp.cmdl.noaa.gov/products/trends/co2/co2_mm_mlo.txt", "co2_mm_mlo.dat")
with open("co2_mm_mlo.dat") as co2_file:
    data_rows = [x.split() for x in co2_file if not x.startswith("#") and x.find("-99.99") == -1]
    co2_years = [float(x[2]) for x in data_rows]
    co2concs = [float(x[3]) for x in data_rows]
    #print('co2', list(zip(co2_years, co2concs)))

saveurl("ftp://ftp.ncdc.noaa.gov/pub/data/paleo/icecore/antarctica/law/law_co2.txt", "law_co2.txt")
with open("law_co2.txt", encoding="ISO-8859-1") as lawco2_file:
    data_rows = [x.split() for x in lawco2_file if x.startswith("     1")]
    del data_rows[ [float(x[0]) for x in data_rows].index(1010.):] 
    lawco2_years = [float(x[0]) for x in data_rows]
    lawco2concs = [float(x[-1]) for x in data_rows]
    #print('lawco2', list(zip(lawco2_years, lawco2concs)))

saveurl("http://www.sidc.be/silso/DATA/SN_y_tot_V2.0.txt", "yearssn.dat")
with open("yearssn.dat") as sunspot_file:
    data_rows = [x.split() for x in sunspot_file if "*" not in x]
    sun_years = [float(x[0]) for x in data_rows]
    sunspots = [float(x[1]) for x in data_rows]
    #print('sunspots', list(zip(sun_years, sunspots)))

t_min, t_max = 1850, max(temp_years[-1], co2_years[-1], sun_years[-1])
smoothed_temps = smooth_lowess(temps, 25 * 12)
smoothed_sunspots = smooth_convolution(sunspots, 25)

rect = [0.125, 0.1, 0.775, 0.8]
base_ax = plt.axes(rect)
base_ax.yaxis.tick_left()
plt.yticks([])
plt.xlim(t_min, t_max)
plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(20))
plt.xlabel("Year", size=16)
plt.title(r"Temperature, CO$_2$, and Sunspots", size=22)

temp_ax = plt.axes([rect[0],rect[1]+.42*rect[3],rect[2],.58*rect[3]], frameon=False)
temp_ax.yaxis.tick_left()
plt.plot(temp_years, temps, '#FF2200')
tline = plt.plot(temp_years, smoothed_temps, '#AA0000', lw=3)
plt.xlim(t_min, t_max)
plt.ylim(min(temps)*1.03 - 0.03*max(temps), max(temps)*1.03 - 0.03*min(temps))
plt.yticks(np.arange(-0.6,0.9,0.2))
plt.ylabel(u'Temperature anomaly (°C)', size=14, color='#AA0000')
plt.xticks([])

co2_ax = plt.axes([rect[0],rect[1]+.25*rect[3],rect[2],.5*rect[3]], frameon=False)
co2_ax.yaxis.tick_right()
co2_ax.yaxis.set_label_position("right")
co2_ax.xaxis.tick_bottom()
plt.plot(co2_years, co2concs, '#44AAFF')
cline = plt.plot(lawco2_years, lawco2concs, '#2288EE', lw=2)
plt.xlim(t_min, t_max)
plt.ylabel(r'CO$_2$ (ppm)', size=14, color='#2288EE')
plt.xticks([])

sun_ax = plt.axes([rect[0],rect[1],rect[2],.5*rect[3]], frameon=False)
sun_ax.yaxis.tick_left()
plt.plot(sun_years, sunspots, "#FFDD00")
sline = plt.plot(sun_years, smoothed_sunspots, "#FF9900", lw=3)
plt.xlim(t_min, t_max)
plt.yticks(np.arange(0,250,50))
plt.ylabel("Sunspot number", size=14, color='#FF9900')
plt.xticks([])

plt.sca(base_ax)
t_proxy = plt.Line2D([0], [0], c='#AA0000', lw=3)
c_proxy = plt.Line2D([0], [0], c='#2288EE', lw=3)
s_proxy = plt.Line2D([0], [0], c='#FF9900', lw=3)
plt.legend((t_proxy, c_proxy, s_proxy), ("Temperature", r"CO$_2$", "Sunspots"), loc="upper left")

plt.savefig("Temp-co2-sunspot.svg")
plt.show()

Nkwényé

Leland McInnes from en.wikipedia.org, the copyright holder of this work, hereby publishes it under the following license:
w:en:Creative Commons
í-kpó-áhà gbásàa kà
Edebere faịlụ a n'okpuru ikikeree Creative Commons Attribution-Share Alike 3.0 Unported license. Subject to disclaimers.
Í-kpó-áhà: Leland McInnes from en.wikipedia.org
I wepulara nóru:
  • i nye – ikọpị,ikekasi na izịpụ ọru a
  • i dowaria – igbanwee ọrụ a
Ọ ga bụ na ọnọdụ ndi a:
  • í-kpó-áhà – Ị ga-enyerịrị ugo kwesịrị ekwesị, nye njikọ na ikikere ahụ, ma gosikwa ma emere mgbanwe. Ị nwere ike ime ya n'ụzọ ezi uche ọ bụla, mana ọ bụghị n'ụzọ ọ bụla na-egosi na onye nyere ikikere kwadoro gị maọbụ ojiji gị.
  • gbásàa kà – Ọ bụrụ na ị tụgharịgharịa, gbanwee, ma ọ bụ wulite n'elu ihe ahụ, ị ga-ekesa ndenye gị n'okpuru same or compatible license
This licensing tag was added to this file as part of the GFDL licensing update.
GNU head Í nwèrèíkí jé, gbạsáa na/ma í mezí akwukwo nka na okpúrù íwú GNU Ákwúkwó Íwú nke Owéré, Nké 1.2 ma nke íchè ndi Free Software Foundation; wéfùtàrà; na adighi nkejị di íchẹ, adighi édé nke Ihú-Ihü Ákwúkwó, na adighi Ázú-Ihü Ákwúkwó. Ákwúkwó iwu hé jéré jé di na nkeji kpóró GNU Ákwúkwó Íwú nke Owéré". Subject to disclaimers.

Original upload log

The original description page was here. All following user names refer to en.wikipedia.
  • 2009-01-11 03:45 Leland McInnes 720×540× (102750 bytes)
  • 2008-10-09 00:57 Leland McInnes 600×480× (34962 bytes)
  • 2007-03-11 02:47 Leland McInnes 600×480× (48910 bytes) Fix for wrong data selection
  • 2007-03-11 02:10 Leland McInnes 600×480× (48672 bytes) Update to Had CRUT3 instead of CRUTEM
  • 2007-03-10 20:46 Leland McInnes 600×480× (48525 bytes)
  • 2007-03-10 20:41 Leland McInnes 600×480× (47761 bytes)
  • 2007-03-10 05:01 Leland McInnes 600×480× (33704 bytes) Global average temperature, Mauna Loa CO<sub>2</sub>, and sunspot activity for the last 50 years.
Any autoconfirmed user can overwrite this file from the same source. Please ensure that overwrites comply with the guideline.

Nkowapụta

Tinye nkọwa otu ahịrị ihe faịlụ a na-anochi anya ya.
Graph: Global temperature, atmospheric CO2, and sunspot activity since 1850.

Ihe ndị egosiri na faịlụ a

na-egosi

11 Jenụwarị 2009

image/svg+xml

data size Bekee

100,208 byte

checksum Bekee

0bbe5259c222a51a4e1849401cf749090a174613

Ịta nke usòrò

Bìri èhì/ogè k'ị hụ òtù ụ̀fa dị̀ m̀gbè ahụ̀.

Èhì/OgèMbọ-akaÓgólógó na asaáÒjìèmeNkwute
dị ùgbu â21:23, 30 Mee 2022NvóÁká màkà otù ȯ dị nà 21:23, 30 Mee 2022720 × 540 (98 KB)wikimediacommons>Geek3update 2022-04

Ihe ndị na-eso ihe eji Ihu akwụkwọ eme na faịlụ a: