-
Notifications
You must be signed in to change notification settings - Fork 3
Image Generation
Plots in obs-monitor are created in a three step process.
- The user provides a plot yaml file as input. This tells obs-monitor where the data is located and which plot template(s) (described below) are to be used.
- Obs-monitor then expands the requested plot template(s), dynamically inserting the requested date and data information to create temporary yaml files.
- These temporary files then are fed into
eva
which ingests the requested data and generates the plot(s).
The plot process is initiated when the user runs the obs-monitor/driver/runObsMon.sh
script. This script takes 2 arguments (both required) as input:
- -p | --pdate plot date in YYYYMMDDHH format. This is the ending cycle, so a time series is this cycle and n earlier cycles.
- -y | --yaml plot yaml file containing the requested plots (see below)
An example of a comprehensive plot yaml file is obs-monitor/parm/gfs/gfs_plot.yaml
.
The format for the input plot yaml file is a header containing:
- model model or experiment name
- cycle_interval in hours
- data location of data files
The plot yaml file must then include one or more of these categories:
- satellites - radiance and ozone data sources
- minimization - gsi minimization data
- observation - conventional observational data
Each of the categories has its own requirements for format/contents. Please see the example obs-monitor/parm/gfs/gfs_plot.yaml
for those formats. Note that precise indentation is a requirement of yaml.
The input yaml file will contain a plot_list
dictionary which must include a plot name. This name corresponds to the available plot templates located in obs-monitor/parm/templates
. Note that the name in the yaml file will be all in lower case, space delineated, and with no file extension, while the actual template name is in initial lower case, then camel case with the file extension (i.e. min summary
refers to minSummary.yaml
). Again please see obs-monitor/parm/gfs/gfs_plot.yaml
for additional examples of this usage.
plot_list:
plot: min summary
The header of the input plot yaml file must include a data entry. The data directory structure may be in one of these formats:
Obs-Mon format:
Obs-Mon format is a single directory containing one or more of these subdirectories:
- con_data for conventional data
- min_data for GSI minimization data
- ozn_data for ozone data
- rad_data for radiance data
The data subdirectories need to contain both the legacy data files and the associated control (*.ctl) files. All files should be unzipped and un-tarred.
Example yaml entry for obs-mon formatted data:
data: /scratch1/NCEPDEV/da/Edward.Safford/noscrub/test_data/gfs
Global-Workflow:
Plotting directly from experimental created using the global-workflow repo. Note though that conventional data is not extracted by global-workflow so conventional plots should not be requested in your input yaml file.
Example yaml entry for global-workflow formatted data:
data: /scratch1/NCEPDEV/da/Edward.Safford/noscrub/test_data/physics_taper
Operational output:
Plotting is possible using the output of the gfs model on wcoss2. Note that conventional data is not extracted by the operational gfs so the plot yaml file should not specify any conventional data plots. Only about 10 days worth of data is normally available on wcoss2; expectations for time series plots should be set accordingly.
Example yaml entry for operational formatted data source:
data: /lfs/h1/ops/prod/com/gfs/v16.3
- Upon completion of the obsmon plot job the obsmon cleanup job will move all generated image files to the user's
ptmp/obsmon
directory (which will be created if it does not exist). This job also removes the workspace directorystmp/obsmon
. - Log files will be placed in the user's
ptmp/OM_logs/${model}
directory.
NOTE: stmp and ptmp definitions are located in Obs-Monitor/parm/OM_config
.
Future updates will allow the specified output location to be included in the plot yaml file.