File:Co2-temperature-records.svg

Summary

Description
English: This figure shows historical carbon dioxide (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.

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


  1. (red) EPICA Dome C temperature data:
  2. (dark blue) Vostok CO2 data:
  3. (steel blue) EPICA DomeC temperature data, 423-391 kybp:
  4. (pale blue) EPICA DomeC CO2 data, 650-413 kybp:
  5. (cyan) EPICA DomeC CO2 data, 800-650 kybp:
  6. Current CO2 level: Carbon dioxide#Concentrations of CO2 in atmosphere
Date
Source Own work (Own work)
Author Leland_McInnes (talk) (Uploads)
Other versions

Source code

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()

Licensing

Leland McInnes at the English-language Wikipedia, the copyright holder of this work, hereby publishes it under the following license:
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. Subject to disclaimers.
Attribution: Leland McInnes at the English-language Wikipedia
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
This licensing tag was added to this file as part of the GFDL licensing update.
Category:CC-BY-SA-3.0-migrated-with-disclaimers#Co2-temperature-records.svgCategory:License migration completed#Co2-temperature-records.svg
GNU head Permission is granted 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. A copy of the license is included in the section entitled GNU Free Documentation License. Subject to disclaimers.
Category:GFDL-en
Category:Self-published work

Original upload log

The original description page was here. All following user names refer to en.wikipedia.
Date/TimeDimensionsUserComment
2009-01-11 20:50720×540× (230122 bytes)Leland McInnes
2007-01-14 00:291052×744× (40671 bytes)Leland McInnes(reverse direction of time scale)
2006-11-04 17:221052×744× (40730 bytes)Leland McInnes
2006-11-04 04:071052×744× (42937 bytes)Leland McInnes
2006-11-04 04:031052×744× (42931 bytes)Leland McInnesOne last try at entering the title
2006-11-04 03:561052×744× (39678 bytes)Leland McInnes
2006-11-04 01:041052×744× (40314 bytes)Leland McInnes
2006-11-04 01:021052×744× (40272 bytes)Leland McInnesThis 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
 
This W3C-unspecified plot was created with Matplotlib.
Category:Unspec SVG created with Matplotlib#00060909Co2-temperature-records.svg Category:Global warming graphs Category:European Project for Ice Coring in Antarctica Category:Atmospheric CO2 time series
Category:Atmospheric CO2 time series Category:CC-BY-SA-3.0-migrated-with-disclaimers Category:European Project for Ice Coring in Antarctica Category:GFDL-en Category:Global warming graphs Category:License migration completed Category:Pages using deprecated source tags Category:Self-published work Category:Unspec SVG created with Matplotlib