Skip to content

Commit a558c3f

Browse files
authored
Merge pull request #254 from quaz115/develop
Curtain plot (model) with Observations overlaid as scatter & Updated Violin Plot with bigger label fonts and ticks consistent with other plots
2 parents 3121fc4 + ec39a3e commit a558c3f

8 files changed

+506
-50
lines changed

docs/develop/developers_guide.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ The generated HTML will be created in ``docs/_build/html``,
172172
with ``docs/_build/html/index.html`` the main page that can be
173173
viewed in any browser.
174174

175-
Please see the `Documentation <https://github.com/NOAA-CSL/MELODIES-MONET/projects/2>`_
175+
Please see the `MELODIES-MONET Documentation <https://github.com/orgs/NOAA-CSL/projects/6>`_
176176
project on GitHub to learn about current and future development.
177177

178178

docs/users_guide/supported_datasets.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ MELODIES MONET are available. If input datasets are in netCDF format and
2020
define latitude, longitude, altitude, and a datetime object, MELODIES MONET may be able
2121
to directly read the input files.
2222

23-
See the `Expand models <https://github.com/NOAA-CSL/MELODIES-MONET/projects/8>`_
23+
See the `Expand models in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
2424
project on GitHub to learn about current and future development.
2525

2626
Supported Observations
@@ -41,7 +41,7 @@ Surface
4141
* `ISD <https://www.ncei.noaa.gov/products/land-based-station/integrated-surface-database>`_
4242
(in MONET, coming soon to MELODIES MONET)
4343

44-
See the `Expand Surface Observations <https://github.com/NOAA-CSL/MELODIES-MONET/projects/7>`_
44+
See the `Expand Surface Observations in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
4545
project on GitHub to learn about current and future development.
4646

4747
.. note::
@@ -55,11 +55,11 @@ Aircraft (under development)
5555
* `FIREX-AQ <https://csl.noaa.gov/projects/firex-aq/>`_ (under development)
5656
* `ATom <https://espo.nasa.gov/atom/content/ATom>`_ (under development)
5757

58-
See the `Incorporate Aircraft Evaluation <https://github.com/NOAA-CSL/MELODIES-MONET/projects/4>`_
58+
See the `Incorporate Aircraft Evaluation in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
5959
project on GitHub to learn about current and future development.
6060

6161
Satellite (under development)
6262
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6363

64-
See the `Incorporate Satellite Evaluation <https://github.com/NOAA-CSL/MELODIES-MONET/projects/6>`_
64+
See the `Incorporate Satellite Evaluation in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
6565
project on GitHub to learn about current and future development.

docs/users_guide/supported_diagnostics.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Supported Diagnositcs
1+
Supported Diagnostics
22
=====================
33

44
Supported data analysis options in MELODIES MONET are explained below.

docs/users_guide/supported_plots.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Model to Model Comparisons
55
--------------------------
66
Under development.
77

8-
See the `Spatial Verification <https://github.com/NOAA-CSL/MELODIES-MONET/projects/3>`_
8+
See the `Spatial Verification in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
99
project on GitHub to learn about current and future development.
1010

1111
Model to Observation Comparisons
@@ -66,19 +66,19 @@ Surface Evaluation
6666

6767
**Critical Success Index** Plot of the Critical Success Index, as commonly used in Forecast evaluation.
6868

69-
See the `Expand Surface Observations <https://github.com/NOAA-CSL/MELODIES-MONET/projects/7>`_
69+
See the `Expand Surface Observations in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
7070
project on GitHub to learn about current and future development.
7171

7272
Aircraft Evaluation
7373
^^^^^^^^^^^^^^^^^^^
7474
Under development.
7575

76-
See the `Incorporate Aircraft Evaluation <https://github.com/NOAA-CSL/MELODIES-MONET/projects/4>`_
76+
See the `Incorporate Aircraft Evaluation in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
7777
project on GitHub to learn about current and future development.
7878

7979
Satellite Evaluation
8080
^^^^^^^^^^^^^^^^^^^^
8181
Under development.
8282

83-
See the `Incorporate Satellite Evaluation <https://github.com/NOAA-CSL/MELODIES-MONET/projects/6>`_
83+
See the `Incorporate Satellite Evaluation in MELODIES-MONET <https://github.com/orgs/NOAA-CSL/projects/6>`_
8484
project on GitHub to learn about current and future development.

