1 在线模拟示例

在线模拟示例

加入了道路,水系,村庄等无法燃烧的地表覆盖类型的影响计算。例如高速公路可以阻断火势的传播,而火势可以绕过村庄和湖库继续传播

2 林火蔓延介绍

本文基于王正非林火蔓延模型,采取元胞自动机的算法模拟林火蔓延过程,通过地图实现地形和林火的显现,实现在模拟的地图环境中,根据气象、地形、植被因素的不同模拟林火的发生发展状态,通过三维模拟林火的发生发展、预判其发展态势, 对组织指挥扑救,提高灭火效率和确保灭火人员安全具有一定参考意义。

3 元胞及其状态

3.1 元胞及其邻域

在 Moore型邻居邻居中,一个元胞的上、下、左、右4个相邻元胞( adjacent neighbor cells)加上对角线方向上的4个次相邻元胞(diagonal neighbor cells)为该元胞的邻居。如图3-1,邻胞即与中心元胞(i,j)有公共边的元胞,分别用(i-1, j),(i+l, j),(i,j-1),(i, j+1)表示。次邻元胞即位于对角线方向上的4个位置,分别用(i-1,j-l), (i一1,j+l), (i+1,j-l),(i+1, j+1)表示。

3.1 元胞及其状态

t时刻元胞(i,j)的状态定义为:

的取值范围是:0≤≤1。如果=0,表示在t时刻元胞(i,j)未燃烧;0<<1表示表示在t时刻元胞(i,j)部分燃烧;=1表示在t时刻元胞(i,j)完全燃烧,假设只有完全燃烧的元胞才会对邻域元胞进行火蔓延。
        在此基础上,可以根据实际情况增加相应的状态表达。如在进行机上模拟实验的时,由于模拟需要,当=1的后的t+1时刻开始可以置元胞的状态为2,表示该元胞已经完全燃烧,从t+1时刻开始向周围的元胞蔓延;另外我们可以置邻域元胞已经完全燃烧的元胞状态为3,表示该元胞已经熄灭。

4 模拟流程

1、模拟点火,将当前元胞状态赋值为2;

2、根据模拟总时长和步长(单次时长)进行循环计算:计算么着火点的8个邻域,计算淋雨的着火面积;将完全着火的点状态赋值为2;将邻域元胞完全燃烧的元胞状态赋值为3

3、将所有元胞进行汇总,生成空间数据要素层,返回客户端。

5 参数变量

王正非提出的林火蔓延速度计算方程如下:

5.1 初始蔓延速度R

王正非导出的初始蔓延速度回归式为:

5.2 Ks是可燃物配置格局更正系数

K,用来表征可燃物的易燃程度(化学特性)及是否有利于燃烧的配置格局(物理特性)的一个更正系数,对某时、某地来说,整个燃烧范围和燃烧过程中,K,可以假定为常数。王正非按照野外实地可燃物配置类型,把它予以参数化。

5.3  Kw是风速调整系数

众所周知,在一定范围内,风速V越大,风方向上的蔓延速度越大,即风引起的增益
值Kw也越大,王正非提供了一个Kw,随着风速V变化的实验数据表。

5.4 地形坡度调整系数

综合上述,可以写出经毛贤敏改进后的林火蔓延速度的基本公式:

6 关键技术点

1、后端技术栈推荐:ArcGIS、SuperMap二次开发组件;GeoTools+JTS;有条件可使用GDAL。

2、坐标转换:前端一般是经纬度坐标,在后端应进行精确投影,毕竟高斯模拟的条件是10km范围内。

3、主要模拟结果,火势一般是往上坡走

7 参考代码

获取邻近元胞:

