Conversation
|
Cool concept, thanks! Instead of a complete new model, could we also add a wind argument(s) to the existing model? That can be optionally enabled? |
@liyuezha what do you think of this? |
|
Hi, @EwoutH Thanks for the suggestion! I agree these features could be integrated. For context, the original forest_fire model:
The main differences in my wind demo are:
I think these could be integrated as optional modes while keeping current behavior as default: ignition_mode = "edge" | "center"
spread_mode = "uniform" | "wind_weighted"Wind parameters would only be active when This way wind becomes an optional advanced extension. If that sounds aligned with the project's style, I'm happy to refactor accordingly! |
|
Sounds good! It’s always great to have some options in a model to play with and see what it does. |
6c4b411 to
e67c748
Compare
c59acb0 to
7135dba
Compare
for more information, see https://pre-commit.ci
Summary
This PR adds a new model example: Wind-Driven Forest Fire.
Compared to forest fire model which focuses on critical thresholds, this model introduces anisotropy caused by wind. It demonstrates how to implement directional bias in grid-based models and explicitly measures the Rate of Spread (ROS) for both the fire head (downwind) and the flank (crosswind).
Motive
Modeling Anisotropy
$$p = p_{\text{spread}} \cdot (1 + \text{strength} \cdot \cos(\theta))$$
The model implements a wind-biased ignition probability formula based on the angle between the wind vector and the neighbor direction:
Implementation
Instead of just counting "burned trees," this model calculates spatial metrics:
Usage Examples
Additional Notes