当前位置: 首页 > article >正文

【野火模型】利用深度神经网络替代 ELMv1 野火参数化:机制、实现与性能评估

目录

  • 一、ELMv1 野火过程表示法(BASE-Fire)
    • 关键机制
    • 野火模拟的核心过程
  • 二、采用神经网络模拟野火过程
  • 三、总结
  • 参考

一、ELMv1 野火过程表示法(BASE-Fire)

ELMv1 中的野火模型(称为 BASE-Fire)源自 Community Land Model(CLM4.5)中的野火模块(Li et al., 2012),采用过程驱动模型来模拟野火的发生与扩展。

参考论文:J2019-Representing Nitrogen, Phosphorus, and Carbon Interactions in the E3SM Land Model Development and Global Benchmarking

关键机制

在能源超大规模地球系统模型(ESM)陆地模型(ELMv1)中,野火过程的表示法是通过几个关键机制来实现的,以确保模型能够有效地模拟野火对碳、氮和磷循环的影响。
在这里插入图片描述
1. 燃烧过程的建模
ELMv1中野火的表示法首先涉及到燃烧过程的动态模拟。模型使用了一系列参数来描述火灾的燃烧强度、持续时间和火焰传播速度。
这些参数受到气候条件(如温度、湿度和风速)以及生物物理特征(如植物种类、植被密度和干燥程度)的影响。

2. 生态系统响应
野火不仅对植被造成直接影响,还会引起生态系统的长期变化。ELMv1考虑了火灾后的生态恢复过程,包括植被再生和土壤特性改变。这些变化会影响碳固定、土壤有机碳的分解速率以及营养物质循环。

3. 碳和营养物质的释放
火灾会释放大量的二氧化碳和其他温室气体。ELMv1通过计算火灾导致的碳释放量,来评估其对全球碳循环的影响。此外,火灾还会影响氮和磷的释放和流失,进而影响生态系统的营养状态和植物生长。

4. 动态反馈机制
ELMv1中的野火过程考虑了气候、植被和土壤之间的动态反馈。例如,频繁的火灾可能导致植被组成的变化,使得生态系统对火灾的响应和恢复模式发生改变。这种反馈机制有助于更好地理解火灾在气候变化背景下的作用。

5. 模型验证与基准
为了确保野火过程的准确性,ELMv1通过与历史火灾数据和生态系统响应的观察进行验证。此外,模型还利用国际陆地模型基准(ILAMB)包进行性能评估,以优化模型参数和结构。

通过这些机制,ELMv1能够更全面地模拟野火对生态系统及其碳氮磷循环的影响,为气候变化研究提供了重要的工具。

野火模拟的核心过程

1. 火源(Ignition)

  • 包括自然点火(如闪电)和人为点火(如农业焚烧)。
  • 自然点火:与闪电密度成正比(Prentice and Mackerras, 1977)。
  • 人为点火:与人口密度有关(Venevsky et al., 2002)。

2. 火灾抑制(Suppression)

  • 与人类活动有关,尤其是发达地区会更有效地抑制火灾。
  • 抑制能力受社会经济因素影响,如人口密度和 GDP。

3. 燃料控制(Fuel Control)

  • 包括燃料负荷(植物地上生物量)、燃料湿度(表土湿度)、燃料温度(表土温度)等。
  • 燃料可燃性受气象条件(温度、湿度)调控。

4. 火灾蔓延(Fire Spread)

  • 模拟为椭圆形扩散区域,受风速和燃料湿度控制(Rothermel, 1972)。
  • 火灾持续时间固定为一天(基于全球火灾持续性研究,Giglio et al., 2006)。

5. 模型输出

  • 模拟每个网格单元的烧毁面积百分比作为主要输出变量。

二、采用神经网络模拟野火过程

采用深度学习模型以更好地捕捉控制因素(control factors)与野火活动(Wildfire activities)之间复杂的非线性相互作用。
目标是利用深度神经网络替代 ELMv1 中的野火参数化,并改进模型模拟的不同火区的野火燃烧面积。

参考文献:J2022-Building a machine learning surrogate model for wildfire activities within a global Earth system model
为了提高模拟效率和预测精度,此论文提出了一种基于深度神经网络(DNN)的替代模型,称为 DNN-Fire 和 DNN-Fire-OBS,以替代 BASE-Fire 中复杂且计算昂贵的参数化过程。

在这里插入图片描述
1. 基本原理

  • 将 BASE-Fire 看作一个黑箱,用 DNN 模拟其输入与输出之间的非线性关系。
  • 利用神经网络隐藏层隐式编码中间过程(如点火、蔓延),实现对野火模型的“代理建模(surrogate modeling)”。

