Checking the climate model

We found two simulated mega-floods, that largely deviated from what can be expected from the observed record. From 2000 years of present climate simulations, they occurred on:

Megaflood one: Year: 2037 Start: 13 Ensemble: 13

Megaflood two: Year: 2035 Start: 14 Ensemble: 21

Here we will perform a first analysis to figure out what happened in these two cases.

##Load pacakages
import xarray as xr
import matplotlib.pyplot as plt
import numpy as np
import cartopy
import cartopy.crs as ccrs
##This is so variables get printed within jupyter
from IPython.core.interactiveshell import InteractiveShell 
InteractiveShell.ast_node_interactivity = "all"

Here I will load the Precipitation, 2 meter air temperature (tas), sea surface temperature (tos) and the z500 for the two mega floods.

dirname = r'/home/tike/Ec_data/'
Start_flood1=13
Start_flood2=14
Year_flood1=2037
Year_flood2=2035
Ensemble_flood1=13
Ensemble_flood2=21
def import_flood(variable):
    if  type(variable) is not str:
        raise NameError("variable needs to be a string")
        
    Var_flood1 = xr.open_dataset(dirname + variable + '/S' + '%02d' % Start_flood1 + '/' + variable + '_m_ECEarth_PD_s' + '%02d' % Start_flood1 + 'r'  + '%02d' % Ensemble_flood1 + '_' + '%04d' %Year_flood1 + '.nc')
    Var_flood2 = xr.open_dataset(dirname + variable + '/S' + '%02d' % Start_flood2 + '/' + variable + '_m_ECEarth_PD_s' + '%02d' % Start_flood2 + 'r'  + '%02d' % Ensemble_flood2 + '_' + '%04d' %Year_flood2 + '.nc')
    return(Var_flood1,Var_flood2)
PR_flood1,PR_flood2=import_flood('pr')
Pr_Monthly = xr.open_dataset(dirname+'Processed/pr_monthly.nc')
def process_precip(PR_flood):
    PR_flood = PR_flood.assign_coords(time=np.arange(1,13))
    PR_flood_attrs=PR_flood['pr'].attrs
    PR_flood=PR_flood['pr']*1000
    PR_flood.attrs=PR_flood_attrs
    PR_flood.attrs['units']= 'mm'
    PR_flood=PR_flood.rename({'time': 'month'})
    return(PR_flood)

PR_flood1 = process_precip(PR_flood1)
PR_flood2 = process_precip(PR_flood2)
# PR_flood1
# PR_flood2
Pr_anomaly1 = PR_flood1-Pr_Monthly['pr_avg']
Pr_standardized_anomaly1 = (PR_flood1-Pr_Monthly['pr_avg'])/Pr_Monthly['sd']

Pr_anomaly2 = PR_flood2-Pr_Monthly['pr_avg']
Pr_standardized_anomaly2 = (PR_flood2-Pr_Monthly['pr_avg'])/Pr_Monthly['sd']
# PR_flood1

1.1 Precipitation for the first flood

extent = [-85, -35, 15, -25]

g_simple=PR_flood1.isel(month=slice(0,9)).plot(transform=ccrs.PlateCarree(),cmap=plt.cm.Blues,vmax=600,vmin=0,  col='month', col_wrap=3,subplot_kws={'projection': ccrs.Mercator()})  #

for ax in g_simple.axes.flat:
    ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()

# for i, ax in enumerate(g_simple.axes.flat):
#     print(ax)
#     ax.set_title('Air Temperature %d' % i)
    
