Difference between revisions of "Vertical wind interpolation"
Line 48: | Line 48: | ||
* '''namelist.input: fire_wind_log_interp'''=3, '''fire_use_windrf'''=3: Interpolate '''z0''' as piecewise bilinear and adjust '''fwh''' for a similar result as with '''fz0'''. | * '''namelist.input: 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 | + | The adjustment of '''fwh''' is done by first [https://github.com/jbeezley/wrf-fire/blob/e062dbf62b7591e71a486a7c512efd75e48ed9a1/wrfv2_fire/phys/module_fr_sfire_atm.F#L809 computing] the wind reduction factor when going from '''fire_wind_height''' to the given height '''fwh''' with the given roughness '''fz0''', then [https://github.com/jbeezley/wrf-fire/blob/e062dbf62b7591e71a486a7c512efd75e48ed9a1/wrfv2_fire/phys/module_fr_sfire_atm.F#L809 reseting] '''fwh''' to the value that corresponds to the same wind reduction factor but with the interpolated '''z0'''. |
Use function [https://github.com/jbeezley/wrf-fire/blob/e062dbf62b7591e71a486a7c512efd75e48ed9a1/other/Matlab/vis3d/vprofile.m '''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. | Use function [https://github.com/jbeezley/wrf-fire/blob/e062dbf62b7591e71a486a7c512efd75e48ed9a1/other/Matlab/vis3d/vprofile.m '''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. |
Revision as of 08:42, 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:
- 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.
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.
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
Do not use the value fire_use_windrf=2, it is for experiments only.
Options
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.
- namelist.input: 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.
- namelist.input: 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.
- namelist.input: 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.
- namelist.input: fire_wind_log_interp=1, fire_use_windrf=0: Use the values of fwh and fz0 as given.
- namelist.input: fire_wind_log_interp=2, fire_use_windrf=3: Interpolate z0 as piecewise constant and adjust fwh for a similar result as with fz0.
- namelist.input: 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.
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.
References
- 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