netlogo笔记(4):森林火灾模拟与模型改进

本文详细介绍了使用NetLogo模拟森林火灾的过程,包括森林的建立、火的燃烧规则,以及模型的三个改进方面:考虑树木的可燃性、风的影响和火苗的远距离传播。通过对模型的逐步优化,更真实地模拟了森林火灾的行为。
摘要由CSDN通过智能技术生成

目录

森林火灾模拟

1.to setup:建立一个森林和起火线

2.to go:燃烧

模型改进

改进(一):考虑树木的可燃性

改进(二):考虑风的影响

改进(三):考虑火苗的远距离传播


森林火灾模拟

森林火灾模拟来自netlogo模型库。主要思路是通过让turtles随机改变周围turtles的颜色模拟火灾发生,并探索森林密度与烧毁比例之间的关系。

1.to setup:建立一个森林和起火线

代码如下:

globals [
  initial-trees   ;; 声明新的全局变量:原本的树
  burned-trees    ;; 被烧毁的树
]

breed [fires fire]    ;; 声明新的海龟种类:fires fire(火)
breed [embers ember]  ;; embers ember(余烬)

to setup
  clear-all
  set-default-shape turtles "square"
  ;; 将海龟默认形状设置为方形
  ask patches with [(random-float 100) < density]
    [ set pcolor green ]
  ;; 用random-float命令让patch生成<100的随机数,该数字若小于density,则patch变绿
  ask patches with [pxcor = min-pxcor]
    [ ignite ]
  ;; 让坐标系中最左边的一条线点燃
  set initial-trees count patches with [pcolor = green]
  ;;设置变量原本的树为:绿色patch的数量
  set burned-trees 0
  reset-ticks
end

注意点:

(1)在最前面声明新的全局变量:initial-trees、burned-trees和新的海龟种类:fire、fires、ember、embers;

(2)用random-float的命令使得patch与森林密度density关联起来,即:使patch生成随机数,若设置density为30(界面已设置density滑块),则随机数<30的patch变为绿色;

(3)用count命令使initial-trees取值等于绿色patch的数量。,

设置完毕如下图:

森林模拟(密度:33%)

森林模拟(密度:60%)

2.to go:燃烧

令fires随机点燃4个邻居,点燃即:使fire变红,之后pcolor变黑,烧毁数量加1。点燃后生

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值