2020-05-12

2020-05-12#

  • The below notebook was adjusted from COMBLE-MIP.

  • It compares selected simulations against observational targets that were collected from satellite and ground-based retrievals.

  • In case of questions or concerns, please notify Ann Fridlind and Florian Tornow.

  • Please check out our description of this case.

%run functions_plotting.py 
 
## select simulations to plot
sim_keyword = '20200507'  
## load ERA5 fields
#era5_1d, era5_2d = load_era5(PATH='../data_files/')
era5_1d = load_era5csv(case=sim_keyword)

## load radiosondes
rs_dat = load_rs(case=sim_keyword,t_filter = 7.)

## load DOE ARM site statistics
kazrkollias_dat = load_kazrkollias(case=sim_keyword,t_filter = 6.,aux_dat=rs_dat) ## here using radiosonde profiles to estimate CTT
kazrclough_dat = load_kazrclough(case=sim_keyword,t_filter = 6.) 
aeri_dat = load_aeri(case=sim_keyword,t_filter = 0.5)
radflux_dat = load_radflux(case=sim_keyword,t_filter = 6.)
#srfflux_dat = load_flux(case=sim_keyword,t_filter = 6.)

## load CARRA surface fluxes
#carra_dat = load_carraflux()

## load MAC-LWP
maclwp_dat = load_maclwp(case=sim_keyword,t_filter = 0.) 

## load MODIS, VIIRS, and SENTINEL retrievals
modis_dat    = load_modis(case=sim_keyword,t_filter = 0.,sza_filter = 75.)
viirs_dat    = load_viirs(case=sim_keyword,t_filter = 0.,sza_filter = 75.)
#sentinel_dat = load_sentinel(case=sim_keyword,t_filter = 0.,sza_filter = 65.)

## load CERES retrievals
ceres_dat = load_ceres(case=sim_keyword,t_filter = 0.)

## load CALIPSO retrievals (note the increased time window)
calipso_dat = load_calipso(case=sim_keyword,t_filter = 3.)
../data_files/anxsondewnpnM1.b1.20200507.172700.cdf
../data_files/anxsondewnpnM1.b1.20200507.112500.cdf
../data_files/anxsondewnpnM1.b1.20200507.052700.cdf
KAZR (Kollias): here using auxiliary field to estimate cloud-top temperature
/gpfsm/dhome/tflorian/LES-SCM/notebooks/functions_plotting.py:554: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  aux_dat['zdiff'] = np.abs(aux_dat['zf'] - np.float64(p_df['zi']))
/gpfsm/dhome/tflorian/LES-SCM/notebooks/functions_plotting.py:555: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  aux_dat['zdiff.25'] = np.abs(aux_dat['zf'] - np.float64(p_df['zi.25']))
/gpfsm/dhome/tflorian/LES-SCM/notebooks/functions_plotting.py:556: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  aux_dat['zdiff.75'] = np.abs(aux_dat['zf'] - np.float64(p_df['zi.75']))
## load all simulations located in subfolders of the given directory
var_vec_1d = ['z0','z0h','z0q','hfss','hfls','ts'] # variables with ERA5 (longer time axis)
var_vec_2d = ['theta','qv','ua','va']
df_col_1d_les,df_col_2d_les = load_sims('../output_les/',var_vec_1d,var_vec_2d,t_shift=0,keyword=sim_keyword,subfolder='s')
df_col_1d_scm,df_col_2d_scm = load_sims('../output_scm/',var_vec_1d,var_vec_2d,t_shift=0,keyword=sim_keyword,subfolder='s')
Loading variables: f(time)
../output_les/dharma/comble_20200507_progNa_noice.nc
../output_les/dharma/comble_20200507_diagNa.nc
../output_les/dharma/comble_20200507_progNa.nc
../output_les/dharma/comble_20200507_diagNa_noice.nc
Loading variables: f(time,height)
../output_les/dharma/comble_20200507_progNa_noice.nc
../output_les/dharma/comble_20200507_diagNa.nc
../output_les/dharma/comble_20200507_progNa.nc
../output_les/dharma/comble_20200507_diagNa_noice.nc
Loading variables: f(time)
../output_scm/modele/comble_20200507_diagNa.nc
../output_scm/modele/comble_20200507_diagNa_noice.nc
Loading variables: f(time,height)
../output_scm/modele/comble_20200507_diagNa.nc
../output_scm/modele/comble_20200507_diagNa_noice.nc
%run functions_plotting.py 

