Compare FixN_def_z0 LES Sims

Compare FixN_def_z0 LES Sims#

Updated as of 5/14/24#

  • The below notebook allows one to compare large-eddy simulations.

  • All requested 1D and 2D variables are here read and plotted. “load_sims” reports variable that are missing. Lines will not show, if a variable is missing or if it contains missing values.

  • In case you find inconsistencies in the benchmark set or wish to expand the code, please contact Ann Fridlind (ann.fridlind@nasa.gov), Timothy Juliano (tjuliano@ucar.edu), and Florian Tornow (ft2544@columbia.edu).

%run functions_plotting.py

keyword_all = 'FixN_def_z0.'
sim_keyword_dharma = 'dharma/sandbox/DHARMA_Lx25_dx100_'+keyword_all
sim_keyword_icon = 'icon/staged/ICON_Lx25_dx100_'+keyword_all
sim_keyword_sam = 'sam-pnnl/sandbox/SAM_Lx25_dx100_'+keyword_all
sim_keyword_ucla = 'uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_'+keyword_all
sim_keyword_wrf = 'wrf/sandbox/WRF_Lx25_dx100_'+keyword_all
vars_mean_list = pd.read_excel('https://docs.google.com/spreadsheets/d/1Vl8jYGviet7EtXZuQiitrx4NSkV1x27aJAhxxjBb9zI/export?gid=0&format=xlsx',
                              sheet_name='Mean')

## short names
var_vec_1d = np.asarray(vars_mean_list.variable_id[vars_mean_list.dimensions == 'time'])
var_vec_2d = np.asarray(vars_mean_list.variable_id[vars_mean_list.dimensions == 'time, height'])

## long names
var_vec_1d_long = np.asarray(vars_mean_list.standard_name[vars_mean_list.dimensions == 'time'])
var_vec_2d_long = np.asarray(vars_mean_list.standard_name[vars_mean_list.dimensions == 'time, height'])

## Units
var_vec_1d_units = np.asarray(vars_mean_list.units[vars_mean_list.dimensions == 'time'])
var_vec_2d_units = np.asarray(vars_mean_list.units[vars_mean_list.dimensions == 'time, height'])
df_col_1d_dharma,df_col_2d_dharma = load_sims('../../output_les/',var_vec_1d,var_vec_2d,t_shift=-2,keyword=sim_keyword_dharma)
df_col_1d_icon,df_col_2d_icon = load_sims('../../output_les/',var_vec_1d,var_vec_2d,t_shift=-2,keyword=sim_keyword_icon)
df_col_1d_sam,df_col_2d_sam = load_sims('../../output_les/',var_vec_1d,var_vec_2d,t_shift=-2,keyword=sim_keyword_sam)
df_col_1d_ucla,df_col_2d_ucla = load_sims('../../output_les/',var_vec_1d,var_vec_2d,t_shift=-2,keyword=sim_keyword_ucla)
df_col_1d_wrf,df_col_2d_wrf = load_sims('../../output_les/',var_vec_1d,var_vec_2d,t_shift=-2,keyword=sim_keyword_wrf)
Loading variables: f(time)
../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
ssaf shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time,height)
../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
na1 shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
na2 shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
na3 shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
dna_micro_warm shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
dna_micro_cold shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
dna_turb shows NAN values in ../../output_les/dharma/sandbox/DHARMA_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time)
../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
ssaf shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time,height)
../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
na1 shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
na2 shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
na3 shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
niic shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
eps shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
uw shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
vw shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
w2 shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
wth shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
vf_thli shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
wqv shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
vf_qt shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
flc shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
prf shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
prfi shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
rld shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
rlu shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dth_rad shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dth_micro shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dth_turb shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dq_micro shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dq_turb shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dna_micro_warm shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dna_micro_cold shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dna_turb shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dni_het shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dni_sip shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
dni_hom shows NAN values in ../../output_les/icon/staged/ICON_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time)
../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
ustar shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
clt shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
ssaf shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time,height)
../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
nlc shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
na1 shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
na2 shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
na3 shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
nlcic shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
niic shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
eps shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
wth shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
vf_thli shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
wqv shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
vf_qt shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
flc shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
prf shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
prfi shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dth_rad shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dth_micro shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dth_turb shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dq_micro shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dq_turb shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dna_micro_warm shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dna_micro_cold shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dna_turb shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dni_het shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dni_sip shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
dni_hom shows NAN values in ../../output_les/sam-pnnl/sandbox/SAM_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time)
../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
ssaf shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time,height)
../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
na1 shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
na2 shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
na3 shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
wth shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
vf_thli shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
wqv shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dth_rad shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dth_micro shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dth_turb shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dq_micro shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dq_turb shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dna_micro_warm shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dna_micro_cold shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dna_turb shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dni_sip shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
dni_hom shows NAN values in ../../output_les/uclales-salsa/sandbox/UCLALES-SALSA_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time)
../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
ssaf shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
Loading variables: f(time,height)
../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
na1 shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
na2 shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
na3 shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
eps shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
rld shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
rlu shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
dna_micro_warm shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
dna_micro_cold shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
dna_turb shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
dni_het shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
dni_sip shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
dni_hom shows NAN values in ../../output_les/wrf/sandbox/WRF_Lx25_dx100_FixN_def_z0.nc
## plot variables that have only time dependence
plot_1d(pd.concat([df_col_1d_dharma,df_col_1d_icon,df_col_1d_sam,df_col_1d_ucla,df_col_1d_wrf]),
                   var_vec_1d,longnames=var_vec_1d_long,units=var_vec_1d_units,
                   plot_colors=['k','r','magenta','gold','lightskyblue'],plot_ls=['-','-','-','-','-'])
../../_images/5cf520dafebc60008874a5f5cc620b19a82e778f91b1ad72906fd3dad619d4f5.png
## example where ERA5 and radiosonde are included
plot_2d(pd.concat([df_col_2d_dharma,df_col_2d_icon,df_col_2d_sam,df_col_2d_ucla,df_col_2d_wrf]),
                   var_vec_2d,times=[-1.5,0,3,9,18],z_max=6000,units=var_vec_2d_units,longnames=var_vec_2d_long,
                   plot_colors=['k','r','magenta','gold','lightskyblue'])
temporal averaging over 1.0 h interval
../../_images/404ef67da45edf3a10a19804154145a5cc9cd65fa1a3148f99e7e019d194ed73.png
<Figure size 1000x600 with 0 Axes>