File:Co2-temperature-plot.svg
From Wikipedia, the free encyclopedia
Co2-temperature-plot.svg (SVG file, nominally 720 × 540 pixels, file size: 225 KB)
[edit] Summary
This figure shows historical CO2 (right axis) and reconstructed temperature (as a difference from the mean temperature for the last 100 years) records based on Antarctic ice cores, providing data for the last 800,000 years.
[edit] Licensing
This figure was produced by Leland McInnes using python and matplotlib and is licensed under the GFDL. All data is from publicly available sources.
| I, the creator of this work, hereby grant the permission to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Subject to disclaimers. |
| If this file is eligible for relicensing, it may also be used under the Creative Commons Attribution-ShareAlike 3.0 license. The relicensing status of this image has not yet been reviewed. You can help. |
[edit] Data Sources
- (red) EPICA Dome C temperature data: http://doi.pangaea.de/10.1594/PANGAEA.683655
- (dark blue) Vostok CO2 data: http://doi.pangaea.de/10.1594/PANGAEA.55501
- (steel blue) EPICA DomeC temperature data, 423-391 kybp: http://doi.pangaea.de/10.1594/PANGAEA.472482
- (pale blue) EPICA DomeC CO2 data, 650-413 kybp: http://doi.pangaea.de/10.1594/PANGAEA.472481
- (cyan) EPICA DomeC CO2 data, 800-650 kybp: http://doi.pangaea.de/10.1594/PANGAEA.710901
- Current CO2 level: http://en.wikipedia.org/wiki/Carbon_dioxide#Concentrations_of_CO2_in_atmosphere
[edit] Image Creation
The image was created with the following script, making use of the matplotlib library.
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pylab as plt from matplotlib.font_manager import FontProperties def smooth(signal, window_size): extended_signal = signal[window_size:0:-1] + signal + signal[-1:-window_size:-1] s = np.array(extended_signal) w = np.hamming(window_size) y = np.convolve(w/w.sum(), s, mode="same") return y[window_size:-window_size+1] temp_file = open("EDC_dD_temp_estim.csv") data_rows = [x.split() for x in temp_file if not x.startswith("#") and len(x.split()) == 5] temp_years = [float(x[1]) for x in data_rows] raw_temp_vals = [float(x[3]) for x in data_rows] temp_vals = list(smooth(raw_temp_vals[:4000], 50)) + list(smooth(raw_temp_vals[4000:6000], 10)) + raw_temp_vals[6000:] co2_file1 = open("Vostok_CH4_CO2_age.csv") data_rows = [x.split("\t") for x in co2_file1 if not x.startswith('"')] co2_years1 = [float(x[0]) for x in data_rows if x[2] != "\n"] co2_vals1 = [float(x[2].strip()) for x in data_rows if x[2] != "\n"] co2_file2 = open("EDC_CO2_423-391_kyr_BP.csv") data_rows = [x.split() for x in co2_file2 if not x.startswith('"')] co2_years2 = [float(x[1]) for x in data_rows] co2_vals2 = [float(x[2]) for x in data_rows] co2_file3 = open("EDC_CO2_650-413_kyr_BP.csv") data_rows = [x.split() for x in co2_file3 if not x.startswith('"')] co2_years3 = [float(x[1]) for x in data_rows] co2_vals3 = [float(x[2]) for x in data_rows] co2_file4 = open("EDC99_CO2_bern.csv") data_rows = [x.split() for x in co2_file4 if x.startswith("3")] co2_years4 = [float(x[1]) for x in data_rows] co2_vals4 = [float(x[2]) for x in data_rows] plt.title("Temperature and CO$_2$ Records", size=28) temp_ax = plt.axes() temp_ax.yaxis.tick_left() tline = plt.plot(temp_years, temp_vals, "red") plt.ylabel(u"Temperature anomaly (°C)", size=16) plt.xlabel("Thousands of Years Ago", size=16) plt.xlim(800,0) plt.ylim(-11,15) co2_ax = plt.axes([0.125,0.1,0.775,0.8], frameon=False) co2_ax.yaxis.tick_right() co2_ax.yaxis.set_label_position("right") plt.xticks([]) cline1 = plt.plot(co2_years1, co2_vals1, "#0000AA") cline2 = plt.plot(co2_years2, co2_vals2, "#2288AA") cline3 = plt.plot(co2_years3, co2_vals3, "#44AAFF") cline4 = plt.plot(co2_years4, co2_vals4, "#88DDFF") plt.ylabel("Atmospheric CO$_2$ (ppm)", size=16) plt.xlim(800,0) plt.ylim(160,420) plt.annotate("Current CO$_2$ level", (2,386.36), (300,386.36), xycoords="data", arrowprops=dict(arrowstyle="->")) plt.legend((tline, cline1, cline2, cline3, cline4), ("Temperature (EPICA Dome C)", "CO$_2$ (Vostok)", "CO$_2$ (EPICA Dome C)", "CO$_2$ (EPICA Dome C)", "CO$_2$ (EPICA Dome C)"), "upper left", prop=FontProperties(size=9), pad=0.1, handletextsep=0.005) plt.savefig("py-co2-temp.svg") plt.show()
[edit] Related images
|
Expanded record of CO2 from the last 50 years at Mauna Loa |
Solar variation and greenhouse gases during 420,000 years. |
||
|
Recent global CO2 emissions, logarithmic scale. |
File history
Click on a date/time to view the file as it appeared at that time.
(latest | earliest) View (newer 50) (older 50) (20 | 50 | 100 | 250 | 500)| Date/Time | Dimensions | User | Comment | |
|---|---|---|---|---|
| current | 20:50, 11 January 2009 | 720×540 (225 KB) | Leland McInnes (talk | contribs) | |
| 00:29, 14 January 2007 | 1,052×744 (40 KB) | Leland McInnes (talk | contribs) | ((reverse direction of time scale)) | |
| 17:22, 4 November 2006 | 1,052×744 (40 KB) | Leland McInnes (talk | contribs) | ||
| 04:07, 4 November 2006 | 1,052×744 (42 KB) | Leland McInnes (talk | contribs) | ||
| 04:03, 4 November 2006 | 1,052×744 (42 KB) | Leland McInnes (talk | contribs) | (One last try at entering the title) | |
| 03:56, 4 November 2006 | 1,052×744 (39 KB) | Leland McInnes (talk | contribs) | ||
| 01:04, 4 November 2006 | 1,052×744 (39 KB) | Leland McInnes (talk | contribs) | ||
| 01:02, 4 November 2006 | 1,052×744 (39 KB) | Leland McInnes (talk | contribs) | (This figure shows apparent correlations between historical CO2 and temperature records based on Antarctic ice cores, providing data for the last 650,000 years. Note that deuterium levels differ between Vostok and EPICA ice cores and are therefore plotted ) |
- Edit this file using an external application See the setup instructions for more information.

