2.9. SRW Smoke & Dust (SRW-SD) Features
This chapter provides instructions for running an example six-hour forecast for July 22, 2019 at 0z using SRW Smoke & Dust (SRW-SD) features. These features have been merged into the SRW App from the UFS WM. This experimental forecast uses RAP data for ICs and LBCs, the RRFS_CONUS_3km
predefined grid, and the FV3_HRRR_gf
physics suite. This physics suite is similar to the NOAA operational HRRR v4 suite (Dowell et al., 2022), with the addition of the Grell-Freitas deep convective parameterization. Scientific documentation for the HRRR_gf suite and technical documentation are available with the CCPP v7.0.0 release but may differ slightly from the version available in the SRW App.
Note
Although this chapter is the primary documentation resource for running the SRW-SD configuration, users may need to refer to Chapter 2.3 and Chapter 2.4 for additional information on building and running the SRW App, respectively.
2.9.1. Quick Start Guide (SRW-SD)
2.9.1.1. Build the SRW & Load the srw_app
Environment
Please refer to Building and Running the UFS SRW Application (quick build/run) or Building the SRW App for step-by-step build instructions.
2.9.1.2. Configure an Experiment
Users will need to configure their experiment by setting parameters in the config.yaml
file. To start, users can copy a default experiment setting into config.yaml
:
cd /path/to/ufs-srweather-app/ush
cp config.smoke_dust.yaml config.yaml
Users will need to change the ACCOUNT
variable in config.yaml
to an account that they have access to. They will also need to indicate which MACHINE
they are working on. Users may also wish to adjust other experiment settings. For more information on each task and variable, see Workflow Parameters: Configuring the Workflow in config.yaml and config_defaults.yaml. For smoke/dust specific parameters please see Smoke and Dust Configuration Parameters.
In addition to the UFS SRW fixed files, additional data files are required to run the smoke and dust experiment:
fix_smoke
: Contains forecast grids, regridding weights, a vegetation map, and dummy emissions (used when no in situ emission files are available).
data_smoke_dust/RAVE_fire
: Emission estimates and Fire Radiative Power (FRP) observations derived from RAVE satellite observations. Additional RAVE data may be downloaded here for the last six months: https://www.ospo.noaa.gov/pub/Blended/RAVE/RAVE-HrlyEmiss-3km/. Note that SRW-SD uses 3-kilometer RAVE data files.
When using the basic config.smoke_dust.yaml
experiment, the usual pre-processing and coldstart forecast tasks are used, because "parm/wflow/prep.yaml"
appears in the list of workflow files in the rocoto: tasks: taskgroups:
section of config.yaml
(see Section 2.22 for task descriptions).
Smoke simulations can be performed in three ways:
Current-day emissions: Using emissions estimated from satellite observations on the same day as the simulation (
EBB_DCYCLE=1, PERSISTENCE=false
).Traditional persistence: Using biomass burning emissions estimated from satellite observations of the previous day (a method commonly used in most smoke forecasting systems,
EBB_DCYCLE=1, PERSISTENCE=true
).Modulated persistence (considered experimental in the SRW App): The approach currently used by the RRFS-Smoke model, where emissions are forecasted based on a fire weather index that dictates the diurnal cycle (
EBB_DCYCLE=2, PERSISTENCE=true
).
2.9.1.3. Predefined Grid Support in SRW-SD
SRW-SD supports these predefined grids:
RRFS_CONUS_3km
RRFS_CONUS_13km
RRFS_CONUS_25km
RRFS_NA_13km
RRFS_NA_3km
Please see Limited Area Model (LAM) Grids: Predefined and User-Generated Options for more information on predefined grids in the SRW. User-generated grids are not supported with SRW-SD.
Note
North American ICs and LBCs are not staged for the predefined SRW-SD experiment.
2.9.1.4. Additional SRW-SD Tasks
Compared to the typical SRW App workflow, the SRW-SD has slightly different tasks for pre-processing. As in the SRW App default workflow, the SRW-SD workflow uses the preprocessing tasks from prep.yaml
, but it adds smoke-and-dust-specific tasks from smoke_dust.yaml
.
The new tasks for SRW-SD are shown in Table 2.24.
Task Name |
Description |
File |
---|---|---|
|
Generates the input data file for smoke and dust to be used in the UFS Weather Model. |
|
|
Adds the smoke and dust fields to the ICs file from the restart file in the previous cycle. |
|
The Python utilities listed in Table 2.25 are used to perform data processing and calculations required for the SRW-SD forecast.
Script |
Description |
---|---|
|
Transfers smoke and dust-related variables from FV3 tracer outputs to GFS initial conditions. |
|
Calculates fire behavior and emission variables, creating input for the smoke and dust tracers. |
Fig. 2.32 Overview of the major steps occurring in the smoke_dust
task.
Fig. 2.33 Deep dive into the sequence of operations occurring in generate_emissions.py
.
Fig. 2.34 Overview of the major steps occurring in the prepstart
task.
Unit tests can be found in tests/test_python/test_smoke_dust
. The SRW-SD Python utilities run under their own Anaconda environment similar to the srw_app
environment: sd_environment.yml
.
2.9.1.5. Generate and Run the Workflow
Please refer to Building and Running the UFS SRW Application (quick build/run) or Building the SRW App for step-by-step instructions on how to build and run the workflow.
2.9.1.6. Experiment Output
The workflow run is complete when all tasks display a “SUCCEEDED” message. If everything goes smoothly, users will eventually see a workflow status table similar to the following:
$ rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10
CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION
==============================================================================================
201907220000 make_grid 18984137 SUCCEEDED 0 1 29.0
201907220000 make_orog 18984148 SUCCEEDED 0 1 419.0
201907220000 make_sfc_climo 18984184 SUCCEEDED 0 1 82.0
201907220000 smoke_dust 18984186 SUCCEEDED 0 1 243.0
201907220000 prepstart 18984324 SUCCEEDED 0 1 24.0
201907220000 get_extrn_ics 18984138 SUCCEEDED 0 1 11.0
201907220000 get_extrn_lbcs 18984149 SUCCEEDED 0 1 12.0
201907220000 make_ics_mem000 18984185 SUCCEEDED 0 1 157.0
201907220000 make_lbcs_mem000 18984187 SUCCEEDED 0 1 85.0
201907220000 run_forecast_mem000 18984328 SUCCEEDED 0 1 6199.0
201907220000 run_post_mem000_f000 18988282 SUCCEEDED 0 1 212.0
201907220000 run_post_mem000_f001 18988283 SUCCEEDED 0 1 247.0
201907220000 run_post_mem000_f002 18988284 SUCCEEDED 0 1 258.0
201907220000 run_post_mem000_f003 18988285 SUCCEEDED 0 1 271.0
201907220000 run_post_mem000_f004 18988286 SUCCEEDED 0 1 284.0
201907220000 run_post_mem000_f005 18988287 SUCCEEDED 0 1 286.0
201907220000 run_post_mem000_f006 18988288 SUCCEEDED 0 1 292.0
==============================================================================================
201907220600 smoke_dust 18988289 SUCCEEDED 0 1 225.0
201907220600 prepstart 18988302 SUCCEEDED 0 1 112.0
201907220600 get_extrn_ics 18984150 SUCCEEDED 0 1 10.0
201907220600 get_extrn_lbcs 18984151 SUCCEEDED 0 1 14.0
201907220600 make_ics_mem000 18984188 SUCCEEDED 0 1 152.0
201907220600 make_lbcs_mem000 18984189 SUCCEEDED 0 1 79.0
201907220600 run_forecast_mem000 18988311 SUCCEEDED 0 1 6191.0
201907220600 run_post_mem000_f000 18989105 SUCCEEDED 0 1 212.0
201907220600 run_post_mem000_f001 18989106 SUCCEEDED 0 1 283.0
201907220600 run_post_mem000_f002 18989107 SUCCEEDED 0 1 287.0
201907220600 run_post_mem000_f003 18989108 SUCCEEDED 0 1 284.0
201907220600 run_post_mem000_f004 18989109 SUCCEEDED 0 1 289.0
201907220600 run_post_mem000_f005 18989110 SUCCEEDED 0 1 294.0
201907220600 run_post_mem000_f006 18989111 SUCCEEDED 0 1 294.0
If something goes wrong, users can check the log files, which are located by default in expt_dirs/smoke_dust_conus3km/logs
. Post-processed smoke/dust output can be found in expt_dirs/smoke_dust_conus3km/<cycle>/postprd/smoke_dust.*.grib2
. Output can also be found in the netCDF physcis/dynamics files: expt_dirs/smoke_dust_conus3km/<cycle>/<dynf|phyf><tile>.nc
.
Grib2 name |
NetCDF name |
Definition |
Units |
---|---|---|---|
AEMFLX |
ebu_smoke (phyf file) |
Smoke Emissions |
kg/m^2/s |
WFIREPOT (or var discipline=2 master_table=2 parmcat=4 parm=26) |
hwp (phyf file) |
Hourly wildfire potential index |
unitless |
COLMD:entire atmosphere (considered as a single layer):anl:chemical=Particulate Organic Matter Dry |
NA |
Vertically integrated smoke |
kg/m^2 |
MASSDEN:8 m above ground:anl:chemical=Particulate Organic Matter Dry:aerosol_size <2.5e-06 |
smoke (dynf file) |
Smoke (PM2.5) |
kg/m^3 |
MASSDEN:8 m above ground:anl:chemical=Dust Dry:aerosol_size <2.5e-06 |
dust (dynf file) |
Fine dust |
kg/m^3 |
MASSDEN:65 hybrid level:anl:aerosol=Dust dry:aerosol_size >=2.5e-06,<1e-05 |
coarsepm (dynf file) |
Coarse dust |
kg/m^3 |
AOTK |
ext550 |
AOD |
unitless |