r.ros(1grass)

πŸ’… r.ros β€” the GRASS User's Manual, but make it make sense πŸŽ€

okay so bestie, this is r.ros(1grass), a page from the GRASS User's Manual (you know, that whole GRASS GIS thing 🌈). It's a wildfire rate-of-spread generator and honestly? it's iconic. Let's get into it. ✨


✨ NAME ✨

r.ros β€” generates rate of spread raster maps. πŸ”₯

Fr fr though: it generates three, or four raster map layers showing the base (perpendicular) rate of spread (ROS), the maximum (forward) ROS, the direction of the maximum ROS, and optionally the maximum potential spotting distance for fire spread simulation. πŸ¦‹


🌸 KEYWORDS 🌸

raster, fire, spread, rate of spread, hazard, model


🫢 SYNOPSIS 🫢

r.ros
r.ros --help
r.ros model=name  [moisture_1h=name]   [moisture_10h=name]
[moisture_100h=name]  moisture_live=name  [velocity=name]
[direction=name]   [slope=name]   [aspect=name]   [elevation=name]
base_ros=name max_ros=name direction_ros=name  [spotting_distance=name]
[--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]

πŸŽ€ Flags:

  • --overwrite β€” let your output files just overwrite existing files, no hesitation πŸ’…
  • --help β€” print the usage summary (your lil cheat sheet)
  • --verbose β€” verbose module output, she's chatty πŸ’–
  • --quiet β€” quiet module output, she's mysterious πŸŒ™
  • --ui β€” force launching the GUI dialog, for when you want the pretty buttons ✨

