草原火势-林火蔓延模型原理及GIS应用示例
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应用示例相关推荐
- Holt-Winters模型原理分析
Holt-Winters模型原理分析及代码实现(python) from:https://blog.csdn.net/u010665216/article/details/78051192 引言 最近 ...
- Select模型原理
Select模型原理 利用select函数,推断套接字上是否存在数据,或者是否能向一个套接字写入数据.目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据, ...
- Java开发中Netty线程模型原理解析!
Java开发中Netty线程模型原理解析,Netty是Java领域有名的开源网络库具有高性能和高扩展性的特点,很多流行的框架都是基于它来构建.Netty 线程模型不是一成不变的,取决于用户的启动参数配 ...
- [zz]GMM-HMM语音识别模型 原理篇
GMM-HMM语音识别模型 原理篇 分类: Data Structure Machine Learning Data Mining 2014-05-28 20:52 20662人阅读 评论(34) 收 ...
- logistic模型原理与推导过程分析(3)
附录:迭代公式向量化 θ相关的迭代公式为: 如果按照此公式操作的话,每计算一个θ需要循环m次.为此,我们需要将迭代公式进行向量化. 首先我们将样本矩阵表示如下: 将要求的θ也表示成矩阵的形式: 将 ...
- logistic模型原理与推导过程分析(2)
二项逻辑回归模型 既然logistic回归把结果压缩到连续的区间(0,1),而不是离散的0或者1,然后我们可以取定一个阈值,通常以0.5为阈值,如果计算出来的概率大于0.5,则将结果归为一类(1),如 ...
- logistic模型原理与推导过程分析(1)
从线性分类器谈起 给定一些数据集合,他们分别属于两个不同的类别.例如对于广告数据来说,是典型的二分类问题,一般将被点击的数据称为正样本,没被点击的数据称为负样本.现在我们要找到一个线性分类器,将这些数 ...
- 自然语言生成任务,如文本摘要和图像标题的生成。seq2seq的模型原理
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Irving_zhang/article/details/78889364 </div>& ...
- [NLP] TextCNN模型原理和实现
1. 模型原理 1.1 论文 Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出Te ...
最新文章
- 职称计算机word2007难吗,职称计算机word2007原题
- spring + mina 作为客户端解析H2协议的使用总结
- boost::core模块实现范围枚举C++11
- ckks方案优化最好的_果断收藏:SEO高级优化技能升级策略!
- 前端学习(1758):前端调试值之快速以编辑状态查看一个站点的所有资源
- PerfMa“寒泉子”李嘉鹏:成长和创业都要能人所不能,真强者何惧资本寒冬
- 4.PHP的运行方式
- oracle查询时使用case,Oracle查询语句中Casewhen的使用
- 银联在线 网关支付 (JAVA版)
- Windows超级管理器,堪比火绒管家
- 看了《就算老公一毛钱股份都没拿到 在我心里他依然是最牛逼的创业者》小感
- 奇虎终于涉足生活搜索
- html js满屏飘雪特效,原生js实现的雪花飘落特效
- 千锋python培训多久
- 充分利用计算机研究GIS,GIS在水文水资源领域中的应用研究
- vue中PC端使用高德地图 -- 实现搜索定位、地址标记、弹窗显示定位详情
- HashMap为什么是2倍扩容
- python之小说下载器version3.0
- 深入理解7种垃圾收集器
- VIVADO软件学习
热门文章
- javaweb项目相对路径与绝对路径
- 定点数(fixed-point number)的运算
- java 调用js脚本_Java中使用JavaScript脚本的方法步骤
- 佳能Canon PIXMA iP1188 打印机驱动
- iOS备忘录之XCode插件
- 2022-2028年中国嵌入式系统行业市场专项调研及竞争战略分析报告
- 认准了大B客户,Trustdata从移动数据开始挖掘价值
- AVplayer的使用详解 完整注释
- 游戏检测到计算机性能过低配色,win10系统电脑提示是否要更改配色方案来提高性能窗口的处理教程...
- 6-21漏洞利用-mysql弱口令破解