# plt.savefig('../Graphs/Pr_Flood1.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace06fbdd30>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace085e5d90>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0860a0d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0860a400>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0860a610>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0860a940>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace085e5dc0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0860acd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0860af70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace086171f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace08617610>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace086176d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace08617970>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace08617ca0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace08617cd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace08617fd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0861d370>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0861d6a0>
../_images/Climate_conditions_during_the_megafloods_12_18.png
#Plot the anomaly
g_simple=Pr_anomaly1.isel(month=slice(0,9)).plot(transform=ccrs.PlateCarree(),cmap=plt.cm.RdBu,robust=True,  col='month', col_wrap=3,subplot_kws={'projection': ccrs.Mercator()})  #,cmap=plt.cm.Blues,vmax=0.6,vmin=0
# .isel(month=slice(0,6))
for ax in g_simple.axes.flat:
    ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace06fbde80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09163880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09163ac0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09163df0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09163e80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09174220>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09174610>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09174700>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09174af0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09174be0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09174fd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0917d100>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0917d4f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0917d5e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0917da00>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0917daf0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0917dee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0918e040>
../_images/Climate_conditions_during_the_megafloods_13_18.png
## And the standardized anomaly
g_simple=Pr_standardized_anomaly1.isel(month=slice(0,9)).plot(transform=ccrs.PlateCarree(),cmap=plt.cm.RdBu,levels=11,col='month', col_wrap=3,subplot_kws={'projection': ccrs.Mercator()})  #,cmap=plt.cm.Blues,

for ax in g_simple.axes.flat:
    ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/Pr_Flood1_standardized_wow.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace0923b2e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09b923d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09b925e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09b92820>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09b92af0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09b92d00>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09b92d90>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09ba4220>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09ba44c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09ba47f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09ba4af0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09ba4be0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09ba4fd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09bb0100>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09bb04f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09bb05e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09bb09d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2ace09bb0c10>
../_images/Climate_conditions_during_the_megafloods_14_18.png

1.2 Precipitation for the second flood

extent = [-85, -35, 15, -25]

g_simple=PR_flood2.isel(month=slice(0,9)).plot(transform=ccrs.PlateCarree(),cmap=plt.cm.Blues,vmax=600,vmin=0,  col='month', col_wrap=3,subplot_kws={'projection': ccrs.Mercator()})  #

for ax in g_simple.axes.flat:
    ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()

# for i, ax in enumerate(g_simple.axes.flat):
#     print(ax)
#     ax.set_title('Air Temperature %d' % i)
    
plt.savefig('../Graphs/Pr_Flood2.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abcd56160>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd6df160>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd75b520>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd75b640>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd75b910>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd75bb50>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd75bf70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd75bfd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76f250>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76f400>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76f850>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76f910>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76fb50>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76fd90>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd76fd60>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd778250>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd778520>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd7786d0>
../_images/Climate_conditions_during_the_megafloods_16_18.png
#Plot the anomaly
g_simple=Pr_anomaly2.isel(month=slice(0,9)).plot(transform=ccrs.PlateCarree(),cmap=plt.cm.RdBu,robust=True,  col='month', col_wrap=3,subplot_kws={'projection': ccrs.Mercator()})  #,cmap=plt.cm.Blues,vmax=0.6,vmin=0
# .isel(month=slice(0,6))
for ax in g_simple.axes.flat:
    ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab314b520>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a81940>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a81ca0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a81dc0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a910d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a913d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a916a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a91910>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a91730>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a91df0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a91ee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a9e1c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a9e460>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a9e6a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a9eac0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a9ec70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3a9ef70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab3aa50a0>
../_images/Climate_conditions_during_the_megafloods_17_18.png
## And the standardized anomaly
g_simple=Pr_standardized_anomaly2.isel(month=slice(0,9)).plot(transform=ccrs.PlateCarree(),cmap=plt.cm.RdBu,levels=11, robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Mercator()})  #,cmap=plt.cm.Blues,

for ax in g_simple.axes.flat:
    ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/Pr_Flood2_standardized.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd2751c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc6e580>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc6e700>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc757f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc75c10>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc75c70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc75fa0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc75d30>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc75ee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc895b0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc89880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc89a30>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc89c70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc89eb0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc89f70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc92370>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc925b0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abdc927f0>
../_images/Climate_conditions_during_the_megafloods_18_18.png

2.1 SST for the first flood

The SST file cannot decode the time upon importing, so I adapt the import function:

