GridFire is a raster-based fire spread and severity model that may be used for both static and dynamic calculations of various standard fire behavior metrics across a landscape. For inputs, it requires a stack of co-registered raster maps for your area of interest as well as a set of scalar values which may be input via a configuration file. These inputs are listed in the following table:
Value | Units | Type |
---|---|---|
max-runtime | minutes | double |
cell-size | feet | double |
elevation-matrix | feet | core.matrix 2D double array |
slope-matrix | vertical feet/horizontal feet | core.matrix 2D double array |
aspect-matrix | degrees clockwise from north | core.matrix 2D double array |
fuel-model-matrix | fuel model numbers 1-256 | core.matrix 2D double array |
canopy-height-matrix | feet | core.matrix 2D double array |
canopy-base-height-matrix | feet | core.matrix 2D double array |
crown-bulk-density-matrix | lb/ft3 | core.matrix 2D double array |
canopy-cover-matrix | 0-100 | core.matrix 2D double array |
wind-speed-20ft | miles/hour | double |
wind-from-direction | degrees clockwise from North | double |
fuel-moisture | % | map of doubles per fuel size class |
foliar-moisture | % | double |
ellipse-adjustment-factor |
|
double |
initial-ignition-site | point represented as [row col] | vector |
In this mode, GridFire can be used to calculate full coverage maps of the following fire behavior metrics given a fixed set of weather conditions:
Value | Units | Type |
---|---|---|
max-rate-of-spread | feet/min | core.matrix 2D double array |
max-direction-of-spread | feet/min | core.matrix 2D double array |
fire-type | category 0-3 (see below) | core.matrix 2D double array |
flame-length | feet | core.matrix 2D double array |
fire-line-intensity | Btu/ft/s | core.matrix 2D double array |
wind-adjustment-factor | percentage (0-1) | core.matrix 2D double array |
The Fire Type categories are as follows:
- Non-burnable
- Surface Fire
- Passive Crown Fire
- Active Crown Fire
In this mode, GridFire may be asked to simulate individual ignition events and calculate their size and severity after a fixed amount of time (e.g., a 1 hour fire event). These simulation outputs are listed in the following table.
Value | Units | Type |
---|---|---|
global-clock | minutes | double |
initial-ignition-site | point represented as [row col] | vector |
ignited-cells | set of points represented as [row col] | set |
fire-spread-matrix | percent heated (0-1) | core.matrix 2D double array |
flame-length-matrix | feet | core.matrix 2D double array |
fire-line-intensity-matrix | Btu/ft/s | core.matrix 2D double array |
GridFire has been coded as a literate program (https://en.wikipedia.org/wiki/Literate_programming) using Emacs’ org-mode (http://orgmode.org/worg/org-contrib/babel/). Full documentation of the current system can always be found in org/GridFire.org and org/GridFire.pdf in this repository.
The beginnings of a REPL-driven development setup are in `dev/user.clj`. After installing http://www.clojure.org and https://leiningen.org/, and other dependencies – on OS X for example,
brew install clojure leiningen postgresql postgis
start postgres with
./pginit/run_db.sh
and start a REPL with
lein repl
While the REPL is most effectively used with an editor integration such as https://cider.readthedocs.io/en/latest/, there is a function included to immediately verify the REPL is setup
user=> (startup-health-check)
This function runs simulations and writes output files to the project root directory.
The simulations draw input data from the postgres database.
startup-health-check
populates the input database by default and so is expected
to be evaluated once in default mode per ./pginit/run_db.sh
run.
Use (startup-health-check :skip-init true)
in order to run the simulations
without restarting the database.
Authors:
- Gary W. Johnson
- David S. Saah
- Max Moritz
Emails:
Copyright © 2011-2016 Spatial Informatics Group, LLC.
GridFire is distributed by Spatial Informatics Group, LLC. under the GNU General Public License version 3.0 (GPLv3) https://www.gnu.org/licenses/gpl.html.