2. 网络结构

  • 使用前馈全连接神经网络(Feedforward Neural Network)。
  • 结构包括:11个输入变量 → 5个隐藏层,每层5个神经元 → 1个输出(烧毁面积)。
  • 激活函数采用Softplus,可以保留非线性且输出为正值。

3. 输入变量(共11项)

类别变量名称数据来源
燃料状况树覆盖率LUH2
~燃料负荷(总生物量)ELMv1 模拟
~燃料湿度(表土湿度)ELMv1 模拟
~燃料温度(表土温度)ELMv1 模拟
气候因子降水GSWP3
~近地表温度GSWP3
~风速GSWP3
~相对湿度GSWP3
点火潜力人口密度Dobson et al., 2000
~闪电频率NASA-LIS/OTD
人为抑制国内生产总值(GDP)van Vuuren et al., 2007

4. 输出变量
模型输出为:每个网格的烧毁面积百分比(与 BASE-Fire 输出一致)。

5. 建模步骤

Step 1:DNN-Fire 建模

  • 使用 BASE-Fire 的输入输出数据(1981-2010)训练 DNN。
  • 每个 GFED 区域单独训练一个模型(共14个),以提升区域适应性。
  • 使用均方误差(MSE)作为损失函数。

Step 2:DNN-Fire-OBS 校准

  • 使用 五个遥感观测数据集的平均值 替代 BASE-Fire 的输出,微调 DNN 权重。
  • 大大提高模型对实际观测的拟合能力。
  • 微调过程仅需几分钟计算时间。

6. 模型性能

  • DNN-Fire 能较好地重建 BASE-Fire 的输出(R² = 0.79)。
  • DNN-Fire-OBS 与观测数据高度一致(R² = 0.97,Pearson相关系数 = 0.98)。
  • 显著减少了偏差,部分区域(如非洲、南美、欧洲)误差减少超过 90%。

三、总结

项目BASE-Fire(过程模型)DNN-Fire(代理模型)DNN-Fire-OBS(观测校准模型)
原理显式过程模拟(点火、蔓延)黑箱建模,学习输入-输出关系使用观测微调代理模型
输入气候、燃料、人类因子等同 BASE-Fire同 BASE-Fire
输出烧毁面积百分比烧毁面积百分比烧毁面积百分比
优点模拟机制明确高效、学习能力强精度最高、拟合观测好
缺点参数多、计算昂贵易受训练数据偏差影响受观测数据质量限制

参考

相关文章:

【野火模型】利用深度神经网络替代 ELMv1 野火参数化:机制、实现与性能评估

目录 一、ELMv1 野火过程表示法(BASE-Fire)关键机制野火模拟的核心过程 二、采用神经网络模拟野火过程三、总结参考 一、ELMv1 野火过程表示法(BASE-Fire) ELMv1 中的野火模型(称为 BASE-Fire)源自 Commun…...

红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南

红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、框架定位:HTTP服务器的工具箱 共同功能: 快…...

嵌入式Linux设备使用Go语言快速构建Web服务,实现设备参数配置管理方案探究

本文探讨,利用Go语言及gin框架在嵌入式Linux设备上高效搭建Web服务器,以实现设备参数的网页配置。通过gin框架,我们可以在几分钟内创建一个功能完善的管理界面,方便对诸如集中器,集线器等没有界面的嵌入式设备的管理。…...

【NLP 59、大模型应用 —— 字节对编码 bpe 算法】

目录 一、词表的构造问题 二、bpe(byte pair encoding) 压缩算法 算法步骤 示例: 步骤 1:初始化符号表和频率统计 步骤 2:统计相邻符号对的频率 步骤 3:合并最高频的符号对 步骤 4:重复合并直至终止条件 三、bpe在NLP中…...

Python对ppt进行文本替换、插入图片、生成表格

目录 1. 安装pptx2. 文本替换和插入图片3. 生成表格 1. 安装pptx pip install python-pptx2. 文本替换和插入图片 文本通过占位符例如{{$xxx}}进行标记,然后进行替换;图片通过ppt中的图形和图片中的占位符进行标记ppt如下 具体实现 from pptx import …...

AI(学习笔记第一课) 在vscode中配置continue

文章目录 AI(学习笔记第一课) 在vscode中配置continue学习内容:1. 使用背景2. 在vscode中配置continue2.1 vscode版本2.2 在vscode中下载continue插件2.2.1 直接进行安装2.2.2 在左下角就会有continue的按钮2.2.3 可以移动到右上角2.2.3 使用的时候需要login 2.3 配…...

C++ (初始面向对象之继承,实现继承,组合,修饰权限)

初始面向对象之继承 根据面向对象的编程思路,我们可以把共性抽象出来封装成类,然后让不同的角色去继承这些类,从而避免大量重复代码的编写 实现继承 继承机制是面向对象程序设计中使代码可以复用的最重要的手段,它允许程序员在保…...

