Vertical wind interpolation
- Back to the WRF-SFIRE user guide.
Vertical log interpolation and wind reduction factors
The wind speed that enters the spread rate formula is found by vertical interpolation to a specified height fwh, sometimes called midflame height, using the ideal logarithmic wind profile: the wind speed at height z is assumed to be proportional to log z/z0, where z0 is the roughness height (clearly, this is the height where the wind speed is zero). The special logarithmic interpolation we use preserves such functions just like linear interpolation preserves linear functions. The numbers fwh and z0 need to be known at every point of the fire mesh.
In BEHAVE, the wind is measured at 20ft (6.096m) and log interpolated to the midflame height. The interpolation is the same as multiplying the wind speed by a given wind reduction factor (Baughman and Albini, 1980), which we denote by windrf.
See Mandel et al. 2011 Sec. 5.2 for more details.
In the code, we thus have two choices:
- Interpolate to 6.096m and apply the wind reduction factors. This is much simpler and faster.
- Interpolate the wind at each point of the fire mesh to the midflame height at that point separately. This is more complicated.
The vertical interpolation is somewhat complicated because of the way how WRF represents the wind speed and the vertical coordinate. In particular, because the altitude of nodes in WRF changes during the run, the number of vertical levels needed for the interpolation is not known in advance.
In WRF, the roughness height z0 is specified by the surface model in land use. This is typically taken from file LANDUSE.TBL. The values of the midflame height fwh, the fuel roughness height fz0, the wind reduction factors windrf for each fuel category, and the BEHAVE height fire_wind_height, are specified in the file namelist.fire as a part of the fuel properties. If these values are not given in the file, the defaults in the code apply.
Note that the roughness height z0 from land use and fz0 will be generally different, and besides they are given on different meshes.
The interpolation mode is controlled by the values of the variables fire_wind_log_interp and fire_use_windrf in the file namelist.input:
fire_wind_log_interp = 1, ! 1 = from fuel categores, 2= roughness piecewise constant from atm, 3=bilinear from atm, 4=on atmosphere mesh fire_use_windrf=2, ! if fire_wind_log_interp.ne.4: 0=ignore wind reduction factors, 1=multiply, 2=use to set fwh, 3=adjust fwh for z0
Supported combinations of the options are listed below. In particular, do not use fire_use_windrf=1, which is for experiments only.
Interpolation to common height and wind reduction factors
- fire_wind_log_interp=4, fire_use_windrf is not used: vertical log interpolation on the atmospheric mesh to fire_wind_height with z0 from land use, the interpolated wind speed is then multiplied by windrf at every fire mesh node. The values of fwh and fz0 are ignored.
Interpolation to different heights on the fire mesh
The following group of combinations of options controls the interpolation by the wind reduction factor windrf; fwh is not used.
- fire_wind_log_interp=1, fire_use_windrf=2: use the roughness height fz0 from fuel categories, ignore fwh and set it automatically to the height that corresponds to the given windrf.
- fire_wind_log_interp=2, fire_use_windrf=2: the same, but using roughness height z0 interpolated from land use as piecewise constant, ignore fz0.
- fire_wind_log_interp=3, fire_use_windrf=2: the same, but using roughness height z0 interpolated from land use as piecewise bilinear, ignore fz0.
The above options will produce similar results as the interpolation to common height and using wind reduction factors; the only difference is from the wind not obeying the log profile exactly. In particular, if the first WRF level is above the fire_wind_height (of 6.096m, which is usually the case), these three option will give the same result as the interpolation on the atmospheric mesh and multiplication by the wind reduction factors, except for slight differences caused by a different technique used for the interpolation of the atmospheric variables, and by rounding errors.
The combinations of options below control the interpolation by the midflame height fwh, and all three will again produce similar results; windrf is not used.
- fire_wind_log_interp=1, fire_use_windrf=0: Use the values of fwh and fz0 as given.
- fire_wind_log_interp=2, fire_use_windrf=3: Interpolate z0 as piecewise constant and adjust fwh for a similar result as with fz0.
- fire_wind_log_interp=3, fire_use_windrf=3: Interpolate z0 as piecewise bilinear and adjust fwh for a similar result as with fz0.
The adjustment of fwh is done by first computing the wind reduction factor when going from fire_wind_height to the given height fwh with the given roughness fz0, then changing fwh to the value that corresponds to the same wind reduction factor but with the interpolated z0.
You can use function vprofile in Matlab (cd em_fire, matlab, help vprofile) to view the resulting wind profiles and the computed value of fwh. See How to visualize vertical profiles from WRF in Matlab for details.
- Robert G. Baughman and Frank A. Albini, Estimating Midflame Windspeeds, Sixth Conference on Fire and Forest Meteorology, Seattle, WA April 22-24, 1980, pp. 88-92 pdf
- Jan Mandel, Jonathan D. Beezley, and Adam K. Kochanski, Coupled atmosphere-wildland fire modeling with WRF 3.3 and SFIRE 2011, Geoscientific Model Development (GMD) 4, 591-610, 2011. doi:10.5194/gmd-4-591-2011