πŸ¦‹ Parameters:

  • model=name [required] β€” raster map containing fuel models. It's gotta be the name of an existing raster map layer in your current mapset search path, and it holds the standard fuel models defined by the USDA Forest Service. Valid values are 1-13; any other numbers get recognized as barriers by r.ros. (barriers!! 🚧)
  • moisture_1h=name β€” raster map containing the 1-hour fuel moisture (%). Name of an existing raster map layer in your current mapset search path containing the 1-hour (<.25") fuel moisture (percentage content multiplied by 100).
  • moisture_10h=name β€” raster map containing the 10-hour fuel moisture (%). Name of an existing raster map layer in your current mapset search path containing the 10-hour (.25-1") fuel moisture (percentage content multiplied by 100).
  • moisture_100h=name β€” raster map containing the 100-hour fuel moisture (%). Name of an existing raster map layer in your current mapset search path containing the 100-hour (1-3") fuel moisture (percentage content multiplied by 100).
  • moisture_live=name [required] β€” raster map containing live fuel moisture (%). Name of an existing raster map layer in your current mapset search path containing live (herbaceous) fuel moisture (percentage content multiplied by 100). 🌿
  • velocity=name β€” raster map containing midflame wind velocities (ft/min). Name of an existing raster map layer in your current mapset search path containing wind velocities at half of the average flame height (feet/minute). πŸ’¨
  • direction=name β€” name of raster map containing wind directions (degree). Name of an existing raster map layer in your current mapset search path containing wind direction, clockwise from north (degree).
  • slope=name β€” name of raster map containing slope (degree). Name of an existing raster map layer in your current mapset search path containing topographic slope (degree). ⛰️
  • aspect=name β€” raster map containing aspect (degree, CCW from E). Name of an existing raster map layer in your current mapset search path containing topographic aspect, counterclockwise from east (that's the GRASS convention) in degrees.
  • elevation=name β€” raster map containing elevation (m, required for spotting). Name of an existing raster map layer in your current mapset search path containing elevation (meters). This option is required from spotting distance computation (that's when the spotting_distance option is provided). πŸ”οΈ
  • base_ros=name [required] β€” output raster map containing base ROS (cm/min). That's the base (perpendicular) rate of spread (ROS).
  • max_ros=name [required] β€” output raster map containing maximal ROS (cm/min). That's the maximum (forward) rate of spread (ROS).
  • direction_ros=name [required] β€” output raster map containing directions of maximal ROS (degree). That's the direction of the maximal (forward) rate of spread (ROS).
  • spotting_distance=name β€” output raster map containing maximal spotting distance (m). That's the maximal potential spotting distance β€” and heads up, it requires an elevation raster map to be provided. πŸ”­

πŸ’– DESCRIPTION πŸ’–

So. r.ros is part of the wildfire simulation toolset. The preparational steps for the fire simulation are:

  1. calculating the rate of spread (ROS) with r.ros πŸŒ‹
  2. creating the spread map with r.spread πŸ—ΊοΈ

and eventually, the fire path(s) based on starting point(s) are calculated with r.spreadpath. The full trio, the girl group of fire modeling. πŸ‘‘

r.ros is used for fire (wildfire) modeling. The input is fuel model and moisture, and the outputs are rate of spread (ROS) values. The module generates the base ROS value, maximum ROS value, direction of the maximum ROS, and optionally the maximum potential spotting distance of wildfire, for each raster cell in the current geographic region. These three or four raster map layers serve as inputs for the r.spread module, which is the next step in fire simulation. πŸ”₯➑️πŸ”₯

The r.ros module and its two related modules r.spread and r.spreadpath can be used not only for wildfire modeling β€” they can also generally simulate other events where spread of something is involved and elliptical spread is appropriate. Versatile queen. πŸ’…

The calculation of the two ROS values for each raster cell is based on the Fortran code by Pat Andrews (1983) of the Northern Forest Fire Laboratory, USDA Forest Service. The direction of the maximum ROS results from the vector addition of the forward ROS in wind direction and that in upslope direction. πŸ“ The spotting distance, if required, will be calculated by a separate function, spot_dist(), which is based on Lathrop and Xu (in preparation), Chase (1984) and Rothermel (1991). More info on r.ros and r.spread can be found in Xu (1994). πŸ“š

The output parameter is a basename (prefix) for all generated raster maps, and each map gets a unique suffix:

  • .base for the base (perpendicular) ROS (cm/minute)
  • .max for the maximum (forward) ROS (cm/minute)
  • .maxdir for the direction of the maximum ROS, clockwise from north (degree), and optionally
  • .spotdist for the maximum potential spotting distance (meters).

So, if the output parameter is blackforest_ros, r.ros creates blackforest_ros.base, blackforest_ros.max, blackforest_ros.maxdir, and (optionally) blackforest_ros.spotdist raster maps. Cute naming system, honestly. 🌲

If only one or two of the options moisture_1h, moisture_10h, and moisture_100h are given, the module will assign values to the missing option using the formula:

moisture_100h = moisture_10h + 1 = moisture_1h + 2

However, at least one of them should be given. fr fr, don't leave her with nothing. 😭

Options velocity and direction must be both given or both omitted. If none is given, the module will assume a no-wind condition. πŸƒ

Options slope and aspect must also be given together. If none is given, the module will assume a topographically flat condition. And option elevation must be given if the -s (spotting) flag is used. ⚠️


🌈 EXAMPLES 🌈

Assume we have inputs β€” the following generates ROSes and spotting distances:

r.ros -s model=fire_model moisture_1h=1hour_moisture moisture_live=live_moisture \
    velocity=wind_speed direction=wind_direction \
    slope=slope aspect=aspect elevation=elevation output=ros

Look at that. Chef's kiss. 🀌


πŸ‘‘ NOTES πŸ‘‘

  1. r.ros is supposed to be run before running the r.spread module. The combination of these two modules forms a simulation of the spread of wildfires. πŸ”₯
  2. The user should be sure that the inputs to r.ros are in proper units. Periodt. πŸ“
  3. The output units for the base and maximum ROSes are in cm/minute rather than ft/minute, which is due to the fact that a possible zero ft/minute base ROS value and a positive integer ft/minute maximum ROS would result in calculation failure in the r.spread module. As far as the user just uses r.ros together with r.spread, there is no need to concern about these output units. So like… don't stress, she handled it. πŸ’…

πŸ“š REFERENCES πŸ“š

  • Albini, F. A., 1976, Computer-based models of wildland fire behavior: a user's manual, USDA Forest Service, Intermountain Forest and Range Experiment Station, Ogden, Utah.
  • Andrews, P. L., 1986, BEHAVE: fire behavior prediction and fuel modeling system -- BURN subsystem, Part 1, USDA Forest Service, Intermountain Research Station, Gen. Tech. Rep. INT-194, Ogden, Utah.
  • Chase, Carolyn, H., 1984, Spotting distance from wind-driven surface fires -- extensions of equations for pocket calculators, US Forest Service, Res. Note INT-346, Ogden, Utah.
  • Lathrop, Richard G. and Jianping Xu, A geographic information system-based approach for calculating spotting distance. (in preparation)
  • Rothermel, R. E., 1972, A mathematical model for predicting fire spread in wildland fuels, USDA Forest Service, Intermountain Forest and Range Experiment Station, Res. Pap. INT-115, Ogden, Utah.
  • Rothermel, Richard, 1991, Predicting behavior and size of crown fires in the northern Rocky Mountains, US Forest Service, Res. Paper INT-438, Ogden, Utah.
  • Xu, Jianping, 1994, Simulating the spread of wildfires using a geographic information system and remote sensing, Ph. D. Dissertation, Rutgers University, New Brunswick, Jersey (ref).

πŸ”­ SEE ALSO πŸ”­

g.region, r.slope.aspect, r.spread, r.spreadpath

Sample data download: firedemo.sh (run this script within the "Fire simulation data set" project). 🎁


πŸ’œ AUTHOR πŸ’œ

Jianping Xu, Center for Remote Sensing and Spatial Analysis, Rutgers University. 🫢


⭐ SOURCE CODE ⭐

Available at: r.ros source code (history)

Latest change: Monday Feb 09 18:47:00 2026 in commit: 8cec756bc3c21c1086ba7c09dfda94b6a0e82f04

Main index | Raster index | Topics index | Keywords index | Graphical index | Full index

Β© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual


and that's the whole page bestie!! πŸŽ€ go forth and simulate some fire spread, you absolute icon. this was r.ros(1grass) from GRASS 8.5.0, last touched Monday Feb 09 18:47:00 2026 (commit 8cec756bc3c21c1086ba7c09dfda94b6a0e82f04), Β© 2003-2026 the GRASS Development Team. slay, stay hydrated, and don't forget your units πŸ’–βœ¨πŸ”₯

πŸ“¦ where this page comes from