## plot variables that have only time dependence
#plot_1d(pd.concat([df_col_1d,era5_1d,carra_dat,srfflux_dat]),var_vec_1d)dependence
#plot_1d(pd.concat([df_col_1d_les,df_col_1d_scm,era5_1d,carra_dat,srfflux_dat]),var_vec_1d)
plot_1d(pd.concat([df_col_1d_les,df_col_1d_scm,era5_1d]),var_vec_1d) #,t0=-16,t1=13)
../_images/e8a1954176ab2047f3eb5e6b7adac81f9a48ad0c293ef23b84415f87ee25b913.png
%run functions_plotting.py 

## load all simulations located in subfolders of the given directory

var_vec_1d = ['lwpr','lwpc','iwp','od','clt','rlut','cfc','nqc'] # variables without ERA5 (shorter time axis)
var_vec_2d_les = ['theta','qv','qlc','qlr','ta','ua','va','qic','qis','qig','ua','va','ta','prf','dni_het','dni_hom']
var_vec_2d_scm = ['theta','qv','qlc','qlr','ta','ua','va','qicc','qics','qipc','qips','ua','va','ta','prf','fc']
df_col_1d_les,df_col_2d_les = load_sims('../output_les/',var_vec_1d,var_vec_2d_les,t_shift=0,keyword=sim_keyword,diag_zi_ctt=True)
df_col_1d_scm,df_col_2d_scm = load_sims('../output_scm/',var_vec_1d,var_vec_2d_scm,t_shift=0,keyword=sim_keyword,diag_zi_ctt=True)
Loading variables: f(time)
../output_les/dharma/comble_20200507_progNa_noice.nc
iwp shows NAN values in ../output_les/dharma/comble_20200507_progNa_noice.nc
cfc not found in ../output_les/dharma/comble_20200507_progNa_noice.nc
../output_les/dharma/comble_20200507_diagNa.nc
cfc not found in ../output_les/dharma/comble_20200507_diagNa.nc
../output_les/dharma/comble_20200507_progNa.nc
cfc not found in ../output_les/dharma/comble_20200507_progNa.nc
../output_les/dharma/comble_20200507_diagNa_noice.nc
iwp shows NAN values in ../output_les/dharma/comble_20200507_diagNa_noice.nc
cfc not found in ../output_les/dharma/comble_20200507_diagNa_noice.nc
Loading variables: f(time,height)
../output_les/dharma/comble_20200507_progNa_noice.nc
qic shows NAN values in ../output_les/dharma/comble_20200507_progNa_noice.nc
qis shows NAN values in ../output_les/dharma/comble_20200507_progNa_noice.nc
qig shows NAN values in ../output_les/dharma/comble_20200507_progNa_noice.nc
dni_het shows NAN values in ../output_les/dharma/comble_20200507_progNa_noice.nc
dni_hom shows NAN values in ../output_les/dharma/comble_20200507_progNa_noice.nc
../output_les/dharma/comble_20200507_diagNa.nc
../output_les/dharma/comble_20200507_progNa.nc
../output_les/dharma/comble_20200507_diagNa_noice.nc
qic shows NAN values in ../output_les/dharma/comble_20200507_diagNa_noice.nc
qis shows NAN values in ../output_les/dharma/comble_20200507_diagNa_noice.nc
qig shows NAN values in ../output_les/dharma/comble_20200507_diagNa_noice.nc
dni_het shows NAN values in ../output_les/dharma/comble_20200507_diagNa_noice.nc
dni_hom shows NAN values in ../output_les/dharma/comble_20200507_diagNa_noice.nc
computing inversion height, cloud-top height, and cloud-top temperature
using liquid(-ice) potential temperature
dharma/comble_20200507_diagNa.nc
dharma/comble_20200507_diagNa_noice.nc
dharma/comble_20200507_progNa.nc
dharma/comble_20200507_progNa_noice.nc
Loading variables: f(time)
../output_scm/modele/comble_20200507_diagNa.nc
../output_scm/modele/comble_20200507_diagNa_noice.nc
iwp shows NAN values in ../output_scm/modele/comble_20200507_diagNa_noice.nc
Loading variables: f(time,height)
../output_scm/modele/comble_20200507_diagNa.nc
../output_scm/modele/comble_20200507_diagNa_noice.nc
qicc shows NAN values in ../output_scm/modele/comble_20200507_diagNa_noice.nc
qics shows NAN values in ../output_scm/modele/comble_20200507_diagNa_noice.nc
qipc shows NAN values in ../output_scm/modele/comble_20200507_diagNa_noice.nc
qips shows NAN values in ../output_scm/modele/comble_20200507_diagNa_noice.nc
computing inversion height, cloud-top height, and cloud-top temperature
modele/comble_20200507_diagNa.nc
modele/comble_20200507_diagNa_noice.nc
%run functions_plotting.py 
## plot variables that have only time dependence
#plot_1d(pd.concat([df_col_1d,maclwp_dat,modis_dat,viirs_dat,sentinel_dat,kazrkollias_dat,kazrclough_dat,calipso_dat,radflux_dat]),['zi','od','lwp','iwp','ctt'])