def import_flood(variable):
    if  type(variable) is not str:
        raise NameError("variable needs to be a string")
        
    Var_flood1 = xr.open_dataset(dirname + variable + '/S' + '%02d' % Start_flood1 + '/' + variable + '_m_ECEarth_PD_s' + '%02d' % Start_flood1 + 'r'  + '%02d' % Ensemble_flood1 + '_' + '%04d' %Year_flood1 + '.nc',decode_times=False)
    Var_flood2 = xr.open_dataset(dirname + variable + '/S' + '%02d' % Start_flood2 + '/' + variable + '_m_ECEarth_PD_s' + '%02d' % Start_flood2 + 'r'  + '%02d' % Ensemble_flood2 + '_' + '%04d' %Year_flood2 + '.nc',decode_times=False)
    Var_flood1 = Var_flood1.assign_coords(time=np.arange(1,13)).rename({'time': 'month'})
    Var_flood2 = Var_flood2.assign_coords(time=np.arange(1,13)).rename({'time': 'month'})
    
    return(Var_flood1,Var_flood2)
SST_flood1,SST_flood2=import_flood('tos')
SST_Monthly = xr.open_dataset(dirname+'Processed/sst_monthly.nc')
SST_anomaly1 = SST_flood1-SST_Monthly['tos_avg']
SST_standardized_anomaly1 = (SST_flood1-SST_Monthly['tos_avg'])/SST_Monthly['sd']

SST_anomaly2 = SST_flood2-SST_Monthly['tos_avg']
SST_standardized_anomaly2 = (SST_flood2-SST_Monthly['tos_avg'])/SST_Monthly['sd']
# SST_flood1
# SST_anomaly1
# SST_standardized_anomaly1
# extent = [-85, -35, 15, -25]

g_simple=SST_anomaly1['tos'].sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()