private CellNeighborsGroup getCellNeighborsGroup(Cell curCell) {CellNeighborsGroup neighborsGroup = new CellNeighborsGroup(this.winSize);int m = curCell.getM();int n = curCell.getN();//中心元胞neighborsGroup.getGroup()[1][1] = new CellNeighbors(new Cell(m, n), this.winSize);//上面的元胞neighborsGroup.getGroup()[0][1] = new CellNeighbors(new Cell(m, n + this.cellSize), this.winSize);//下面的元胞neighborsGroup.getGroup()[2][1] = new CellNeighbors(new Cell(m, n - this.cellSize), this.winSize);//左边的元胞neighborsGroup.getGroup()[1][0] = new CellNeighbors(new Cell(m - this.cellSize, n), this.winSize);//右边的元胞neighborsGroup.getGroup()[1][2] = new CellNeighbors(new Cell(m + this.cellSize, n), this.winSize);//左上的元胞neighborsGroup.getGroup()[0][0] = new CellNeighbors(new Cell(m - this.cellSize, n + this.cellSize), this.winSize);//右上的元胞neighborsGroup.getGroup()[0][2] = new CellNeighbors(new Cell(m + this.cellSize, n + this.cellSize), this.winSize);//左下的元胞neighborsGroup.getGroup()[2][0] = new CellNeighbors(new Cell(m - this.cellSize, n - this.cellSize), this.winSize);//右下的元胞neighborsGroup.getGroup()[2][2] = new CellNeighbors(new Cell(m + this.cellSize, n - this.cellSize), this.winSize);return neighborsGroup;}

草原火势-林火蔓延模型原理及GIS应用示例相关推荐

  1. Holt-Winters模型原理分析

    Holt-Winters模型原理分析及代码实现(python) from:https://blog.csdn.net/u010665216/article/details/78051192 引言 最近 ...

  2. Select模型原理

    Select模型原理 利用select函数,推断套接字上是否存在数据,或者是否能向一个套接字写入数据.目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据, ...

  3. Java开发中Netty线程模型原理解析!

    Java开发中Netty线程模型原理解析,Netty是Java领域有名的开源网络库具有高性能和高扩展性的特点,很多流行的框架都是基于它来构建.Netty 线程模型不是一成不变的,取决于用户的启动参数配 ...

  4. [zz]GMM-HMM语音识别模型 原理篇

    GMM-HMM语音识别模型 原理篇 分类: Data Structure Machine Learning Data Mining 2014-05-28 20:52 20662人阅读 评论(34) 收 ...

  5. logistic模型原理与推导过程分析(3)

    附录:迭代公式向量化 θ相关的迭代公式为: ​ 如果按照此公式操作的话,每计算一个θ需要循环m次.为此,我们需要将迭代公式进行向量化. 首先我们将样本矩阵表示如下: 将要求的θ也表示成矩阵的形式: 将 ...

  6. logistic模型原理与推导过程分析(2)

    二项逻辑回归模型 既然logistic回归把结果压缩到连续的区间(0,1),而不是离散的0或者1,然后我们可以取定一个阈值,通常以0.5为阈值,如果计算出来的概率大于0.5,则将结果归为一类(1),如 ...

  7. logistic模型原理与推导过程分析(1)

    从线性分类器谈起 给定一些数据集合,他们分别属于两个不同的类别.例如对于广告数据来说,是典型的二分类问题,一般将被点击的数据称为正样本,没被点击的数据称为负样本.现在我们要找到一个线性分类器,将这些数 ...

  8. 自然语言生成任务,如文本摘要和图像标题的生成。seq2seq的模型原理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Irving_zhang/article/details/78889364 </div>& ...

  9. [NLP] TextCNN模型原理和实现

    1. 模型原理 1.1 论文 Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出Te ...

最新文章

  1. 职称计算机word2007难吗,职称计算机word2007原题
  2. spring + mina 作为客户端解析H2协议的使用总结
  3. boost::core模块实现范围枚举C++11
  4. ckks方案优化最好的_果断收藏:SEO高级优化技能升级策略!
  5. 前端学习(1758):前端调试值之快速以编辑状态查看一个站点的所有资源
  6. PerfMa“寒泉子”李嘉鹏:成长和创业都要能人所不能,真强者何惧资本寒冬
  7. 4.PHP的运行方式
  8. oracle查询时使用case,Oracle查询语句中Casewhen的使用
  9. 银联在线 网关支付 (JAVA版)
  10. Windows超级管理器,堪比火绒管家
  11. 看了《就算老公一毛钱股份都没拿到 在我心里他依然是最牛逼的创业者》小感
  12. 奇虎终于涉足生活搜索
  13. html js满屏飘雪特效,原生js实现的雪花飘落特效
  14. 千锋python培训多久
  15. 充分利用计算机研究GIS,GIS在水文水资源领域中的应用研究
  16. vue中PC端使用高德地图 -- 实现搜索定位、地址标记、弹窗显示定位详情
  17. HashMap为什么是2倍扩容
  18. python之小说下载器version3.0
  19. 深入理解7种垃圾收集器
  20. VIVADO软件学习

热门文章

  1. javaweb项目相对路径与绝对路径
  2. 定点数(fixed-point number)的运算
  3. java 调用js脚本_Java中使用JavaScript脚本的方法步骤
  4. 佳能Canon PIXMA iP1188 打印机驱动
  5. iOS备忘录之XCode插件
  6. 2022-2028年中国嵌入式系统行业市场专项调研及竞争战略分析报告
  7. 认准了大B客户,Trustdata从移动数据开始挖掘价值
  8. AVplayer的使用详解 完整注释
  9. 游戏检测到计算机性能过低配色,win10系统电脑提示是否要更改配色方案来提高性能窗口的处理教程...
  10. 6-21漏洞利用-mysql弱口令破解