1 Introduction

Environmental issues are a global priority, with wildfires being a classic example, as they are becoming more serious as climate and climate change strongly influence their activity [2, 16], making catastrophic forest fires more likely every year: California, the Amazon, Australia…the list is endless.

Predicting the behaviour of complex environmental systems is an undeniably useful tool for reducing their negative effects, which in some cases are devastating. Mathematical modelling plays a fundamental role. Wildfire modelling is a tool for understanding and predicting fire behaviour, and it can ultimately assist in decision-making in preventing and fighting fires. Improved spatial information technology, advanced computational capabilities and the development of communication technology have exponentially increased the efficiency and applicability of wildfire modelling. The combined use of technological advances and quasi-empirical models has resulted in comprehensive tools for the prediction of wildfire spread, such as FARSITE [15], Prometheus [27], FIREMAP [28], or SFIRE [18], among the most widely applied.

Nevertheless, the rapid increase in computing power allows more complex models to be a real option, so research is focusing on physical-based models. Within this framework, the authors have improved their simplified physical wildfire spread model PhyFire [4, 23], combining it with their high-definition windfield model HDWind [12] to provide an efficient online tool to predict forest fire spread in Spain through the url: http://sinumcc.usal.es.

The PhyFire model is a single-phase simplified 2D physical model based on the fundamental physics of combustion and fire spread, which considers convection and radiation as the main heat transfer mechanisms, taking into account the heat lost by natural convection, the effect of the flame tilt caused by wind or slope, and the influence of fuel moisture content and fuel type. The resulting partial differential equations (PDEs) are solved using efficient numerical and computational tools to obtain a software with levels of efficiency comparable to empirical models.

As wind is one of the factors that most influences wildfire spread, PhyFire can be coupled with the HDWind model. This model provides a high-resolution wind field that adjusts specific wind measurements to local characteristics, such as the slope, the roughness of the terrain and the temperature gradients on the surface. The HDWind model is based on an asymptotic approximation of the Navier-Stokes equations, resulting in a mass-consistent vertical diffusion model capable of providing a 3D wind field by solving only 2D linear equations.

The development of these models, and especially the software necessary to trans- form them into accessible, efficient and useful tools, is based on multidisciplinary collaboration, leading to the development of the online geographic information system (GIS) tool presented here, which allows open access to PhyFire and HDWind models, and which considers the incorporation of new models and tools for several environmental issues.

The outline of the paper is as follows. Section 2 describes the PhyFire model equations, focussing on the latest improvement added to the model, namely, the fire-spotting module. Section 3 briefly summarizes the architecture of the online GIS interface developed to transfer the developed models to the community. Section 4 adds a real case of a wildfire that involved fire-spotting. We finish with the conclusions and acknowledgements.

2 PhyFire Model

PhyFire is a simplified 2D wildfire spread model developed by the Research Group on Numerical Simulation and Scientific Computation (SINUMCC) at the University of Salamanca in Spain. It is based on principles of energy and mass conservation. Although it is a 2D model, it takes into account important 3D factors: the model considers the energy lost in the vertical direction, and the two most important heat transfer mechanisms in wildfires: radiation and convection. Radiation from the flames above the surface takes into account the effect of wind and slope over flame tilt. It is a single-phase model: only the solid phase is considered, with the gaseous phase being parameterized through flame temperature and flame height in a radiation term. The convective term is critical, as wind is one of the most influential factors in a fire spread. Fuel moisture content is also considered by using an enthalpy multivalued operator. The current versions of the PhyFire model equations are detailed in the following subsection, together with the input model variables, model parameters and output variables. A specific subsection is devoted to the introduction of random phenomena, specifically fire-spotting. Finally, certain details about the numerical resolution of the model equations are summarized. This numerical solution is implemented in C++ using the Neptuno++ library, a Finite Element library developed by L. Ferragut [7].