examples/yaml/control_wrfchem_aircraft_Latestfor_develop_aircraft.yaml

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ plots:
124124
altitude:
125125
oper: "between"
126126
value: [2000,8000] # values are [vmin_y2, vmax_y2]
127+
127128
plot_grp2:
128129
type: 'vertprofile' # plot type
129130
fig_kwargs: # Opt to define figure options
@@ -153,7 +154,7 @@ plots:
153154
fig_kwargs:
154155
figsize: [10, 8]
155156
text_kwargs:
156-
fontsize: 25.
157+
fontsize: 20.
157158
domain_type: ['all']
158159
domain_name: ['CONUS']
159160
data: ['firexaq_wrfchem_v4.2']
@@ -198,7 +199,42 @@ plots:
198199
# Add other seaborn.kdeplot keyword arguments here as needed
199200
vcenter: #0 # Central value for TwoSlopeNorm
200201
extensions: ['min', 'max'] # Extensions for the colorbar
202+
201203
plot_grp5:
204+
type: 'curtain'
205+
fig_kwargs:
206+
figsize: [20,14] #[12, 8]
207+
default_plot_kwargs:
208+
#linewidth: 4.0
209+
markersize: 40.
210+
text_kwargs:
211+
fontsize: 25 #18
212+
fontweight: 'bold'
213+
labelsize: 16
214+
domain_type: ['all']
215+
domain_name: ['CONUS']
216+
data: ['firexaq_wrfchem_v4.2','firexaq_wrfchem_v4.2_test']
217+
data_proc:
218+
rem_obs_nan: True
219+
set_axis: True
220+
altitude_variable: 'altitude'
221+
##To use a custom Matplotlib colormap, set “color_map_custom”=True and specify “colors” and "color_levels" like the example below. To use a standard Matplotlib colormap, set “color_map_custom” = False and specify a “color_map”:
222+
color_map_custom: True #False
223+
colors: ["#ff8cff", "#dd6ff2", "#bb52e5", "#9935d8", "#7718cb",
224+
"#0000bb", "#002ccc", "#0058dd", "#0084ee", "#00afff",
225+
"#00ebff", "#27ffd7", "#63ff9b", "#a3ff5b", "#d3ff2b",
226+
"#ffff00", "#ffcf00", "#ff9f00", "#ff6f00", "#ff3f00",
227+
"#ff0000", "#d8000f", "#b2001f", "#8c002f", "#66003f",
228+
"#343434", "#606060", "#8c8c8c", "#b8b8b8", "#e4e4e4"] # Example gradient
229+
color_levels: 30 # Define the number of distinct colors in the color bar (see te numbers of colors in 'colors' key above is matching)
230+
#color_map: 'Spectral_r' #'jet' # This can be set instead of color_map_custom, color_levels and color_levels to set a colormap defined in matplotlob.
231+
vmin: 50 #in hPa #5000 #120000 #Pressure in Pa #0 #Optional (y-axis limits)
232+
vmax: 1200 # in hPa #120000 #5000 # Optional #need to be edited as per min and max altitude (i.e., vmin and vmax)
233+
num_levels: 100 # Number of vertical levels for interpolation
234+
interval: 100 #hPa #10000 #Pa # Y-axis tick interval in Pa (e.g., ticks every 10,000 Pa)
235+
pressure_units: 'hPa' #'Pa' (units for y-axis)
236+
237+
plot_grp6:
202238
type: 'taylor' # plot type
203239
fig_kwargs: #Opt to define figure options
204240
figsize: [8,8] # figure size if multiple plots
@@ -213,7 +249,8 @@ plots:
213249
data_proc:
214250
rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN.
215251
set_axis: True #If select True, add ty_scale for each variable in obs.
216-
plot_grp6:
252+
253+
plot_grp7:
217254
type: 'boxplot' # plot type
218255
fig_kwargs: #Opt to define figure options
219256
figsize: [8, 6] # figure size
@@ -225,6 +262,7 @@ plots:
225262
data_proc:
226263
rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN.
227264
set_axis: False #If select True, add vmin_plot and vmax_plot for each variable in obs.
265+
228266
stats:
229267
#Stats require positive numbers, so if you want to calculate temperature use Kelvin!
230268
#Wind direction has special calculations for AirNow if obs name is 'WD'

