Difference between revisions of "Vertical wind interpolation"

From openwfm
Jump to navigation Jump to search
(options)
Line 39: Line 39:
 
===Interpolation to different heights on the fire mesh===
 
===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. These 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.
+
The  following group of combinations of options controls the interpolation by the wind reduction factor '''windrf'''; '''fwh''' is not used. These 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 the differences caused by the different ordering of interpolation of atmospheric variables (horizontally and vertically), and by rounding errors.
 
   
 
   
*  '''fire_wind_log_interp'''=1, '''fire_use_windrf'''=2: use the roughness height '''fz0''' from fuel categories,  ignore '''fwh''' and [https://github.com/jbeezley/wrf-fire/blob/e062dbf62b7591e71a486a7c512efd75e48ed9a1/wrfv2_fire/phys/module_fr_sfire_atm.F#L786 set it automatically] to the height that corresponds to the given '''windrf'''.  
+
*  '''fire_wind_log_interp'''=1, '''fire_use_windrf'''=2: use the roughness height '''fz0''' from fuel categories,  ignore '''fwh''' and [https://github.com/jbeezley/wrf-fire/blob/e062dbf62b7591e71a486a7c512efd75e48ed9a1/wrfv2_fire/phys/module_fr_sfire_atm.F#L786 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'''=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'''.
 
*  '''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 combinations of options below control the interpolation by the midflame height '''fwh''', and all three will produce similar results; '''windrf''' is not used.
+
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'''=1, '''fire_use_windrf'''=0: Use the values of '''fwh''' and '''fz0''' as given.  

Revision as of 08:57, 1 August 2011

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 z/z0 need to be known at every point of the fire mesh.

In BEHAVE, the wind is measured at the 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 windrf (Baughman and Albini, 1980).

See Mandel et al. 2011 Sec. 5.2 for more details.

Implementation

In the code, we thus have two choices:

  1. Interpolate to 6.096m and apply the wind reduction factors. This is much simpler and faster.
  2. 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.

Data input

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, and 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.

Options

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

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.

Supported options and their combinations 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. These 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 the differences caused by the different ordering of interpolation of atmospheric variables (horizontally and vertically), and by rounding errors.

  • 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 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 reseting fwh to the value that corresponds to the same wind reduction factor but with the interpolated z0.

References

  1. 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
  2. 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

Tested with