The first version of the PhyFire model was a simple single-phase 2D physical model first published in [8], based on the energy and mass conservation equations, considering only convection and diffusion. Radiation was first incorporated with a local radiation term in [4]; the radiation term was subsequently modified by a non-local radiation term [9], which allows modelling the radiation from the flame above the fuel layer, thereby considering the effect of wind and slope over flame tilt. The influence of moisture content and heat absorption by pyrolysis through the multivalued operator representing the enthalpy has been reported in [10]. The latest improvements have been made after a global sensitivity analysis of the model on both experimental and real examples [22] and [6]. The most important enhancement was the introduction of a flame length sub-model in [6]. Finally, the model’s latest advancement, which is described here, is the addition of a random term for the simulation of fire-spotting. Improvements have also been made to the efficiency of numerical resolution algorithms [14], the adjustment of parameters by simulating real fires [13], and the model’s accessibility and usability through the development of a GIS tool [23].

2.1 Current PhyFire Model Equations

Let S the surface where the fire occurs, with height given by a known function h, whereby

$$\displaystyle \begin{aligned} \begin{array}{ll} S:\;d &\longmapsto \mathbb{R}^{3} \\ (x,y) &\longmapsto (x,y,h(x,y)), \\ \end{array} \end{aligned} $$

where \(d=[0,l_x] \times [0,l_y] \subset \mathbb {R}^{2}\) is the rectangle representing the projection of surface S. The size of the surface S and the study time interval (0, t max) are selected so that the fire does not reach the boundary in time t max, to assume homogeneous boundary conditions to complete the set of PDEs that governs the PhyFire model. The latest version of these non-dimensional PDEs are as follows:

$$\displaystyle \begin{aligned} \begin{array}{rcl} \partial_t e +\beta \mathbf{v}\cdot \boldsymbol{\nabla} e +\alpha u = r + q \quad \mathrm{in}\; S \times (0,t_{\mathrm{max}}), {} \end{array} \end{aligned} $$
(1)
$$\displaystyle \begin{aligned} \begin{array}{rcl} e\in G(u) \quad \mathrm{in}\; S \times (0,t_{\mathrm{max}}), {} \end{array} \end{aligned} $$
(2)
$$\displaystyle \begin{aligned} \begin{array}{rcl} \partial_t c = - g(u) c \quad \mathrm{in}\; S \times (0,t_{\mathrm{max}}), {} \end{array} \end{aligned} $$
(3)

where the unknowns are the following variables defined in S × (0, t max): the dimensionless enthalpy e, the dimensionless solid fuel temperature u, and the solid fuel mass fraction c. The relationship between these dimensionless variables and the corresponding physical quantities is given in Table 1.

Table 1 Dimensionless unknowns and related physical quantities

These physical quantities are the enthalpy E, the solid fuel temperature T, and the fuel load M. Their relationship depends on a reference temperature T , the heat capacity of the solid fuel C and the maximum solid fuel load M 0. The reference temperature T is related to the ambient temperature, measured far enough from the fire front to ensure that T ≥ T , whereby u ≥ 0. The other weather data that feed the PhyFire model are wind direction and intensity given by v, and ambient humidity, which affects the fuel moisture content M v. The heat capacity of the solid fuel C, and maximum solid fuel load M 0, both depend on fuel type, as do all the other input model variables in Table 2, as detailed below.

Table 2 Fuel-type-dependent input variables

Finally, the PhyFire model depends on three model parameters listed in Table 3. These three parameteres are related to the heat transfer terms in (1): α in the natural convection term αu, β in the convective term β v ⋅ e, and a in the radiation term r, and they will be further explained later on in this section.

Table 3 Model parameters

We complete the problem with homogeneous Dirichlet boundary conditions and the following initial conditions,

$$\displaystyle \begin{aligned} \begin{array}{rcl} u(x,y,0)=u_0(x,y)\quad \mathrm{in}\; S {}, \end{array} \end{aligned} $$
(4)
$$\displaystyle \begin{aligned} \begin{array}{rcl} c (x,y,0)=c_0(x,y) \quad \mathrm{in}\; S {}. \end{array} \end{aligned} $$
(5)

representing the source of the fire and initial fuel distribution, including any possible firebreaks.

We should point out that the data for orography (function h(x, y) defining S), solid fuel distribution (initial value of M), and fuel type distribution (in order to spatially define the fuel-type-dependent input variables) are obtained from the cartography generated specifically for each case. This process has been automated by developing the online GIS interface and the necessary cartographic database. Details of this process are explained in Sect. 3.