plt.savefig('../Graphs/SST_Flood1.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abaf1c820>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb918700>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9949d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb994c40>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb994e80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb994f40>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9a6370>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb994fa0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9a6790>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9a69d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9a6ca0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9a6ee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9b0040>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb8ee8b0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9b0550>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb4dcc40>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb9b0a00>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb994e20>
../_images/Climate_conditions_during_the_megafloods_25_18.png
# extent = [-85, -35, 15, -25]

g_simple=SST_standardized_anomaly1['tos'].sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/SST_Flood1_standardized.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb528e80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe0f880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe89f10>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe97160>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe973a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbdf9970>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe97850>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe97a60>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe97ca0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe97ee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe97f40>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbc1c280>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbea4550>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbea4880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbea4a60>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbea4ca0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbea4f70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbe89e50>
../_images/Climate_conditions_during_the_megafloods_26_18.png

2.2 SST flood 2

Repeat for the second flood

# extent = [-85, -35, 15, -25]

g_simple=SST_anomaly2['tos'].sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/SST_Flood2.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abba25c10>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc304e50>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc37dbb0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc37de20>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc37de80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38d2e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38d520>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38d760>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38da30>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38dc40>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38de20>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc38dee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc3962b0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab87934f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc396760>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc3969a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc396be0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc396e80>
../_images/Climate_conditions_during_the_megafloods_28_18.png
# extent = [-85, -35, 15, -25]

g_simple=SST_standardized_anomaly2['tos'].sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/SST_Flood2_standardized.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abb536e80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc7f9670>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc872fa0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc87e1f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc87e430>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbed4550>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc87e910>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc87eaf0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc87ed60>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc87ef70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc88b1c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc88b430>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc88b490>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abbf263d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc88bb20>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc872f40>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc88bfa0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abc8951f0>
../_images/Climate_conditions_during_the_megafloods_29_18.png

3.1 Circulation patterns for the first flood

Z500_flood1,Z500_flood2=import_flood('z500')
Z500_Monthly = xr.open_dataset(dirname+'Processed/z500_monthly.nc')
Z500_anomaly1 = Z500_flood1-Z500_Monthly['z500_avg']
Z500_standardized_anomaly1 = (Z500_flood1-Z500_Monthly['z500_avg'])/Z500_Monthly['sd']

Z500_anomaly2 = Z500_flood2-Z500_Monthly['z500_avg']
Z500_standardized_anomaly2 = (Z500_flood2-Z500_Monthly['z500_avg'])/Z500_Monthly['sd']
Var_flood_attrs=Z500_flood1['z500'].attrs
def Process_z500(Var_flood):
    Var_flood=Var_flood['z500'] / 9.81
    Var_flood.attrs=Var_flood_attrs
    Var_flood.attrs['units']= 'm'
    return(Var_flood)
# Z500_flood1
# Z500_anomaly1
# Z500_standardized_anomaly1
Z500_flood1 = Process_z500(Z500_flood1)
Z500_anomaly1 = Process_z500(Z500_anomaly1)
Z500_standardized_anomaly1.attrs=Var_flood_attrs
Z500_standardized_anomaly1.attrs['units']= ''
map_proj = ccrs.Robinson()

extent = [4, 15, 57, 70]

# plt.figure(figsize=(4, 9))
ax = plt.axes(projection=map_proj)
# ax.set_extent(extent_zoom2)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
# ax.gridlines(draw=True)
Z500_anomaly1.sel(month=7).plot(transform=ccrs.PlateCarree(), robust=True,ax=ax)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab76de0a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab7aaea00>
<matplotlib.collections.QuadMesh at 0x2b0ab7b30a60>
../_images/Climate_conditions_during_the_megafloods_36_3.png
# extent = [-85, -35, 15, -25]

g_simple=Z500_anomaly1.sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    

plt.draw()
plt.savefig('../Graphs/Z500_Flood1.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac5edd220>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac3249130>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac37ca070>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac343cb80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac343cfd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac343cd90>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac3520b20>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac3520670>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac37ca2e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac3078190>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac30781c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac2d49880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac2d49a90>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac2d494c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac2d49730>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac34f8070>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac2d5e3a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac30640a0>
../_images/Climate_conditions_during_the_megafloods_37_18.png
# extent = [-85, -35, 15, -25]

g_simple=Z500_standardized_anomaly1['z500'].sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/Z500_Flood1_standardized.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6f2aa60>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7681d00>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7754430>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7754520>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7754880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7754a00>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7754c70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7754eb0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775c1c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775c3a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775c670>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775c850>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775cb80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775cd00>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac775cfa0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7768250>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7768460>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7768700>
../_images/Climate_conditions_during_the_megafloods_38_18.png

3.2 Z500 flood 2

Z500_flood2 = Process_z500(Z500_flood2)
Z500_anomaly2 = Process_z500(Z500_anomaly2)
Z500_standardized_anomaly2.attrs=Var_flood_attrs
Z500_standardized_anomaly2.attrs['units']= ''
# extent = [-85, -35, 15, -25]

g_simple=Z500_anomaly2.sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/Z500_Flood2.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0abd795d30>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1099c70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1123df0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1119730>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac112f220>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac0f58ee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac112f4f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac112f910>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac112f9a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac112fd60>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac112ffd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1119220>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac113c3a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac113c5e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac113c820>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac113ca90>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac113cc10>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac113cee0>
../_images/Climate_conditions_during_the_megafloods_42_18.png
# extent = [-85, -35, 15, -25]

g_simple=Z500_standardized_anomaly2['z500'].sel(month=slice(1,9)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.Robinson()})  #

for ax in g_simple.axes.flat:
#     ax.set_extent(extent)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
#     ax.gridlines()
    
plt.draw()
plt.savefig('../Graphs/Z500_Flood2_standardized.png',dpi =300)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac0bb98b0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1689ca0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac171dee0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac17321c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1732370>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac13cf1f0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1732820>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1715880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1732be0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1732eb0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1732fd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac17382e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1738550>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1738790>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac17389a0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac11aecd0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1738c10>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1738bb0>
../_images/Climate_conditions_during_the_megafloods_43_18.png

Zoom in on the Z500

When zooming in on South America, which projection to use?

I used Mercator before for the Amazon, but when zooming out a bit more that looks really odd. I first try PlateCarree and then I tried AlbersEqualArea and LambertConformal. I decided to go with the latter.

##Plots with PlateCarree
g_simple=Z500_anomaly1.sel(month=slice(6,8)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': ccrs.PlateCarree()})  #
for i, ax in enumerate(g_simple.axes.flat):
    contours=Z500_flood1.sel(month=6+i).plot.contour(levels=range(5400, 6000, 60), add_labels =True,transform=ccrs.PlateCarree(), colors = 'black',ax=ax)
    plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
#     ax.set_title('Air Temperature %d' % i)
    ax.set_extent(extent_z500)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
    
    gl=ax.gridlines(draw_labels=True, linewidth=1, color='gray', alpha=0.5, linestyle='--')
    gl.xlabels_top = False
    gl.ylabels_right = False
    if i > 0:
        gl.ylabels_left = False
    # gl.xlocator = cartopy.mpl.gridliner.mticker.FixedLocator([-120, -90, -60, -30])
    # gl.ylocator = mticker.FixedLocator([-60, 20, 40, 60])
    gl.xformatter = cartopy.mpl.gridliner.LONGITUDE_FORMATTER
    gl.yformatter = cartopy.mpl.gridliner.LATITUDE_FORMATTER
<a list of 18 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac53acb80>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac5670760>
<a list of 19 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac5681340>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac561d250>
<a list of 21 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac56ac880>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac56e6c40>
../_images/Climate_conditions_during_the_megafloods_47_9.png
##Comparing AlbersEqualArea and LambertConformal

extent_z500 = [-135, 0, 15, -60]

central_lon = np.mean(extent_z500[:2])
central_lat = np.mean(extent_z500[2:])

map_proj = ccrs.AlbersEqualArea(central_lon, central_lat,standard_parallels=(-60.0, 10.0))

# map_proj = ccrs.LambertConformal(central_lon, central_lat,standard_parallels=(-60.0, 10.0),cutoff =30)



# plt.figure(figsize=(4, 9))
ax = plt.axes(projection=map_proj)
ax.set_extent(extent_z500)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
# ax.gridlines(draw=True)
# Z500_anomaly2.sel(month=7).plot(transform=ccrs.PlateCarree(), robust=True,ax=ax)
Z500_anomaly2.sel(month=7).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr, ax=ax)
contours=Z500_flood2.sel(month=7).plot.contour(levels=range(5400, 6000, 60), add_labels =True,transform=ccrs.PlateCarree(), colors = 'black',ax=ax)
plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
gl=ax.gridlines(draw_labels=False, linewidth=1, color='gray', alpha=0.5, linestyle='--')
gl.xlabels_top = False
gl.ylabels_right = False
# gl.xlocator = cartopy.mpl.gridliner.mticker.FixedLocator([-120, -90, -60, -30])
# gl.ylocator = mticker.FixedLocator([-60, 20, 40, 60])
gl.xformatter = cartopy.mpl.gridliner.LONGITUDE_FORMATTER
gl.yformatter = cartopy.mpl.gridliner.LATITUDE_FORMATTER
plt.show()



map_proj = ccrs.LambertConformal(central_lon, central_lat,standard_parallels=(-60.0, 10.0),cutoff =30)
ax = plt.axes(projection=map_proj)
ax.set_extent(extent_z500)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')

Z500_anomaly2.sel(month=7).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr, ax=ax)
contours=Z500_flood2.sel(month=7).plot.contour(levels=range(5400, 6000, 60), add_labels =True,transform=ccrs.PlateCarree(), colors = 'black',ax=ax)
plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
gl=ax.gridlines(draw_labels=False, linewidth=1, color='gray', alpha=0.5, linestyle='--')
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac4dccdc0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac4cb65e0>
<matplotlib.collections.QuadMesh at 0x2b0ac4f2c520>
<a list of 21 text.Text objects>
../_images/Climate_conditions_during_the_megafloods_48_4.png
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac5000af0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac4fc2b80>
<matplotlib.collections.QuadMesh at 0x2b0ac5016400>
<a list of 22 text.Text objects>
../_images/Climate_conditions_during_the_megafloods_48_9.png

