File:Temp-sunspot-co2.svg
来自testwiki
跳转到导航
跳转到搜索
此SVG文件的PNG预览的大小:720 × 540像素。 其他分辨率:320 × 240像素 | 640 × 480像素 | 1,024 × 768像素 | 1,280 × 960像素 | 2,560 × 1,920像素。
原始文件 (SVG文件,尺寸为720 × 540像素,文件大小:98 KB)
本文件来自维基共享资源并可能被其他项目使用。 其文件描述页上的描述显示在下面。
摘要
| 描述Temp-sunspot-co2.svg |
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. |
||
| 日期 | 2009年1月11日 (原始上传日期) | ||
| 来源 | 本檔案是由Anrie使用CommonsHelper,從en.wikipedia轉移到維基共享資源。 | ||
| 作者 | 英语維基百科的Leland McInnes | ||
| 其他版本 |
|
||
| SVG开发 InfoField |
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.
| ||
| 源代码 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()
|
Related Images
许可协议
Leland McInnes 位于英语维基百科,本作品著作权人,特此采用以下许可协议发表本作品:
| 本文件采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议授权。 受免責聲明的約束。 | ||
| 署名: Leland McInnes 位于英语维基百科 | ||
| ||
| 本许可协议标签作为GFDL许可协议更新的组成部分被添加至本文件。http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
| 已授权您依据自由软件基金会发行的无固定段落及封面封底文字(Invariant Sections, Front-Cover Texts, and Back-Cover Texts)的GNU自由文件许可协议1.2版或任意后续版本的条款,复制、传播和/或修改本文件。该协议的副本请见“GNU Free Documentation License”。 受免責聲明的約束。http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
原始上传日志
原始描述頁面位於這裡。下列使用者名稱均來自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.
说明
添加一行文字以描述该文件所表现的内容
Graph: Global temperature, atmospheric CO2, and sunspot activity since 1850.
Graph: Global temperature, atmospheric CO2, and sunspot activity since 1850.
此文件中描述的项目
描繪內容
11 1 2009
image/svg+xml
100,208 字节
文件历史
点击某个日期/时间查看对应时刻的文件。
| 日期/时间 | 缩略图 | 大小 | 用户 | 备注 | |
|---|---|---|---|---|---|
| 当前 | 2022年5月30日 (一) 21:23 | 720 × 540(98 KB) | wikimediacommons>Geek3 | update 2022-04 |
文件用途
以下页面使用本文件: