# General Description: # Any key that is specific for a plot type will begin with ts for timeseries, ty for taylor # Opt: Specifying the variable or variable group is optional # For now all plots except time series average over the analysis window. # Seting axis values - If set_axis = True in data_proc section of each plot_grp the yaxis for the plot will be set based on the values specified in the obs section for each variable. If set_axis is set to False, then defaults will be used. 'vmin_plot' and 'vmax_plot' are needed for 'timeseries', 'spatial_overlay', and 'boxplot'. 'vdiff_plot' is needed for 'spatial_bias' plots and'ty_scale' is needed for 'taylor' plots. 'nlevels' or the number of levels used in the contour plot can also optionally be provided for spatial_overlay plot. If set_axis = True and the proper limits are not provided in the obs section, a warning will print, and the plot will be created using the default limits. analysis: start_time: '2019-09-05-06:00:00' #UTC end_time: '2019-09-06-06:00:00' #UTC output_dir: /wrk/d2/rschwantes/wrf/firex_mech/wrfchem_example/process/short_file/ #Opt if not specified plots stored in code directory. debug: True model: RACM_ESRL: # model label files: /wrk/d2/rschwantes/wrf/firex_mech/wrfchem_example/small/racm_esrl/* mod_type: 'wrfchem' mod_kwargs: #For WRF-chem only, can add vert: False, if missing P,T variables, but not all conversions will work. Default vert: True. mech: 'racm_esrl_vcp' radius_of_influence: 12000 #meters mapping: #model species name : obs species name airnow: #co: CO #no2: NO2 #'no': 'NO' PM2_5_DRY: "PM2.5" o3: "OZONE" projection: None plot_kwargs: #Opt color: 'magenta' marker: 's' linestyle: '-' RACM_ESRL_VCP: # model label files: /wrk/d2/rschwantes/wrf/firex_mech/wrfchem_example/small/racm_esrl_vcp/* mod_type: 'wrfchem' mod_kwargs: #For WRF-chem only, can add vert: False, if missing P,T variables, but not all conversions will work. Default vert: True. mech: 'racm_esrl_vcp' radius_of_influence: 12000 #meters mapping: #model species name : obs species name airnow: #co: CO #no2: NO2 #'no': 'NO' PM2_5_DRY: "PM2.5" o3: "OZONE" projection: None plot_kwargs: #Opt color: 'gold' marker: 'o' linestyle: '-' obs: airnow: # obs label use_airnow: True filename: /home/rschwantes/MONET/MONET-analysis/melodies_monet/data/AIRNOW_20190901_20190930.nc obs_type: pt_sfc variables: #Opt OZONE: unit_scale: 1 #Opt Scaling factor unit_scale_method: '*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/' nan_value: -1.0 # Opt Set this value to NaN ylabel_plot: 'Ozone (ppbv)' vmin_plot: 15.0 #Opt Min for y-axis during plotting. To apply to a plot, change restrict_yaxis = True. vmax_plot: 55.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True. vdiff_plot: 20.0 #Opt +/- range to use in bias plots. To apply to a plot, change restrict_yaxis = True. nlevels_plot: 21 #Opt number of levels used in colorbar for contourf plot. PM2.5: unit_scale: 1 unit_scale_method: '*' # Multiply = '*' , Add = '+', subtract = '-', divide = '/' #obs_min: 0 # set all values less than this value to NaN #obs_max: 100 # set all values greater than this value to NaN nan_value: -1.0 # Set this value to NaN #The obs_min, obs_max, and nan_values are set to NaN first and then the unit conversion is applied. ylabel_plot: 'PM2.5 (ug/m3)' #Optional to set ylabel so can include units and/or instr etc. ty_scale: 2.0 #Opt vmin_plot: 0.0 #Opt Min for y-axis during plotting. To apply to a plot, change restrict_yaxis = True. vmax_plot: 22.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True. vdiff_plot: 15.0 #Opt +/- range to use in bias plots. To apply to a plot, change restrict_yaxis = True. nlevels_plot: 23 #Opt number of levels used in colorbar for contourf plot. plots: plot_grp1: type: 'timeseries' # plot type fig_kwargs: #Opt to define figure options figsize: [12,6] # figure size if multiple plots default_plot_kwargs: # Opt to define defaults for all plots. Model kwargs overwrite these. linewidth: 2.0 markersize: 10. text_kwargs: #Opt fontsize: 24. domain_type: ['all','state_name','epa_region'] #List of domain types: 'all' or any domain in obs file. (e.g., airnow: epa_region, state_name, siteid, etc.) domain_name: ['CONUS','CA','R9'] #List of domain names. If domain_type = all domain_name is used in plot title. data: ['airnow_RACM_ESRL','airnow_RACM_ESRL_VCP'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label data_proc: rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN. ts_select_time: 'time_local' #Time used for avg and plotting: Options: 'time' for UTC or 'time_local' ts_avg_window: 'H' # Options: None for no averaging or list pandas resample rule (e.g., 'H', 'D') set_axis: True #If select True, add vmin_plot and vmax_plot for each variable in obs. plot_grp2: type: 'taylor' # plot type fig_kwargs: #Opt to define figure options figsize: [8,8] # figure size if multiple plots default_plot_kwargs: # Opt to define defaults for all plots. Model kwargs overwrite these. linewidth: 2.0 markersize: 10. text_kwargs: #Opt fontsize: 16. domain_type: ['all','state_name','epa_region'] #List of domain types: 'all' or any domain in obs file. (e.g., airnow: epa_region, state_name, siteid, etc.) domain_name: ['CONUS','CA','R9'] #List of domain names. If domain_type = all domain_name is used in plot title. data: ['airnow_RACM_ESRL','airnow_RACM_ESRL_VCP'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label data_proc: rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN. set_axis: True #If select True, add ty_scale for each variable in obs. plot_grp3: type: 'spatial_bias' # plot type fig_kwargs: #For all spatial plots, specify map_kwargs here too. states: True figsize: [10, 5] # figure size text_kwargs: #Opt fontsize: 16. domain_type: ['all','state_name','epa_region'] #List of domain types: 'all' or any domain in obs file. (e.g., airnow: epa_region, state_name, siteid, etc.) domain_name: ['CONUS','CA','R9'] #List of domain names. If domain_type = all domain_name is used in plot title. data: ['airnow_RACM_ESRL','airnow_RACM_ESRL_VCP'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label data_proc: rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN. set_axis: True #If select True, add vdiff_plot for each variable in obs. plot_grp4: type: 'spatial_overlay' # plot type fig_kwargs: #For all spatial plots, specify map_kwargs here too. states: True figsize: [10, 5] # figure size text_kwargs: #Opt fontsize: 16. domain_type: ['all','state_name','epa_region'] #List of domain types: 'all' or any domain in obs file. (e.g., airnow: epa_region, state_name, siteid, etc.) domain_name: ['CONUS','CA','R9'] #List of domain names. If domain_type = all domain_name is used in plot title. data: ['airnow_RACM_ESRL','airnow_RACM_ESRL_VCP'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label data_proc: rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN. set_axis: True #If select True, add vmin_plot and vmax_plot for each variable in obs. plot_grp5: type: 'boxplot' # plot type fig_kwargs: #Opt to define figure options figsize: [8, 6] # figure size text_kwargs: #Opt fontsize: 20. domain_type: ['all','state_name','epa_region'] #List of domain types: 'all' or any domain in obs file. (e.g., airnow: epa_region, state_name, siteid, etc.) domain_name: ['CONUS','CA','R9'] #List of domain names. If domain_type = all domain_name is used in plot title. data: ['airnow_RACM_ESRL','airnow_RACM_ESRL_VCP'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label data_proc: rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN. set_axis: False #If select True, add vmin_plot and vmax_plot for each variable in obs. stats: #Stats require positive numbers, so if you want to calculate temperature use Kelvin! #Wind direction has special calculations for AirNow if obs name is 'WD' stat_list: ['MB', 'MdnB','R2', 'RMSE'] #List stats to calculate. Dictionary of definitions included in plots/proc_stats.py Only stats listed below are currently working. #Full calc list ['STDO', 'STDP', 'MdnNB','MdnNE','NMdnGE', 'NO','NOP','NP','MO','MP', 'MdnO', 'MdnP', 'RM', 'RMdn', 'MB', 'MdnB', 'NMB', 'NMdnB', 'FB', 'ME','MdnE','NME', 'NMdnE', 'FE', 'R2', 'RMSE','d1','E1', 'IOA', 'AC'] round_output: 2 #Opt, defaults to rounding to 3rd decimal place. output_table: False #Always outputs a .txt file. Optional to also output as a table. output_table_kwargs: #Opt figsize: [7, 3] # figure size fontsize: 12. xscale: 1.4 yscale: 1.4 edges: 'horizontal' domain_type: ['all','state_name','epa_region'] #List of domain types: 'all' or any domain in obs file. (e.g., airnow: epa_region, state_name, siteid, etc.) domain_name: ['CONUS','CA','R9'] #List of domain names. If domain_type = all domain_name is used in plot title. data: ['airnow_RACM_ESRL','airnow_RACM_ESRL_VCP'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label