Zoom in flood 1

extent_z500 = [-135, 0, 15, -60]

central_lon = np.mean(extent_z500[:2])
central_lat = np.mean(extent_z500[2:])

map_proj = ccrs.LambertConformal(central_lon, central_lat,standard_parallels=(-60.0, 10.0),cutoff =30)

g_simple=Z500_anomaly1.sel(month=slice(6,8)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': map_proj})  #
for i, ax in enumerate(g_simple.axes.flat):
    contours=Z500_flood1.sel(month=6+i).plot.contour(levels=range(5000, 6000, 60), add_labels =True,transform=ccrs.PlateCarree(), colors = 'black',ax=ax)
    plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
#     ax.set_title('Air Temperature %d' % i)
    ax.set_extent(extent_z500)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
    
    gl=ax.gridlines(draw_labels=False, linewidth=1, color='gray', alpha=0.5, linestyle='--')
    
plt.draw()
plt.savefig('../Graphs/Z500_Flood1_zoomed.png',dpi =300)
<a list of 25 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac78856d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7916a90>
<a list of 29 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac78ac9d0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac7977ac0>
<a list of 24 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac79a9eb0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac79a9d00>
../_images/Climate_conditions_during_the_megafloods_50_9.png

Zoom in flood 2

extent_z500 = [-135, 0, 15, -60]

central_lon = np.mean(extent_z500[:2])
central_lat = np.mean(extent_z500[2:])

map_proj = ccrs.LambertConformal(central_lon, central_lat,standard_parallels=(-60.0, 10.0),cutoff =30)

g_simple=Z500_anomaly2.sel(month=slice(6,8)).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr,robust=True, col='month', col_wrap=3,subplot_kws={'projection': map_proj})  #
for i, ax in enumerate(g_simple.axes.flat):
    contours=Z500_flood2.sel(month=6+i).plot.contour(levels=range(5000, 6000, 60), add_labels =True,transform=ccrs.PlateCarree(), colors = 'black',ax=ax)
    plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