vmcore分析锁问题实例(x86-64)

问题描述&#xff1a;系统出现panic&#xff0c;dmesg有如下打印&#xff1a; [122061.197311] task:irq/181-ice-enp state:D stack:0 pid:3134 ppid:2 flags:0x00004000 [122061.197315] Call Trace: [122061.197317] <TASK> [122061.197318] __schedule0…...

21、c#中“?”的用途

在C#中&#xff0c;? 是一个多用途的符号&#xff0c;具有多种不同的用途&#xff0c;具体取决于上下文。以下是一些常见的用法&#xff1a; 1、可空类型&#xff08;Nullable Types&#xff09; ? 可以用于将值类型&#xff08;如 int、bool 等&#xff09;变为可空类型。…...

每日搜索--12月

12.1 1. urlencode是一种编码方式,用于将字符串以URL编码的形式进行转换。 urlencode也称为百分号编码(Percent-encoding),是特定上下文的统一资源定位符(URL)的编码机制。它适用于统一资源标识符(URI)的编码,也用于为application/x-www-form-urlencoded MIME准备数…...

一天一个java知识点----Tomcat与Servlet

认识BS架构 静态资源&#xff1a;服务器上存储的不会改变的数据&#xff0c;通常不会根据用户的请求而变化。比如&#xff1a;HTML、CSS、JS、图片、视频等(负责页面展示) 动态资源&#xff1a;服务器端根据用户请求和其他数据动态生成的&#xff0c;内容可能会在每次请求时都…...

游戏报错?MFC140.dll怎么安装才能解决问题?提供多种MFC140.dll丢失修复方案

MFC140.dll 是 Microsoft Visual C 2015 运行库的重要组成部分&#xff0c;许多软件和游戏依赖它才能正常运行。如果你的电脑提示 "MFC140.dll 丢失" 或 "MFC140.dll 未找到"&#xff0c;说明系统缺少该文件&#xff0c;导致程序无法启动。本文将详细介绍 …...

TDengine 3.3.6.3 虚拟表简单验证

涛思新出的版本提供虚拟表功能&#xff0c;完美解决了多值窄表查询时需要写程序把窄表变成宽表的处理过程&#xff0c;更加优雅。 超级表定义如下&#xff1a; CREATE STABLE st01 (ts TIMESTAMP,v0 INT,v1 BIGINT,v2 FLOAT,v3 BOOL) TAGS (device VARCHAR(32),vtype VARCHAR(…...

小白如何从0学习php

学习 PHP 可以从零开始逐步深入&#xff0c;以下是针对小白的系统学习路径和建议&#xff1a; 1. 了解 PHP 是什么 定义&#xff1a;PHP 是一种开源的服务器端脚本语言&#xff0c;主要用于 Web 开发&#xff08;如动态网页、API、后台系统&#xff09;。 用途&#xff1a;构建…...

常见的 14 个 HTTP 状态码详解

文章目录 一、2xx 成功1、200 OK2、204 No Content3、206 Partial Content 二、3xx 重定向1、301 Moved Permanently2、302 Found3、303 See Other注意4、Not Modified5、307 Temporary Redirect 三、4xx 客户端错误1、400 Bad Request2、401 Unauthorized3、403 Forbidden4、4…...

【Java学习笔记】DOS基本指令

DOS 基本指令 基本原理 接受指令 解析指令 执行指令 常用命令 查看当前目录有什么&#xff1a;dir 使用绝对路径查看特定目录下文件&#xff1a;dir 绝对路径 切换到其他盘&#xff1a;直接输入C: 或 D:直接切换到根目录 返回上一级目录&#xff1a;cd.. 切换到根目录…...

Linux Kernel 8

可编程中断控制器&#xff08;Programmable Interrupt Controller&#xff0c;PIC&#xff09; 支持中断&#xff08;interrupt&#xff09;的设备通常会有一个专门用于发出中断请求Interrupt ReQuest&#xff0c;IRQ的输出引脚&#xff08;IRQ pin&#xff09;。这些IRQ引脚连…...

原子操作CAS(Compare-And-Swap)和锁

目录 原子操作 优缺点 锁 互斥锁&#xff08;Mutex&#xff09; 自旋锁&#xff08;Spin Lock&#xff09; 原子性 单核单CPU 多核多CPU 存储体系结构 缓存一致性 写传播&#xff08;Write Propagation&#xff09; 事务串行化&#xff08;Transaction Serialization&#…...

MySQL安装实战分享