examples/yaml/control_wrfchem_aircraft_Latestfor_develop_aircraft_testmultiplemodelgroups.yaml

Lines changed: 58 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
analysis:
77
start_time: '2019-09-05-12:00:00' #UTC
88
end_time: '2019-09-06-00:00:00' #UTC
9-
output_dir: /wrk/qrasool/output_testaircraft_PR189_uptoviolin_multiplemodels #/wrk/charkins/melodies_monet/NOAA_CSL_main/test_pull_189_aircraft/output #/wrk/charkins/melodies_monet/aircraft/analysis #Opt if not specified plots stored in code directory.
9+
output_dir: /wrk/qrasool/output_testaircraft_PR189_uptoviolin_multiplemodels_racmesrlvcpFTPnew ##/wrk/qrasool/output_testaircraft_PR189_uptoviolin_multiplemodels #/wrk/charkins/melodies_monet/NOAA_CSL_main/test_pull_189_aircraft/output #/wrk/charkins/melodies_monet/aircraft/analysis #Opt if not specified plots stored in code directory.
1010
debug: True
1111
model:
1212
wrfchem_v4.2: # model label
1313
# files: /wrk/d2/rschwantes/wrf/firex_mech/qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/*
14-
files: /wrk/qrasool/firex_mech_qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/* #/wrk/d2/rschwantes/wrf/firex_mech/qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/*
14+
files: /wrk/qrasool/FIREX20190905wrfout_Newftp2024/racm_esrl_vcp/* #/wrk/d2/rschwantes/wrf/firex_mech/racm_esrl_vcp/* (above path same as this) ##/wrk/qrasool/firex_mech_qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/* #/wrk/d2/rschwantes/wrf/firex_mech/qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/*
1515
mod_type: 'wrfchem'
1616
mod_kwargs:
1717
mech: 'racm_esrl_vcp'
@@ -25,8 +25,8 @@ model:
2525
variables:
2626
'pres_pa_mid':
2727
rename: pressure_model # name to convert this variable to, use 'pressure_model' for aircraft obs
28-
unit_scale: 1 #Opt Scaling factor
29-
unit_scale_method: '*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/'
28+
unit_scale: 100 #1 #Opt Scaling factor
29+
unit_scale_method: '/' #convert to hPa (1 hPa=100 Pa) #'*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/'
3030
'temperature_k':
3131
rename: temp_model # name to convert this variable to
3232
unit_scale: 1 #Opt Scaling factor
@@ -38,7 +38,7 @@ model:
3838
linestyle: ':'
3939
wrfchem_v4.2_test: # model label
4040
# files: /wrk/d2/rschwantes/wrf/firex_mech/qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/*
41-
files: /wrk/qrasool/firex_mech_qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/* #/wrk/d2/rschwantes/wrf/firex_mech/qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/*
41+
files: /wrk/qrasool/FIREX20190905wrfout_Newftp2024/racm_esrl_vcp/* ##/wrk/qrasool/firex_mech_qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/* #/wrk/d2/rschwantes/wrf/firex_mech/qzhu/run_CONUS_fv19_BEIS_1.0xISO_RACM_v4.2.2_racm_berk_vcp_noI_phot_soa/0905/*
4242
mod_type: 'wrfchem'
4343
mod_kwargs:
4444
mech: 'racm_esrl_vcp'
@@ -52,8 +52,8 @@ model:
5252
variables:
5353
'pres_pa_mid':
5454
rename: pressure_model # name to convert this variable to, use 'pressure_model' for aircraft obs
55-
unit_scale: 1 #Opt Scaling factor
56-
unit_scale_method: '*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/'
55+
unit_scale: 100 #1 #Opt Scaling factor
56+
unit_scale_method: '/' #convert to hPa (1 hPa=100 Pa) #'*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/'
5757
'temperature_k':
5858
rename: temp_model # name to convert this variable to
5959
unit_scale: 1 #Opt Scaling factor
@@ -86,8 +86,8 @@ obs:
8686
LLOD_value: -888888 # Opt Set this value to LLOD_setvalue
8787
LLOD_setvalue: 0.0 # Opt Set LLOD_value=LLOD_setvalue, applied AFTER unit_scale and obs_unit
8888
ylabel_plot: 'Ozone (ppbv)'
89-
vmin_plot: 15.0 #Opt Min for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
90-
vmax_plot: 55.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
89+
vmin_plot: 0 #15.0 #Opt Min for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
90+
vmax_plot: 100 #55.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
9191
vdiff_plot: 20.0 #Opt +/- range to use in bias plots. To apply to a plot, change restrict_yaxis = True.
9292
# nlevels_plot: 21 #Opt number of levels used in colorbar for contourf plot.
9393
'NO_CL_RYERSON':
@@ -96,7 +96,7 @@ obs:
9696
LLOD_setvalue: 0.0 # Opt Set LLOD_value=LLOD_setvalue, applied AFTER unit_scale and obs_unit
9797
ylabel_plot: 'NO (ppbv)' #Optional to set ylabel so can include units and/or instr etc.
9898
vmin_plot: 0.0 #Opt Min for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
99-
vmax_plot: 20.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
99+
vmax_plot: 1 #20.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
100100
vdiff_plot: 15.0 #Opt +/- range to use in bias plots. To apply to a plot, change restrict_yaxis = True.
101101
nlevels_plot: 21 #Opt number of levels used in colorbar for contourf plot.
102102
'NO2_CL_RYERSON':
@@ -105,7 +105,7 @@ obs:
105105
LLOD_setvalue: 0.0 # Opt Set LLOD_value=LLOD_setvalue, applied AFTER unit_scale and obs_unit
106106
ylabel_plot: 'NO2 (ppbv)' #Optional to set ylabel so can include units and/or instr etc.
107107
vmin_plot: 0.0 #Opt Min for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
108-
vmax_plot: 20.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
108+
vmax_plot: 1 #20.0 #Opt Max for y-axis during plotting. To apply to a plot, change restrict_yaxis = True.
109109
vdiff_plot: 15.0 #Opt +/- range to use in bias plots. To apply to a plot, change restrict_yaxis = True.
110110
nlevels_plot: 21 #Opt number of levels used in colorbar for contourf plot.
111111
'Latitude_YANG':
@@ -118,7 +118,7 @@ obs:
118118
unit_scale_method: '*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/'
119119
'P_BUI':
120120
rename: pressure_obs # name to convert this variable to
121-
unit_scale: 100 #Opt Scaling factor
121+
unit_scale: 1 #remain in hPa #100 # hpa to Pa #Opt Scaling factor
122122
unit_scale_method: '*' #Opt Multiply = '*' , Add = '+', subtract = '-', divide = '/'
123123
'MSL_GPS_Altitude_YANG':
124124
rename: altitude # name to convert this variable to
@@ -157,10 +157,11 @@ plots:
157157
color: g
158158
altitude_unit: m
159159
altitude_scaling_factor: 1
160-
filter_dict: #Default is min and max if filter_dict doesn't define the options below (or if they are commented out)
161-
altitude:
162-
oper: "between"
163-
value: [2000,8000] # values are [vmin_y2, vmax_y2]
160+
#filter_dict: #Default is min and max if filter_dict doesn't define the options below (or if they are commented out)
161+
# altitude:
162+
# oper: "between"
163+
# value: [2000,8000] # values are [vmin_y2, vmax_y2]
164+
164165
plot_grp2:
165166
type: 'vertprofile' # plot type
166167
fig_kwargs: # Opt to define figure options
@@ -190,14 +191,13 @@ plots:
190191
fig_kwargs:
191192
figsize: [10, 8]
192193
text_kwargs:
193-
fontsize: 25.
194+
fontsize: 20.
194195
domain_type: ['all']
195196
domain_name: ['CONUS']
196197
data: ['firexaq_wrfchem_v4.2','firexaq_wrfchem_v4.2_test']
197198
data_proc:
198199
rem_obs_nan: True
199200
set_axis: False
200-
201201

202202
plot_grp4:
203203
type: 'scatter_density'
@@ -235,7 +235,42 @@ plots:
235235
# Add other seaborn.kdeplot keyword arguments here as needed
236236
vcenter: #0 # Central value for TwoSlopeNorm
237237
extensions: ['min', 'max'] # Extensions for the colorbar
238+
238239
plot_grp5:
240+
type: 'curtain'
241+
fig_kwargs:
242+
figsize: [20,14] #[12, 8]
243+
default_plot_kwargs:
244+
#linewidth: 4.0
245+
markersize: 40.
246+
text_kwargs:
247+
fontsize: 25 #18
248+
fontweight: 'bold'
249+
labelsize: 16
250+
domain_type: ['all']
251+
domain_name: ['CONUS']
252+
data: ['firexaq_wrfchem_v4.2','firexaq_wrfchem_v4.2_test']
253+
data_proc:
254+
rem_obs_nan: True
255+
set_axis: True
256+
altitude_variable: 'altitude'
257+
##To use a custom Matplotlib colormap, set “color_map_custom”=True and specify “colors” and "color_levels" like the example below. To use a standard Matplotlib colormap, set “color_map_custom” = False and specify a “color_map”:
258+
color_map_custom: True #False
259+
colors: ["#ff8cff", "#dd6ff2", "#bb52e5", "#9935d8", "#7718cb",
260+
"#0000bb", "#002ccc", "#0058dd", "#0084ee", "#00afff",
261+
"#00ebff", "#27ffd7", "#63ff9b", "#a3ff5b", "#d3ff2b",
262+
"#ffff00", "#ffcf00", "#ff9f00", "#ff6f00", "#ff3f00",
263+
"#ff0000", "#d8000f", "#b2001f", "#8c002f", "#66003f",
264+
"#343434", "#606060", "#8c8c8c", "#b8b8b8", "#e4e4e4"] # Example gradient
265+
color_levels: 30 # Define the number of distinct colors in the color bar (see te numbers of colors in 'colors' key above is matching)
266+
#color_map: 'Spectral_r' #'jet' # This can be set instead of color_map_custom, color_levels and color_levels to set a colormap defined in matplotlob.
267+
vmin: 50 #in hPa #5000 #120000 #Pressure in Pa #0 #Optional (y-axis limits)
268+
vmax: 1200 # in hPa #120000 #5000 # Optional #need to be edited as per min and max altitude (i.e., vmin and vmax)
269+
num_levels: 100 # Number of vertical levels for interpolation
270+
interval: 100 #hPa #10000 #Pa # Y-axis tick interval in Pa (e.g., ticks every 10,000 Pa)
271+
pressure_units: 'hPa' #'Pa' (units for y-axis)
272+
273+
plot_grp6:
239274
type: 'taylor' # plot type
240275
fig_kwargs: #Opt to define figure options
241276
figsize: [8,8] # figure size if multiple plots
@@ -250,7 +285,8 @@ plots:
250285
data_proc:
251286
rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN.
252287
set_axis: True #If select True, add ty_scale for each variable in obs.
253-
plot_grp6:
288+
289+
plot_grp7:
254290
type: 'boxplot' # plot type
255291
fig_kwargs: #Opt to define figure options
256292
figsize: [8, 6] # figure size
@@ -262,6 +298,8 @@ plots:
262298
data_proc:
263299
rem_obs_nan: True # True: Remove all points where model or obs variable is NaN. False: Remove only points where model variable is NaN.
264300
set_axis: False #If select True, add vmin_plot and vmax_plot for each variable in obs.
301+
302+
265303
stats:
266304
#Stats require positive numbers, so if you want to calculate temperature use Kelvin!
267305
#Wind direction has special calculations for AirNow if obs name is 'WD'
@@ -279,4 +317,5 @@ stats:
279317
domain_name: ['CONUS'] #List of domain names. If domain_type = all domain_name is used in plot title.
280318
data: ['firexaq_wrfchem_v4.2','firexaq_wrfchem_v4.2_test'] # make this a list of pairs in obs_model where the obs is the obs label and model is the model_label
281319

320+
282321

0 commit comments

Comments
 (0)