#     ax.set_title('Air Temperature %d' % i)
    ax.set_extent(extent_z500)
    ax.coastlines(resolution='110m')
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
    
    gl=ax.gridlines(draw_labels=False, linewidth=1, color='gray', alpha=0.5, linestyle='--')
    
plt.draw()
plt.savefig('../Graphs/Z500_Flood2_zoomed.png',dpi =300)
<a list of 26 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6df7040>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6f14f10>
<a list of 31 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6d62a30>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6f49040>
<a list of 27 text.Text objects>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6f8c5e0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac6fdfca0>
../_images/Climate_conditions_during_the_megafloods_52_9.png

Older stuff

map_proj = ccrs.PlateCarree()

extent_z500 = [-135, 0, 15, -60]

# plt.figure(figsize=(4, 9))
ax = plt.axes(projection=map_proj)
ax.set_extent(extent_z500)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
# ax.gridlines(draw=True)
# Z500_anomaly2.sel(month=7).plot(transform=ccrs.PlateCarree(), robust=True,ax=ax)
Z500_anomaly2.sel(month=7).plot(transform=ccrs.PlateCarree(), cmap=plt.cm.PuOr, ax=ax)
contours=Z500_flood2.sel(month=7).plot.contour(levels=range(5400, 6000, 60), add_labels =True,transform=ccrs.PlateCarree(), colors = 'black',ax=ax)
plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
gl=ax.gridlines(draw_labels=True, linewidth=1, color='gray', alpha=0.5, linestyle='--')
gl.xlabels_top = False
gl.ylabels_right = False
# gl.xlocator = cartopy.mpl.gridliner.mticker.FixedLocator([-120, -90, -60, -30])
# gl.ylocator = mticker.FixedLocator([-60, 20, 40, 60])
gl.xformatter = cartopy.mpl.gridliner.LONGITUDE_FORMATTER
gl.yformatter = cartopy.mpl.gridliner.LATITUDE_FORMATTER
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1c0c580>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ac1c0a8b0>
<matplotlib.collections.QuadMesh at 0x2b0ac1c18f40>
<a list of 21 text.Text objects>
../_images/Climate_conditions_during_the_megafloods_54_4.png
map_proj = ccrs.Robinson()

