Diagnostics plots: time series of spin-up period

Created by Ivan Lima on Mon, 05 Feb 2018 08:55:26 -0500

In [1]:
%matplotlib notebook
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
from cases import *
from datetime import datetime
print('Last updated on %s'%datetime.now().ctime())
Last updated on Mon Feb  5 09:47:24 2018

Case description

In [2]:
case = 'tr3he.GIAF.01'
print(case,':',case_info[case])
tr3he.GIAF.01 : 186-year run with interannualy varying forcing (CORE 1948-2009). Physics is spun-up for
126 years (2 IAF cycles: 1824-1949). Tritium deposition starts in the third IAF cycle (1950-2009). Time & latitude
dependent tritium concentration in precipitation (Cp) is estimated from GNIP data (Michaela's blended fits).
Tritium concentration in water vapor (Cv) is set to 0.7 Cp.

Note: Output for the spin-up period was saved as annual means.

Read data

In [3]:
datadir = '/home/ivan/Data/Postproc/Tritium-3H'
store = pd.HDFStore(os.path.join(datadir,'%s_tseries_annual.h5'%case))
df_tseries = store['df']
store.close()

$^3\!$He inventory & air-sea fluxes

CTB = completely trapped bubbles, PTB = partially trapped bubbles, DGE = difusive gas exchange

In [4]:
fig, (ax1, ax2) = plt.subplots(ncols=2,figsize=(9.5,4))
helium = df_tseries.HELIUM3 * 1.e-6 # mol -> 10^6 mol
_ = helium.plot(ax=ax1,title=r'$^3\!$He inventory')
_ = ax1.set_ylabel(r'$10^6$ mol')
_ = df_tseries[['STF_HELIUM3','STF_HELIUM3_CTB','STF_HELIUM3_PTB',
                'STF_HELIUM3_DGE']].plot(ax=ax2,title=r'$^3\!$He air-sea flux')
_ = ax2.hlines(0,df_tseries.index[0],df_tseries.index[-1],linestyles='dotted',linewidth=1)
_ = ax2.set_ylabel(r'mol d$^{-1}$')

Global mean fluxes (mol d$^{-1}$)

In [5]:
df_tseries[['STF_HELIUM3','STF_HELIUM3_CTB','STF_HELIUM3_PTB','STF_HELIUM3_DGE']].mean()
Out[5]:
STF_HELIUM3        -0.181970
STF_HELIUM3_CTB    49.984735
STF_HELIUM3_PTB     1.047799
STF_HELIUM3_DGE   -51.214506
dtype: float64

Inert $^3\!$He inventory & air-sea fluxes

CTB = completely trapped bubbles, PTB = partially trapped bubbles, DGE = difusive gas exchange

In [6]:
fig, (ax1, ax2) = plt.subplots(ncols=2,figsize=(9.5,4))
helium = df_tseries[['INERT_HELIUM3']] * 1.e-6 # mol -> 10^6 mol
_ = helium.plot(ax=ax1,title=r'inert $^3\!$He inventory')
_ = ax1.set_ylabel(r'$10^6$ mol')
_ = df_tseries[['STF_INERT_HELIUM3','STF_INERT_HELIUM3_CTB','STF_INERT_HELIUM3_PTB',
                'STF_INERT_HELIUM3_DGE']].plot(ax=ax2,title=r'inert $^3\!$He air-sea flux')
_ = ax2.hlines(0,df_tseries.index[0],df_tseries.index[-1],linestyles='dotted',linewidth=1)
_ = ax2.set_ylabel(r'mol d$^{-1}$')

Global mean fluxes (mol d$^{-1}$)

In [7]:
df_tseries[['STF_INERT_HELIUM3','STF_INERT_HELIUM3_CTB','STF_INERT_HELIUM3_PTB','STF_INERT_HELIUM3_DGE']].mean()
Out[7]:
STF_INERT_HELIUM3        -0.181970
STF_INERT_HELIUM3_CTB    49.984735
STF_INERT_HELIUM3_PTB     1.047799
STF_INERT_HELIUM3_DGE   -51.214506
dtype: float64

$^4\!$He inventory & air-sea fluxes

CTB = completely trapped bubbles, PTB = partially trapped bubbles, DGE = difusive gas exchange

In [8]:
fig, (ax1, ax2) = plt.subplots(ncols=2,figsize=(9.5,4))
helium4 = df_tseries.HELIUM4 * 1.e-12 # mol -> 10^12 mol
_ = helium4.plot(ax=ax1,title=r'$^4\!$He inventory')
_ = ax1.set_ylabel(r'$10^{12}$ mol')
_ = df_tseries[['STF_HELIUM4','STF_HELIUM4_CTB','STF_HELIUM4_PTB',
                'STF_HELIUM4_DGE']].plot(ax=ax2,title=r'$^4\!$He air-sea flux')
_ = ax2.hlines(0,df_tseries.index[0],df_tseries.index[-1],linestyles='dotted',linewidth=1)
_ = ax2.set_ylabel(r'mol d$^{-1}$')

Global mean fluxes (mol d$^{-1}$)

In [9]:
df_tseries[['STF_HELIUM4','STF_HELIUM4_CTB','STF_HELIUM4_PTB','STF_HELIUM4_DGE']].mean()
Out[9]:
STF_HELIUM4       -2.278495e+05
STF_HELIUM4_CTB    3.611614e+07
STF_HELIUM4_PTB    6.041163e+05
STF_HELIUM4_DGE   -3.694811e+07
dtype: float64

Neon inventory & air-sea fluxes

CTB = completely trapped bubbles, PTB = partially trapped bubbles, DGE = difusive gas exchange

In [10]:
fig, (ax1, ax2) = plt.subplots(ncols=2,figsize=(9.5,4))
fig.subplots_adjust(wspace=0.25)
neon = df_tseries.NEON * 1.e-12 # mol -> 10^12 mol
_ = neon.plot(ax=ax1,title=r'Ne inventory')
_ = ax1.set_ylabel(r'$10^{12}$ mol')
_ = df_tseries[['STF_NEON','STF_NEON_CTB','STF_NEON_PTB','STF_NEON_DGE']].plot(ax=ax2,title=r'Ne air-sea flux')
_ = ax2.hlines(0,df_tseries.index[0],df_tseries.index[-1],linestyles='dotted',linewidth=1)
_ = ax2.set_ylabel(r'mol d$^{-1}$')

Global mean fluxes (mol d$^{-1}$)

In [11]:
df_tseries[['STF_NEON','STF_NEON_CTB','STF_NEON_PTB','STF_NEON_DGE']].mean()
Out[11]:
STF_NEON       -1.399708e+06
STF_NEON_CTB    1.253037e+08
STF_NEON_PTB   -4.301189e+06
STF_NEON_DGE   -1.224022e+08
dtype: float64

Argon inventory & air-sea fluxes

CTB = completely trapped bubbles, PTB = partially trapped bubbles, DGE = difusive gas exchange

In [12]:
fig, (ax1, ax2) = plt.subplots(ncols=2,figsize=(9.5,4))
fig.subplots_adjust(wspace=0.25)
argon = df_tseries.ARGON * 1.e-15 # mol -> 10^15 mol
_ = argon.plot(ax=ax1,title=r'Ar inventory')
_ = ax1.set_ylabel(r'$10^{15}$ mol')
_ = df_tseries[['STF_ARGON','STF_ARGON_CTB','STF_ARGON_PTB','STF_ARGON_DGE']].plot(ax=ax2,title=r'Ne air-sea flux')
_ = ax2.hlines(0,df_tseries.index[0],df_tseries.index[-1],linestyles='dotted',linewidth=1)
_ = ax2.set_ylabel(r'mol d$^{-1}$')

Global mean fluxes (mol d$^{-1}$)

In [13]:
df_tseries[['STF_ARGON','STF_ARGON_CTB','STF_ARGON_PTB','STF_ARGON_DGE']].mean()
Out[13]:
STF_ARGON       -3.538860e+09
STF_ARGON_CTB    6.437495e+10
STF_ARGON_PTB    4.392190e+10
STF_ARGON_DGE   -1.118357e+11
dtype: float64