Zum Inhalt

GWL

Richtungsänderung von Großwetterlagen

Ergebnis

Abbildung: Qualitative Klimaänderungssignale in der Häufigkeit von Großwetterlagen (GWL) in globalen Klimamodellsimulationen für RCP8.5 von 2061-2090 vs 1971-2000 (Apr-Sep). Die Farbe markieren jeweils die Kritikalität für meteorologische Extreme:

  • Starkregen (blau)
  • Hitze (rot)
  • Sturm (grün)

In grau sind beobachtete Veränderungen 1990-2019 vs 1961-1990 markiert.


Code

Python

# coding: utf-8
# -*- coding: iso-8859-1 -*-
import sys
import os
import matplotlib
matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from mpl_toolkits.basemap import shiftgrid
import shapefile
import numpy as N
import math
from scipy import signal,stats
from matplotlib.collections import PatchCollection
import pandas as pd

from matplotlib import rc
rc('text', usetex=True)
rc('text.latex', preamble='\usepackage{color}')

import pydotplus # To create our Decision Tree Graph
from IPython.display import Image  # To Display a image of our graph
plt.style.use('bmh')
params = {'legend.fontsize': 8,'font.family': 'serif'}
plt.rcParams.update(params)
go = ['WZ','BM','TRM','TRW','TM','SWZ','WA','HM','NWZ','HFA']
ng = len(go)

fig = plt.figure(figsize=(10,6))
ax = plt.subplot(111)

plt.plot([-10,50],[0,0],'k')
plt.plot([0.6,0.6],[-30,30],'k')

mods = ['NCEP-NCAR','MPI-ESM-LR','HadGEM2-ES','IPSL-CM5A-MR','EC-EARTH','CNRM-CM5','NorESM1-M']

for mod in mods:

    num = N.zeros(ng,float)
    avg = N.zeros(ng,float)

    file = '../dat/'+mod+'.dat'
    date=N.genfromtxt(file,usecols=(0),delimiter=';',dtype='S')
    gwls=N.genfromtxt(file,usecols=(3),delimiter=';',dtype='S')

    jj = []
    mm = []

    for d in date:

        jj.append(int(d[0:4]))
        mm.append(int(d[5:7]))

    jj = N.array(jj)
    mm = N.array(mm)

    if(mod=='NCEP-NCAR'): 

         id = N.where((jj>=1961)&(jj<=1990)&(mm>=4)&(mm<=9))[0]    

    else: 

         id = N.where((jj>=1961)&(jj<=2000)&(mm>=4)&(mm<=9))[0]

    for g in range(ng):

        ig = N.where(gwls[id]==go[g])[0]

        num[g] = len(ig)/30.
        avg[g] = 100.*(len(ig)/30.)/180.

    if(mod=='NCEP-NCAR'): 

         id = N.where((jj>=1990)&(jj<=2019)&(mm>=4)&(mm<=9))[0]

    else: 

         id = N.where((jj>=2061)&(jj<=2090)&(mm>=4)&(mm<=9))[0]

    for g in range(ng):

        ig = N.where(gwls[id]==go[g])[0]

        num[g] = len(ig)/30.-num[g]

    for g in range(ng):

        if(mod=='NCEP-NCAR'):

            plt.text(avg[g],num[g],go[g],size=14,weight='bold',ha='center',va='center',bbox=dict(boxstyle="circle",ec='k',fc='gray',alpha=0.7,lw=2),zorder=2)

        else:

            if((go[g]=='TM')|(go[g]=='TRM')):

                plt.text(avg[g],num[g],go[g],size=14,weight='bold',ha='center',va='center',bbox=dict(boxstyle="circle",ec='k',fc='dodgerblue',alpha=0.7,lw=2),zorder=1)

            if((go[g]=='HM')|(go[g]=='SWZ')|(go[g]=='BM')):

                plt.text(avg[g],num[g],go[g],size=14,weight='bold',ha='center',va='center',bbox=dict(boxstyle="circle",ec='k',fc='orangered',alpha=0.7,lw=2),zorder=1)

            if((go[g]=='WZ')):

                plt.text(avg[g],num[g],go[g],size=14,weight='bold',ha='center',va='center',bbox=dict(boxstyle="circle",ec='k',fc='g',alpha=0.7,lw=2),zorder=1)

            else:

                plt.text(avg[g],num[g],go[g],size=14,weight='bold',ha='center',va='center',bbox=dict(boxstyle="circle",ec='k',fc='w',alpha=0.5,lw=2),zorder=1)

plt.xlabel(r'\textbf{GWL Anteil an Gesamt}',fontsize=20,weight='bold')
plt.ylabel(r'\textbf{\"Anderung durch Klimawandel}',fontsize=20,weight='bold')
plt.title(r'\textbf{GCM-GWL RCP8.5: 2061-2090 vs 1971-2000 (Apr-Sep)}',fontsize=20)

#plt.xticks([0,10,20,30],['','10\%','20\%','30\%'],fontsize=16)
plt.yticks([-10,10],['Abnahme','Zunahme'],fontsize=16,rotation=90,va='center')

plt.semilogx()

plt.xticks([1,2,5,10,30],['1\%','2\%','5\%','10\%','30\%'],fontsize=16)

plt.xlim(0.5,50)
plt.ylim(-20,20)

ax.tick_params(direction='out')

plt.tight_layout()
plt.savefig('./img/gwl.png',dpi=240,bbox_inches='tight',pad_inches=0.0)#,transparent='true')