There now follows an explanation of all the terms in the PhyFire model equations and their relationship with the aforementioned input variables and parameters.

We shall begin by explaining the multivalued Eq. (2) that models the influence of moisture content and depends on the fuel moisture content M v and solid fuel pyrolysis temperature T p. The dimensionless enthalpy e is thus an element of the multivalued maximal monotone operator G defined by

$$\displaystyle \begin{aligned} G(u)= \left\{ \begin{array}{lcr} u& \quad \mbox{ if } \quad &u<u_v, \\ {[}u_v\;,\;u_v+\lambda_v{]}& \mbox{ if } &u=u_v, \\ u+\lambda_v& \mbox{ if } &u_v<u<u_p, \\ {[}u_p+\lambda_v\;,\;\infty{]}& \mbox{ if } &u=u_p, \end{array} \right. \end{aligned} $$
(6)

where u v is the dimensionless evaporation temperature of the water, u p is the dimensionless solid fuel pyrolysis temperature, and λ v is the dimensionless evaporation heat related to the latent heat of water evaporation Λv = 2.25 × 106 (J kg−1) and the fuel moisture content M v (kg of water∕kg of dry fuel),

$$\displaystyle \begin{aligned} \lambda_v= \frac{M_v\Lambda_v}{C T_\infty} \end{aligned} $$
(7)

It should be noted that the multivalued operator does not exactly represent the physical phenomena in the burnt zone because there is no longer any water vapour in the porous medium. This shortcoming is avoided by setting λ v = 0 in the burnt area [10].

Equation (3) represents the loss of solid fuel due to combustion where

$$\displaystyle \begin{aligned} g(u)=\left\{ \begin{array}{lcr} 0&if&u<u_p, \\ \gamma&if&u=u_p, \end{array} \right. \end{aligned} $$
(8)

that is, there is no loss of solid fuel if the temperature is below the pyrolysis temperature, and it remains constant when the temperature of pyrolysis is reached. This constant value is inversely proportional to the solid fuel half-life time t 1∕2, of the combustion of each type of fuel,

$$\displaystyle \begin{aligned} \gamma=\frac{\ln 2 [t]}{t_{1/2}}. \end{aligned} $$
(9)

Finally, we now explain all the terms in the temperature equation, Eq. (1). First, the convective term β v ⋅ e represents the energy convected by the gas pyrolysed through the elementary control volume. The surface wind velocity, v, can either be considered as a constant based on data provided by the meteorological information available, or it can be computed by the wind model HDWind [5, 11, 12], developed by the authors and integrated accordingly in the same online GIS interface as the PhyFire model. The parameter β is a correction factor that is explained in [22]. In sum, as the PhyFire model is a single-phase model (mainly solid-phase), it can be considered a simplification of a gas-solid two-phase model in which the enthalpy transported in the gas phase is retained, and β represents the fraction of transported heat that must be taken into account in Eq. (1). For typical values of the heat capacity for the air and for the fuel (wood), β can be estimated to have an order of magnitude of 10−2 inside the flame, and 10−4 away from the flame.

Second, the zero-order term αu in Eq. (1), represents one of the 3D factors that the PhyFire model takes into account: the energy lost by natural convection in the vertical direction. Parameter α depends on the natural convection coefficient H through the following expression:

$$\displaystyle \begin{aligned} \alpha=\frac{H[t]}{MC} \end{aligned} $$
(10)

where [t] is a time scale.

Third, the non-local radiation term r is another overriding 3D factor that represents the radiation from the flames above the surface where the fire takes place,

$$\displaystyle \begin{aligned} r=\frac{[t]}{MCT_\infty}R \end{aligned} $$
(11)

where R means the incident energy at a point x = (x, y, h(x, y)) ∈ S due to the radiation coming from the flames above the surface, per unit of time and unit of area, reached by adding the contribution of all directions Ω on the hemisphere above the fuel layer,

$$\displaystyle \begin{aligned} R(\mathbf{x})=\int_{\omega=0}^{2\pi} I(\mathbf{x},\boldsymbol{\Omega})\boldsymbol{\Omega}\cdot\mathbf{N}\;d\omega, \end{aligned} $$
(12)

I is the total radiation intensity, that is, the integral overall wavelength of the radiation energy passing through an area per unit of time, per unit of projected area, and per unit of solid angle, ω is the solid angle, and N is the unit normal vector to the surface S.

By omitting scattering following [25], the differential equation describing the total radiation intensity I at any position along a given path p in a grey medium may be written as

$$\displaystyle \begin{aligned} \frac{dI}{dp} + a(p) I(p) = a(p) I_b(p), {} \end{aligned} $$
(13)

where I b is the black body total radiation intensity and is governed by the Stefan-Boltzmann law, corresponding to the integral over all wavelengths of the emissive power of a black body

$$\displaystyle \begin{aligned} I_b = \frac{\sigma}{\pi}T^{4}, {} \end{aligned} $$
(14)

where σ = 5.6699 × 10−8 w m−2 K−4 is the Stefan-Boltzmann constant, and the temperature T reaches the flame temperature denoted by T f. a is the radiation absorption coefficient inside the flame, and our model’s third parameter.

Each incident energy contribution depends on the flame temperature T f and flame length F, considering the flame tilt due to the surface slope and wind. In turn, experimental data from [3] show that the flame length clearly depends on wind speed and surface slope, and obviously on the fuel type. In [6], a global sensitivity analysis shows the advantage of introducing a flame length sub-model in terms of wind speed and surface slope,

$$\displaystyle \begin{aligned} F=(F_H+F_v {|v|}^{1/2})(1+F_s s^2) {} \end{aligned} $$
(15)

where F H is an independent flame length parameter, F v is a wind correction factor, F s is a slope correction factor, |v| is the wind speed, and s represents the slope at each point on the surface S. The first factor in Eq. (15) corresponds to the correction of flame length due to the wind, being based on the observation of the experimental curves for different fuels in [3], where the increase in the length of the flame due to the wind responds to such this function. F H corresponds to zero wind, and the correction coefficient F v has been added to experimentally adjust the different behaviours for each type of fuel by a least-squares method. The second factor in Eq. (15) corresponds to the correction of flame length according to surface slope, where again, a correction factor has again been added to this expression to adjust data from [3] in the least-squares sense. For further details see [6].

The main mechanisms of heat transfer in most wildfires are convection and radiation, which inform the fire spread by transmitting heat from the burning area to the unburned fuel in its path. This can be defined as a short-range fire propagation mechanism. In our model, convective heat transfer is depicted by the convective term β v ⋅ e in Eq. (1), and radiative heat transfer by the non-local radiation term r on the right-hand side of Eq. (1). However, under certain conditions, fire spread can occur through mass transfer; in other words, by fire-spotting, which can be interpreted as a long-range fire propagation mechanism. The term q on the right-hand side of Eq. (1) stands for the random heat contribution due to fire-spotting. Section 2.3 details a way of representing the heat contribution due to fire-spotting is detailed, following the premises in [17, 21, 26].

2.2 Numerical Method

The numerical scheme used is based on P1 finite element approximation on a regular mesh, the semi-implicit Euler time scheme, and the Yosida approximation for the multivalued operator.

Δt = t n+1 − t n is a time step, let c n, e n and u n denote approximations at time step t n to the exact solution, c, e and u, respectively.

At each time step, we solve the following:

$$\displaystyle \begin{aligned} \begin{array}{rcl} \frac{e^{n+1}-\bar{e}^n}{\Delta t}+\alpha u^{n+1}=r^{n}+q^{n}, {} \end{array} \end{aligned} $$
(16)
$$\displaystyle \begin{aligned} \begin{array}{rcl} e^{n+1} \in G(u^{n+1}),{} \end{array} \end{aligned} $$
(17)
$$\displaystyle \begin{aligned} \begin{array}{rcl} \frac{c^{n+1}-c^n}{\Delta t}=-g(u^{n+1})c^{n+1}. {}, \end{array} \end{aligned} $$
(18)

where \(\bar {e}^n=e^n\circ X^n\), and X n(x) = X(x, t n+1, t n) ≈x − β v Δt is the position at time t n of the particle that is at position x at time t n+1.

The basic premise is to treat the positive terms implicitly. The heat contribution of non-local radiation r and fire-spotting q heavily depends on the temperature u and on the fuel mass c, and it will therefore be explicitly evaluated at time t n.

The multivalued operator in Eq. (17), is a maximal monotone that can be solved by the Yosida approximation (see [22] or [14]), obtaining

$$\displaystyle \begin{aligned} u^{n+1}=J_{1/\alpha \Delta t}\Big(\frac{1}{\alpha \Delta t}\bar{e}^n+\frac{1}{\alpha}(r^n+q^n)\Big) {} \end{aligned} $$
(19)

Once u n+1 has been obtained by solving Eq. (19), we calculate e n+1 and c n+1 explicitly

$$\displaystyle \begin{aligned} \begin{array}{rcl} e^{n+1}=\bar{e}^{n}-\alpha\Delta t u^{n+1}+\Delta t (r^{n}+q^n), {} \end{array} \end{aligned} $$
(20)
$$\displaystyle \begin{aligned} \begin{array}{rcl} c^{n+1}=\frac{c^{n}}{1+\Delta \tau g(u^{n+1})}. {} \end{array} \end{aligned} $$
(21)

Details of how to compute the heat received at each point due to radiation in each time step r n can be found in [22] and [14], for both vertical and tilted flames. The calculation of the heat received due to fire-spotting is reported in Sect. 2.3.

To be a useful tool for supporting decision-making, any simulation model must provide results in a much shorter computation time than the simulated problem. To enhance the efficiency of the simulation process, different improvements have been implemented, with one of them being the definition of active nodes. We define a uniform and fine spatial mesh at the beginning of the numerical process, and for each time step Δt we define a set of active nodes formed by those located inside a sufficiently large surface of the fire front (burning area), and we solve the corresponding equations only in this set of nodes. This reduces the computation time, as we do not have to do any calculations when there is no change in the solution.

Note that Eqs. (19), (20), and (21) can be solved simultaneously in all the active nodes, and hence parallel computation can be used to shorten the computational time. Indeed, calculation of the variables u n+1, e n+1 and c n+1 have been computed by means of a parallel calculation using the API OpenMP, that is, the loop over all active nodes is parallelized [1].

Attempts have also been made to reduce the operational cost by introducing a fire-spotting index N q in order to significantly reduce the computation cost of the set of possible firebrand receiver nodes. In practice, this computation is done every N q × Δt, instead of every Δt.

2.3 Fire-Spotting Term

Fire-spotting refers to embers or firebrands that are carried by the wind and which start new fires (spot fires) beyond the main fire’s direct ignition zone. These secondary fires frequently cause hazardous situations for firefighters and contribute to the increase in the rate of fire spread. The physical dynamics of fire behaviour, plume characteristics and atmospheric conditions around the fire are decisive factors affecting the generation of fire-spotting and the firebrands’ landing patterns and flight paths. However, fire-spotting has a markedly random component, so existing fire-spotting models are necessarily probabilistic [19, 24, 26, 29].

Following a more thorough review of the research on fire-spotting, we propose a preliminary fire-spotting sub-model that closely fits the characteristics of the PhyFire model based on the ideas of the RandomFront 2.3 in [26], as a random heat contribution added to the right-hand side of Eq. (1). The heat contribution due to fire-spotting is written in terms of the distance of firebrand distribution ϕ()

$$\displaystyle \begin{aligned} q=Q \times N_{q} \times \Delta_{t} \times \phi(\ell) {} \end{aligned} $$
(22)

where following [24, 26], the firebrand landing distance can be assumed to follow a lognormal distribution

$$\displaystyle \begin{aligned} \phi(\ell) = \frac{1}{\ell \sigma \sqrt{2\pi}} \exp(-\frac{(\ln (\ell) - \mu)^{2}}{2\sigma^{2}}) {} \end{aligned} $$
(23)

where μ and σ are the mean and standard deviation of the logarithm of the variable \(\ln \ell \), that is, \(\ln \ell \sim N(\mu ,\sigma )\).

Q is a factor transforming the probability density function ϕ() into energy, N q is a fire-spotting index introduced to reduce the computational cost of the fire-spotting module, and Δt is the time step of the time discretization used to numerically solve the PhyFire model Eqs. (1), (2), and (3), and is detailed in Sect. (2.2).

We computed the set of possible firebrand emitter nodes as a subset of the fire front, and then the set of possible firebrand receiver nodes from each emitter node so that the main direction of firebrand propagation is wind direction, and the firebrands’ landing distance is computed in terms of the mean distance of firebrand landing, not more than 1.5 times this mean distance, and not to close to the fire-front.

Specifically, for each node m of the set of active nodes of the regular initial spatial mesh, the set S E of possible emitting nodes m E is selected as those nodes m that verify the following conditions on the dimensionless solid fuel temperature u(m) at the node m, and the solid fuel mass fraction c(m) at the node m,

$$\displaystyle \begin{aligned} \begin{array}{rcl} u(m)\geq u_p=(T_p-T_{\infty})/T_{\infty} \end{array} \end{aligned} $$
(24)
$$\displaystyle \begin{aligned} \begin{array}{rcl} 0.45 \leq c(m)\leq 0.55 \end{array} \end{aligned} $$
(25)

Then, the set S R(m E) of possible firebrand receiver nodes from the emitter node m E is then computed as a random subset of the set of nodes m R verifying

$$\displaystyle \begin{aligned} \begin{array}{rcl} \ell < 1.5 \mu_l \end{array} \end{aligned} $$
(26)
$$\displaystyle \begin{aligned} \begin{array}{rcl} \cos \alpha \geq 0.9 \end{array} \end{aligned} $$
(27)
$$\displaystyle \begin{aligned} \begin{array}{rcl} \cos \alpha \geq \frac{\ell}{\sqrt{\ell^2 + dx^2}}, \end{array} \end{aligned} $$
(28)

where here represents the distance from the emitter node m E and the receiver node m R, dx is the spatial regular mesh size, and α is the angle formed by the segment \(\overline {m_E m_R}\) and the wind direction at the emiser node m E. Not all these firebrands trigger a new fire, so it is only considered a random fraction of the set described; that is, the effective firebrand is in fact a random subset of this set. In practice, a random number between 0 and 100 is generated for each possible receiving node; if the generated number is greater than \(100 \sqrt {10 N_q}\), it is considered an effective receiver node, otherwise it is not.

From a computational point of view, looping through the nodes to locate the possible nodes receiving firebrands is very expensive, and as fire-spotting is random, we define an index N q to compute the fire-spotting term each N q × Δt instead of at each time step of time discretization.

3 Online GIS Interface

In order to automate the processes of input data capture and output data visualization during the simulation process, both PhyFire and HDWind were first integrated into a GIS [8] (Fig. 1). This GIS-based interface had a dual purpose: on the one hand, it provided a more accessible tool for a broader audience that might not be familiar with the model; and on the other hand, it facilitated the testing and validation process. The GIS tool chosen for this integration was ArcMap 10.4 of the Esri ArcGIS Desktop suite, and the interface was developed as a Python add-in for ArcMap. The functionality of each tool was implemented as a script using the Python programming language and the ArcPy geoprocessing library. They were developed for its use throughout Spain, so the scope of the spatial information currently used is limited to that country. For this purpose, a geodatabase has been developed containing the three maps needed for extracting the spatial information our models use: a first map containing the height of the surface, a second map gathering all the information related to fuel type, with both maps being used by the two models, and a third map collecting all the elements involving the function of either artificial or natural fire breaks that affect the fire spread, being used solely by the PhyFire model (see Fig. 2). The PhyFire integrated in the GIS tool uses the following input data: topography, fuel load and type, weather conditions, ignition location, and fire suppression tactics. It predicts the fire spread for the established time period, providing the following outputs at each time step: perimeter of the burnt area and position of the fire front.

Fig. 1
figure 1

Detail of the map of fuel types for the Valencian community. (Created using ArcGIS software by Esri. (ArcGIS and ArcMap™ are the intellectual property of Esri and are used herein under license. Copyright Ⓒ Esri. All rights reserved. For more information about Esri software, please visit www.esri.com))

Fig. 2
figure 2

Sinumcc Web Server displaying a simulation of the forest fire that affected the Doñana National Park in June 2017

The disadvantages of this integration in ArcGIS are that the Python add-in must be adapted to each ArcGIS version and the user must have the corresponding ArcGIS license. To overcome these disadvantages and make both PhyFire and HDWind, widely accessible tools, a web platform has been developed using current communication and data processing technologies, such as Api REST, JSON and ArcGIS Server. The platform http://sinumcc.usal.es allows uploading fire simulation data, and the pre-processing, processing and visualization of simulation results. The system carries out the phases of the process in a global way, providing the user with a quick visualization. The web platform involves two large modules: the Sinumcc Web Platform itself and the Sinumcc GIS Server. The Sinumcc Web Platform is used to collect data intuitively, semi-automatically and visually, and also to display the results of the simulations. The Sinumcc GIS Server is the module for performing these simulations based on the data collected from the Sinumcc Web Platform.

Data are exchanged between both modules by JavaScript Object Notation (JSON). Once the data provided by the user have been collected, they are stored in a database in JSON format. This not only allows storing the simulation’s data and initial parameters, but also serves as a storage path for the Sinumcc GIS Server to collect, process and adapt these data so that the PhyFire model can perform the simulation. Once the simulation has been carried out and the results obtained, they are again saved in the database so that the Sinumcc Web Platform can display the results of the simulation. With this architecture, both modules interact asynchronously, allowing simulations to be carried out regardless of the time they take to run, without waiting from the Sinumcc Web Platform for the Sinumcc GIS Server to finish, whereby as many simulations can be performed simultaneously as the server supports.

The process of a simulation performed by the Sinumcc Server is schematically illustrated in Fig. 3, and it is explained below. First, the user accesses the web site and loads the page with the content where the data about a simulation can be entered (see 1 in Fig. 3). When launching the simulation from the web platform, the business logic collects the data (see 2 in Fig. 3) and stores them in the database in JSON format (see 3 in Fig. 3). The simulation identification number (ID) where the data have been stored from the web platform is relayed to the Sinumcc GIS Server (see 4 in Fig. 3), which collects data from the database and performs the simulation using an instantiation of a Server Object Extension (SOE; see 5 in Fig. 3). As many instances can be created as requests made to the server. Once the simulation has been completed, the Sinumcc GIS Server stores the simulation results and notifies the user (see 6 in Fig. 3). Upon receipt of the notification that the simulation has ended, the user accesses the web platform and requests the simulation (see 7 in Fig. 3). Finally, the business logic collects the data in JSON format and displays them to the user (see 8 in Fig. 3).

Fig. 3
figure 3

Sinumcc Web process scheme

3.1 Sinumcc Web Platform

The Sinumcc Web Platform follows a model-view-controller (MVC) design pattern. The model is the core component of this architectural arrangement; it manages the data, and receives user input from the controller independently of the user interface. The view is the particular display of information. The controller responds to the user’s input and interacts with the data model through the business logic.

The following information is required for the Sinumcc Web Platform: Name, date and description of the fire to be simulated, selection of the simulation area limited to 25 km2, basic weather information (temperature, humidity, wind), position of the initial source of the fire, and position of possible fire suppression tactics. Choosing the simulation area is the necessary prior step to obtain the topographic and distribution data and fuel type required by the PhyFire model from the available cartographic database. If only wind data (direction and intensity) are provided in the basic meteorological information dialog box, the wind is considered constant throughout the area. There is the possibility of incorporating geolocalized point wind data in the simulation zone, with the system calling upon the HDWind wind model to generate a local wind field that adjusts the point data and feeds the PhyFire model.

3.2 Sinumcc GIS Server

The Sinumcc GIS Server is responsible for performing the simulations themselves by developing an standard operating environment (SOE) that allows the simulations to be launched asynchronously, which means that as many simulations can be made as the server supports. The SOE consists of three modules: the management module, the SQL module, and the notification module; and it is developed in three stages: pre-process, process and post-process, as shown in Fig. 4.

Fig. 4
figure 4

Sinumcc GIS Server scheme

The management module (see 1 in Fig. 4) is responsible for coordinating all of the modules involved in the SOE, defining the simulation’s current status, and interacting with the SQL module and the notification module. The structured query language (SQL) module collects the input data (see 2 in Fig. 4) the PhyFire model needs to perform the simulations and stores the provided results (see 6 in Fig. 4). The notification module (see 7 in Fig. 4) relates the user to the simulation launched, sending a notification when the simulation has finished or an error has occurred.

In the pre-processing stage (see 3 in Fig. 4), the data provided by the user in JSON format are transformed into the input files that the PhyFire model needs to perform the simulations, executing the corresponding GIS operations required, which are not detailed here as they exceed the aims of this paper. In addition to the input files corresponding to the PhyFire model parameters, four input files should be highlighted: the file corresponding to the topography of the simulation area; the file of the spatial distribution of fuel, which includes possible initial firewalls (initial conditions for the fuel), and the file of the spatial distribution of the types of fuels (these three files are obtained from the available geodatabase); and the fourth input file corresponds to the fire source or sources (initial temperature conditions). The process stage (see 4 in Fig. 4) corresponds to the running of the PhyFire model, and eventually of the HDWind model, with the input data provided. The PhyFire model generates two types of output files corresponding to the temperature and fuel that need to be transformed into JSON format during the post-process stage (see 5 in Fig. 4), so that the user can finally visualize the perimeter of the burnt area and position of the fire front for each time step.

4 Real Example

The new fire-spotting term is tested by simulating a real fire that we have already simulated with previous versions of the PhyFire model. This wildfire occurred in an area near Ourense (Spain) in August 2009. The fire spread and its behaviour were reconstructed and documented by the coordinator of the fire-suppression operations in [20], providing detailed information about this case. This fire destroyed 224 ha, 185 ha of forest area (83 ha were tree-covered interspersed with heath) and 39 ha of agricultural area in about 4 h. The altitude ranged from 540 m (ignition point area) to 680 m (end fire area) above sea level. The meteorological data indicated a relative humidity below 25%, temperatures above 30C, and winds of around 15 km/h with gusts approaching 25 km/h.

The first simulation of this real case with PhyFire in [23] already showed substantial agreement between observation and simulation. The second simulation performed with an improved version of PhyFire that includes the fire length sub-model enhances the results by recording a higher similarity index, see [6]. The fire monitoring report [20] details the existence of several secondary fire sources outside the perimeter caused by the emission of sparks and firebrands, so it seems a good case for testing the fire-spotting module.

The simulation area is a rectangle of 3,320 × 2,745 m, the size of the regular rectangular mesh is 7.5×7.5 m, and the time step is 30 s. The model parameters and input variables values are detailed in Tables 4, 5, and 6.

Table 4 Model parameters
Table 5 Fuel-type-dependent input variable values
Table 6 Fire-spotting module parameters

Ambient temperature was around 30 C and relative humidity around 28%. Wind data were provided at four points in the domain to adjust the wind field using the HDWind model, at a height of 10 m and updated every half hour. Wind intensity ranged from 2.54 to 4.75 m/s, and its direction shifted from east to northeast. The computing time on a laptop equipped with an Intel Core i7-2410M processor (two cores, each one working at a frequency of 1.8 GHz) and 4 GB RAM, was 12 min and 32 s for 4.5 h of simulation.

Figures 5 and 6 show the simulated perimeter after 1 h and 50 min and 2 h, respectively. This was the period of highest fire intensity in which fire-spotting caused new fires beyond the fire perimeter, as the simulation reflects.

Fig. 5
figure 5

Osoño: simulated burnt area (grey) and active front (orange) after 1 h and 50 min. A new fire has started due to fire-spotting. The black line is the real final perimeter

Fig. 6
figure 6

Osoño: simulated burnt area (grey) and active front (orange) after 2 h, showing the evolution of the secondary fire due to fire-spotting

5 Conclusions

This paper covers the most recent improvements made to the simplified physical fire spread model PhyFire developed by the research group on Numerical Simulation and Scientific Computing (SINUMCC) at the University of Salamanca. PhyFire now integrates a new module to simulate fire-spotting as a random heat contribution. The online GIS interface developed facilitates access to the model and the simulation process, automating the complex data input procedure and providing a graphical display of the results. The simulation of a real fire provides a good case study of the above.