#plot_1d(pd.concat([df_col_1d,maclwp_dat,kazrkollias_dat,kazrclough_dat,calipso_dat,radflux_dat]),['cth','od','lwp','iwp','ctt'],longnames=['cloud-top height','cloud optical depth','liquid water path','ice water path','cloud-top temperature'],units=['m','','kg m^-2','kg m^-2','C'])
#plot_1d(pd.concat([df_col_1d_les,df_col_1d_scm,maclwp_dat,kazrkollias_dat,kazrclough_dat,calipso_dat,radflux_dat]),['cth','od','lwp','iwp','ctt'],longnames=['cloud-top height','cloud optical depth','liquid water path','ice water path','cloud-top temperature'],units=['m','','kg m^-2','kg m^-2','C'])
plot_1d(pd.concat([df_col_1d_les,df_col_1d_scm,maclwp_dat,kazrkollias_dat,kazrclough_dat,calipso_dat,ceres_dat,modis_dat,viirs_dat,radflux_dat]),['clt','cth','od','nqc','lwp','iwp','ctt','rlut','cfc'],longnames=['cloud cover','cloud-top height','cloud optical depth','cloud droplet number concentration','liquid water path','ice water path','cloud-top temperature','TOA LW up','convective area fraction'],units=['','m','','cm-3','kg m^-2','kg m^-2','C','W m^-2',' ']) 
#,t0=-16,t1=13)

## plot variables that have only time dependence (for now excluding imager retrievals that are mostly SZA > 70)
#plot_1d(pd.concat([df_col_1d,maclwp_dat,kazrkollias_dat,kazrclough_dat,calipso_dat,gongiwp_dat,radflux_dat]),['od','lwp','iwp']) #'zi','od','lwp','iwp
/usr/local/other/anaconda/GEOSpyD/24.3.0-0/2024-08-29/envs/py3.12/lib/python3.12/site-packages/matplotlib/cbook.py:1699: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  return math.isfinite(val)
../_images/f08aad661178c20932c3d29f754655e904da57411ec024fa970474bc758a5372.png
%run functions_plotting.py

## plot all variables that have time and height dependence
#plot_2d(df_col_2d,var_vec_2d,[0,3,6,9,12,15,18],z_max=6000)
     
## example where ERA5 and radiosonde are included
#plot_2d(pd.concat([df_col_2d,era5_2d,rs_dat,aeri_dat]),var_vec = ['ta','theta','qv','ws','wd'],times=[-1.5,0,4,8,18],z_max=6000)
#plot_2d(pd.concat([df_col_2d_les,df_col_2d_scm,era5_2d,rs_dat,aeri_dat]),var_vec = ['ta','theta','qv','ws','wd'],times=[-1.5,0,4,8,18],z_max=6000)
plot_2d(pd.concat([df_col_2d_les,df_col_2d_scm,rs_dat,aeri_dat]),var_vec = ['ta','theta','qv','ws','wd','fc'],times=[0.5,7,14,21,28],z_max=6000)
Computing wind speed
Computing wind direction
temporal averaging over 1.0 h interval
../_images/c317f34f72c8da40644540ca9537567a8bd89d870b7b890ecb8dc5cdf7ae69ab.png
<Figure size 1000x600 with 0 Axes>