extent = [4, 15, 57, 70]

# plt.figure(figsize=(4, 9))
ax = plt.axes(projection=map_proj)
# ax.set_extent(extent_zoom2)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
# ax.gridlines(draw=True)
SST_standardized_anomaly1['tos'].sel(month=7).plot(transform=ccrs.PlateCarree(), ax=ax)
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab43191c0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b0ab4319190>
<matplotlib.collections.QuadMesh at 0x2b0ab43436a0>
../_images/Climate_conditions_during_the_megafloods_55_3.png
##Spatial domain of the Amazon basin
lats = [5, -17]
lons = [-80+360, -45+360]#[100, 135]

## We cut out the Amazon region
Pr_Amazon=Pr.sel(lon=slice(lons[0], lons[1]),lat=slice(lats[0], lats[1]))

# Pr_Amazon['pr'].isel(time=0).plot()
map_proj = ccrs.Mercator()

extent = [-85, -35, 15, -25]
# extent_zoom = [4, 10, 58, 65]

# plt.figure(figsize=(4, 9))
ax = plt.axes(projection=map_proj)
ax.set_extent(extent)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
# ax.gridlines(draw_labels=True)
# Pr_Amazon['pr'].isel(time=0).plot(transform=ccrs.PlateCarree(), ax=ax)
Pr['pr'].isel(time=0).plot(cmap=plt.cm.Blues,vmax=0.6,vmin=0,transform=ccrs.PlateCarree(), ax=ax)
# plt.tight_layout()
plt.show()
# plt.savefig(r'C:\Users\Timo\OneDrive - Loughborough University\PhD\papers\Timo\TWEX\Topo_WC.png')
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b85f20a9f70>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b85cf6d50d0>
<matplotlib.collections.QuadMesh at 0x2b85f210ba00>
../_images/Climate_conditions_during_the_megafloods_57_3.png
map_proj = ccrs.Robinson()
# crs_proj4 = map_proj.proj4_init
# Flam_proj = Flam.to_crs(crs_proj4)


extent = [4, 15, 57, 70]
extent_zoom = [4, 10, 58, 65]
extent_zoom2 = [5, 8, 60, 61]



# plt.figure(figsize=(4, 9))
ax = plt.axes(projection=map_proj)
# ax.set_extent(extent_zoom2)
ax.coastlines(resolution='110m')
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
# ax.gridlines(draw=True)
# Roy_proj.plot(ax = ax,alpha=0.5, color='black')
# Norway.bedrock.plot.pcolormesh(
#     cmap=cmocean.cm.topo, cbar_kwargs=dict(pad=0.01, aspect=30),transform=ccrs.PlateCarree(), ax=ax,zorder=-1
# )
SST['tos'].isel(time=0).plot(transform=ccrs.PlateCarree(), ax=ax)
# plt.tight_layout()
# plt.show()
# plt.savefig(r'C:\Users\Timo\OneDrive - Loughborough University\PhD\papers\Timo\TWEX\Topo_WC.png')
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b9de790e2b0>
<cartopy.mpl.feature_artist.FeatureArtist at 0x2b9de78f8640>
<matplotlib.collections.QuadMesh at 0x2b9de792fbb0>
../_images/Climate_conditions_during_the_megafloods_58_3.png