一、在 Windows 上安装 MySQL 1. 下载 MySQL 安装包 访问 MySQL 官方下载页面。选择适合你操作系统的版本。一般推荐下载 MySQL Installer。 2. 运行安装程序 双击下载的安装文件&#xff08;例如 mysql-installer-community-<version>.msi&#xff09;。如果出现安全…...

C++ 编程指南35 - 为保持ABI稳定,应避免模板接口

一&#xff1a;概述 模板在 C 中是编译期展开的&#xff0c;不同模板参数会生成不同的代码&#xff0c;这使得模板类/函数天然不具备 ABI 稳定性。为了保持ABI稳定&#xff0c;接口不要直接用模板&#xff0c;先用普通类打个底&#xff0c;模板只是“外壳”&#xff0c;这样 AB…...

【WPF】 在WebView2使用echart显示数据

文章目录 前言一、NuGet安装WebView2二、代码部分1.xaml中引入webview22.编写html3.在WebView2中加载html4.调用js方法为Echarts赋值 总结 前言 为了实现数据的三维效果&#xff0c;所以需要使用Echarts&#xff0c;但如何在WPF中使用Echarts呢&#xff1f; 一、NuGet安装WebV…...

OpenCV 图像拼接

一、图像拼接的介绍 图像拼接是一种将多幅具有部分重叠内容的图像合并成一幅完整、无缝且具有更广阔视野或更高分辨率图像的技术。其目的是通过整合多个局部图像来获取更全面、更具信息价值的图像内容。 二、图像拼接的原理 图像拼接的核心目标是将多幅有重叠区域的图像进行准…...

数学建模AI智能体(4.16大更新)

别的不说就说下面这几点&#xff0c;年初内卷到现在&#xff0c;就现阶段AI水平&#xff0c;卷出了我比较满意的作品&#xff0c;这里分享给各位同学&#xff0c;让你们少走弯路&#xff1a; 1.轻松辅导学生 2.帮助学习 3.突破知识壁垒&#xff0c;缩短与大佬的差距 4.打破…...

音视频小白系统入门笔记-1

本系列笔记为博主学习李超老师课程的课堂笔记&#xff0c;仅供参阅 课程传送门&#xff1a;音视频小白系统入门课 音视频基础ffmpeg原理 往期课程笔记传送门&#xff1a;音视频小白系统入门笔记-0 课程实践代码仓库&#xff1a;传送门 音频采集 命令行采集 Android端音频…...

Flutter 强制横屏

在 Flutter 中&#xff0c;可以通过设置 SystemChrome 来强制应用横屏显示。以下是实现这一功能的详细步骤和代码示例&#xff1a; 步骤 1&#xff1a;导入必要的包 确保在文件顶部导入了 services.dart 包&#xff0c;因为 SystemChrome 类位于该包中。 import package:flut…...

量子安全邮件系统 —— NTRU算法邮件加密核心

目录 量子安全邮件系统 —— NTRU算法邮件加密核心一、项目背景与简介二、NTRU算法理论基础三、系统架构设计3.1 模块划分3.2 系统架构图(Mermaid示意图)四、邮件加密核心流程与关键技术4.1 密钥生成与公钥计算4.2 邮件加密4.3 邮件解密4.4 关键技术要点五、GUI设计与系统扩展…...

Go:方法

方法声明 type point struct { X, Y float64 }// 普通函数 func Distance(p, q Point) float64 {return math.Hypot(q.x - p.x, q.y - p.Y) }// Point类型的方法 func (p Point) Distance(q Point) float64 {return math.Hypot(q.x - p.x, q.y - p.Y) }方法声明与普通函数声…...

深入剖析 Axios 的 POST 请求:何时使用 qs 处理数据

在前端开发中&#xff0c;Axios 是一个广泛使用的用于发送 HTTP 请求的库&#xff0c;特别是在处理 POST 请求时&#xff0c;数据的处理方式会直接影响到请求能否正确被后端接收和处理。其中&#xff0c;使用 qs 库对数据进行处理是一个常见的操作点&#xff0c;本文将深入探讨…...

【数据结构_7】栈和队列(上)

一、概念 栈和队列&#xff0c;也是基于顺序表和链表实现的 栈是一种特殊的线性表&#xff0c;其只允许在固定的一段进行插入和删除元素操作。 遵循后进先出的原则 此处所见到的栈&#xff0c;本质上就是一个顺序表/链表&#xff0c;但是&#xff0c;实在顺序表/链表的基础…...

Linux》》bash 、sh 执行脚本

通常使用shell去运行脚本&#xff0c;两种方法 》bash xxx.sh 或 bash “xxx.sh” 、sh xxx.sh 或 sh “xxx.sh” 》bash -c “cmd string” 引号不能省略 我们知道 -c 的意思是 command&#xff0c;所以 bash -c 或 sh -c 后面应该跟一个 command。...