Zum Inhalt springen

Datei:Temp-sunspot-co2.svg

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Zur Beschreibungsseite auf Commons
aus Wikipedia, der freien Enzyklopädie
    Originaldatei (SVG-Datei, Basisgröße: 768 × 576 Pixel, Dateigröße: 100 KB)

    Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.

    Zur Beschreibungsseite auf Commons


    Beschreibung

    Beschreibung
    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.
    Datum 11. Januar 2009 (Original-Hochladedatum)
    Quelle Übertragen aus en.wikipedia nach Commons durch Anrie mithilfe des CommonsHelper.
    Urheber Leland McInnes in der Wikipedia auf Englisch
    Andere Versionen
    SVG‑Erstellung
    InfoField
     Der Quelltext dieser SVG-Datei ist W3C-invalid wegen 10 Fehlern.
     Dieses W3C-invalide Diagramm wurde mit Matplotlib erstellt.
    #(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, https://crudata.uea.ac.uk/cru/data/temperature/HadCRUT5.1Analysis_gl.txt
    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.

    Diese Datei könnte aktualisiert werden, um neue Informationen zu berücksichtigen. Wenn du eine bestimmte Version der Datei verwenden möchtest, ohne dass diese überschrieben wird, lade bitte die gewünschte Version als separate Datei hoch.
    Quelltext
    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_boxcar(signal, window_size):
        w = np.ones(window_size)
        return np.convolve(w, signal, mode="valid") / window_size
    
    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("https://crudata.uea.ac.uk/cru/data/temperature/HadCRUT5.1Analysis_gl.txt", "hadcrut5gl.txt")
    with open("hadcrut5gl.txt") as temp_file:
        temp_years, temps = [], []
        last_year = None
        for l in temp_file.readlines():
            yT = l.split()
            if (not l.startswith('#')) and len(yT) > 1:
                year = float(yT[0])
                if year != last_year:
                    temp_years += [year + (0.5 + i) / 12. for i in range(len(yT) - 2)]
                    temps += [float(T) for T in yT[1:13]]
                    last_year = year
        temp_years = smooth_boxcar(temp_years, 12)
        temps = smooth_boxcar(temps, 12)
        #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, 1.3, 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()
    

    Lizenz

    Leland McInnes aus der englischsprachigen Wikipedia, der Nutzungsrechtsinhaber dieses Werkes, veröffentlicht es hiermit unter der folgenden Lizenz:
    w:de:Creative Commons
    Namensnennung Weitergabe unter gleichen Bedingungen
    Diese Datei ist unter der Creative-Commons-Lizenz „Namensnennung – Weitergabe unter gleichen Bedingungen 3.0 nicht portiert“ lizenziert. Vorbehaltlich der Haftungsausschlüsse.
    Namensnennung: Leland McInnes aus der englischsprachigen Wikipedia
    Dieses Werk darf von dir
    • verbreitet werden – vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden
    • neu zusammengestellt werden – abgewandelt und bearbeitet werden
    Zu den folgenden Bedingungen:
    • Namensnennung – Du musst angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders.
    • Weitergabe unter gleichen Bedingungen – Wenn du das Material wiedermischst, transformierst oder darauf aufbaust, musst du deine Beiträge unter der gleichen oder einer kompatiblen Lizenz wie das Original verbreiten.
    Diese Lizenzmarkierung wurde auf Grund der GFDL-Lizenzaktualisierung hinzugefügt.
    GNU head Es ist erlaubt, die Datei unter den Bedingungen der GNU-Lizenz für freie Dokumentation, Version 1.2 oder einer späteren Version, veröffentlicht von der Free Software Foundation, zu kopieren, zu verbreiten und/oder zu modifizieren; es gibt keine unveränderlichen Abschnitte, keinen vorderen und keinen hinteren Umschlagtext.

    Der vollständige Text der Lizenz ist im Kapitel GNU-Lizenz für freie Dokumentation verfügbar. Vorbehaltlich der Haftungsausschlüsse.

    Ursprüngliches Datei-Logbuch

    Die ursprüngliche Dateibeschreibungsseite war hier. Alle folgenden Benutzernamen beziehen sich auf 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.
    Jede/r automatisch bestätigte Benutzer/in kann diese Datei aus derselben Quelle überschreiben. Bitte stelle sicher, dass Überschreibungen den Leitlinien entsprechen.

    Kurzbeschreibungen

    Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
    Graph: Global temperature, atmospheric CO2, and sunspot activity since 1850.

    In dieser Datei abgebildete Objekte

    Motiv

    image/svg+xml

    100.208 Byte

    0bbe5259c222a51a4e1849401cf749090a174613

    Dateiversionen

    Klicke auf einen Zeitpunkt, um diese Version zu laden.

    (neueste | älteste) Zeige (jüngere 10 | ) (10 | 20 | 50 | 100 | 250 | 500)
    Version vomVorschaubildMaßeBenutzerKommentar
    aktuell13:50, 11. Jan. 2026Vorschaubild der Version vom 13:50, 11. Jan. 2026768 × 576 (100 KB)Geek3update 2026-01
    09:36, 8. Jan. 2026Vorschaubild der Version vom 09:36, 8. Jan. 2026756 × 567 (9 KB)Д.ИльинFix 10 errors. Optimization, style
    22:23, 30. Mai 2022Vorschaubild der Version vom 22:23, 30. Mai 2022720 × 540 (98 KB)Geek3update 2022-04
    15:11, 9. Apr. 2021Vorschaubild der Version vom 15:11, 9. Apr. 2021720 × 540 (106 KB)Geek3update 2021-04
    15:04, 26. Jun. 2020Vorschaubild der Version vom 15:04, 26. Jun. 2020720 × 540 (105 KB)Geek3data update 2020-05, enlarge temperature y-axis
    17:10, 6. Mär. 2020Vorschaubild der Version vom 17:10, 6. Mär. 2020720 × 540 (107 KB)Geek3update with 2020 data
    00:15, 23. Jun. 2014Vorschaubild der Version vom 00:15, 23. Jun. 2014720 × 540 (76 KB)Kopiersperreswitch from hadcrut3 to hadcrut4
    22:27, 11. Mär. 2014Vorschaubild der Version vom 22:27, 11. Mär. 2014720 × 540 (62 KB)Kopiersperreupdate
    23:04, 25. Jun. 2012Vorschaubild der Version vom 23:04, 25. Jun. 2012731 × 551 (75 KB)JohnanthNew version pulled from file discussion, based on the newly updated Python script.
    20:38, 20. Jun. 2011Vorschaubild der Version vom 20:38, 20. Jun. 2011731 × 551 (69 KB)Killiondudehttp://m8y.org/tmp/wikipedia/ Someone was kind enough to use updated stats and redo it.
    (neueste | älteste) Zeige (jüngere 10 | ) (10 | 20 | 50 | 100 | 250 | 500)

    Globale Dateiverwendung

    Die nachfolgenden anderen Wikis verwenden diese Datei:

    Metadaten