气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型

news2025/5/19 8:29:58

前言

在干旱研究中,一个关键的科学问题是:在某一地区发生不同等级的气象干旱时,气象干旱会以何种概率引发不同等级的水文干旱、农业干旱和地下水干旱?换句话说,气象干旱的不同程度会分别引发其他类型干旱的哪种等级?尤其是在大区域尺度上,并且涉及多种干旱类型时,干旱之间的传播过程和其动态变化对于触发不同类型干旱的概率及阈值至关重要。

为了回答这一问题,我们首先评估了在不同等级气象干旱胁迫下,水文干旱的诱发风险;接着,分析了水文干旱胁迫下对农业干旱的诱发风险;最后,探讨了农业干旱胁迫下地下水干旱的诱发概率。通过这一系列的评估,我们逐级构建了触发不同等级水文、农业和地下水干旱的阈值模型,并分析了这些模型随干旱发生过程中的动态变化规律。

这些研究结果为建立基于气象、水文、农业和地下水干旱之间相互作用的预警系统提供了科学依据。该系统对于减轻人为用水与自然生态系统水资源压力,并帮助制定适应性管理策略,具有重要的实践意义。

本研究复现了韩知明博士在其博士论文《中国多类型干旱时刻演变特征及其传播过程研究》中的相关工作,旨在为干旱风险预测和管理提供理论支持。

一、评估条件概率

为了评估在不同等级气象干旱胁迫下诱发不同等级气象、水文、农业和地下水干旱的风险,我们采用了贝叶斯概率模型。这一模型通过结合条件依赖的概念,推导了不同随机变量之间的关系。特别是,通过分析水文干旱相对于不同程度气象干旱的条件概率,我们可以估计气象干旱对水文干旱(SRI变化)的影响。

在多种干旱情景下,基于干旱等级的划分标准,我们进一步推导了不同等级气象干旱诱发不同等级水文干旱的概率计算公式。总体而言,这些情景涵盖了16种干旱组合情形,本文仅展示其中的两种情景计算。
在这里插入图片描述

二、求解触发阈值

对于给定等级的水文干旱,随着气象干旱等级的加重,理论上诱发水文干旱的概率应趋近于1。根据干旱等级划分,当SRI(气象干旱指标)小于等于-0.5时,认为发生水文干旱。因此,我们通过迭代SPEI(气象干旱指数)从-0.5开始,每次间隔-0.1,直到-3,来估算每次迭代所对应的条件概率。具体做法是,当条件概率大于或等于0.5时,我们返回对应的SPEI区间,区间的右侧值即为触发水文干旱的阈值。

当触发阈值较低(即SPEI值较小)时,说明只有较高等级的气象干旱才能引起SRI小于等于-0.5的情况,意味着水文系统对气象干旱的抵抗能力较强。相反,当触发阈值较高(即SPEI值较大)时,说明较低等级的气象干旱就可能引发SRI小于等于-0.5,表明该地区水文系统对气象干旱的抵抗能力较弱,值得相关部门关注并采取相应的应对措施。公式如下
在这里插入图片描述
在这里插入图气象干旱到水文干旱的触发阈值模型片描述气象干旱到水文干旱的触发阈值模型

1.代码片段

%Matlab version>=2021
close; % 关闭所有图形窗口
clear; % 清除工作区的变量
tic; % 计时开始

% 该代码的目的是分析不同等级气象干旱引发其他类型干旱的概率及阈值。
% 输入数据为一个包含气象干旱和水文干旱指数(例如SPI和SSMI)的CSV文件。

%% 数据读取
data = importdata('copula-data.csv');  % 导入数据
data = data.data;  % 获取数据矩阵
SPI = data(:, 2);  % 获取SPI数据列
SSMI = data(:, 3); % 获取SSMI数据列

%% 计算边缘分布并拟合
% 计算气象干旱(SPI)和水文干旱(SSMI)的边缘分布
[D_U1, PD_U1] = marginfitdist(SSMI);  % SSMI的边缘分布拟合
[D_U2, PD_U2] = marginfitdist(SPI);   % SPI的边缘分布拟合

% 计算SSMI和SPI的累积分布函数值
EP1 = cdf(PD_U1{1}, SSMI);
EP2 = cdf(PD_U2{1}, SPI);

% 组合SSMI和SPI的累积分布函数,避免负值
EP = [EP1, EP2];
EP(EP <= 0) = 1e-4;

% 选择最优的Copula模型(通过AIC准则)
[Family1, thetahat1, loglik1] = doublecopulaselect(EP, 'aic');

%% 计算不同气象干旱诱发水文干旱的概率
% 计算不同SPI和SSMI值下的边际概率
ssmithlow1 = cdf(PD_U1{1}, -0.5); % 计算不同阈值的SSMI累积分布值
ssmithlow2 = cdf(PD_U1{1}, -1);
ssmithlow3 = cdf(PD_U1{1}, -1.5);
ssmithlow4 = cdf(PD_U1{1}, -2.0);

spithlow1 = cdf(PD_U2{1}, -0.5); % 计算不同阈值的SPI累积分布值
spithlow2 = cdf(PD_U2{1}, -1);
spithlow3 = cdf(PD_U2{1}, -1.5);
spithlow4 = cdf(PD_U2{1}, -2.0);

% 计算不同等级气象干旱诱发水文干旱的条件概率
P1 = (copulascdf([spithlow1, ssmithlow1], Family1, thetahat1) - copulascdf([spithlow2, ssmithlow1], Family1, thetahat1)) / (spithlow1 - spithlow2);
P2 = (copulascdf([spithlow2, ssmithlow1], Family1, thetahat1) - copulascdf([spithlow3, ssmithlow1], Family1, thetahat1)) / (spithlow2 - spithlow3);
P3 = (copulascdf([spithlow3, ssmithlow1], Family1, thetahat1) - copulascdf([spithlow4, ssmithlow1], Family1, thetahat1)) / (spithlow3 - spithlow4);
P4 = (copulascdf([spithlow3, ssmithlow2], Family1, thetahat1) + copulascdf([spithlow4, ssmithlow3], Family1, thetahat1) - (copulascdf([spithlow4, ssmithlow3], Family1, thetahat1) - copulascdf([spithlow4, ssmithlow2], Family1, thetahat1))) / (spithlow3 - spithlow4);
P5 = copulascdf([spithlow4, ssmithlow1], Family1, thetahat1) / spithlow4;
P6 = (copulascdf([spithlow4, ssmithlow2], Family1, thetahat1) - copulascdf([spithlow4, ssmithlow3], Family1, thetahat1)) / spithlow4;
P7 = (copulascdf([spithlow4, ssmithlow3], Family1, thetahat1) - copulascdf([spithlow4, ssmithlow4], Family1, thetahat1)) / spithlow4;

% 创建标题和对应的概率值
titles = {
    '轻度气象干旱诱发轻度水文干旱', ...
    '中度气象干旱诱发轻度水文干旱', ...
    '重度气象干旱诱发轻度水文干旱', ...
    '重度气象干旱诱发中度水文干旱', ...
    '极度气象干旱诱发轻度水文干旱', ...
    '极度气象干旱诱发中度水文干旱', ...
    '极度气象干旱诱发重度水文干旱'
};

% 将 P1 到 P7 组合成一个单元格数组
P_values = {P1, P2, P3, P4, P5, P6, P7};

% 打开一个文本文件用于写入
fileID = fopen('气象干旱诱发水文干旱概率.txt', 'w');

% 循环写入标题和对应的 P 值
for i = 1:length(P_values)
    fprintf(fileID, '%s: %.4f\n', titles{i}, P_values{i});
end

% 关闭文件
fclose(fileID);

disp('数据已成功保存到 气象干旱诱发水文干旱概率.txt');

%% 计算最优Copula模型
methods = {'gauss', 't', 'clayton', 'frank', 'gumbel'};  % 定义Copula模型类型

% 对SPI和SSMI数据进行正态分布拟合
[muX, sigX] = normfit(SPI);  % SPI的正态分布拟合
u = normcdf(SPI, muX, sigX); % 计算SPI的累积分布函数值
[muY, sigY] = normfit(SSMI); % SSMI的正态分布拟合
v = normcdf(SSMI, muY, sigY); % 计算SSMI的累积分布函数值

%% 删除异常值
u(u(:,1) == 1, 1) = 0.999999; % 删除值为1的异常点
v(v(:,1) == 1, 1) = 0.999999; % 删除值为1的异常点

EP = [u, v]; % 组合为边际概率矩阵
EP(EP <= 0) = 1e-4;  % 避免零值

% 选择最优Copula模型
[Family1, thetahat1, loglik1] = doublecopulaselect(EP, 'aic');

% 计算联合分布概率
PPCDF = copulascdf(EP, Family1, thetahat1);

% 根据选定的最优Copula模型类型计算传播阈值
if strcmp(Family1, 'gauss')
    T = 1;
elseif strcmp(Family1, 't')
    T = 2;
elseif strcmp(Family1, 'clayton')
    T = 3;
elseif strcmp(Family1, 'frank')
    T = 4;
elseif strcmp(Family1, 'gumbel')
    T = 5;
else
    T = 3;
end

family = methods{T};  % 获取最优模型名称
Meteorology_data = -5:0.01:0;  % 气象数据范围

%% 步骤2:计算传播阈值
probabilities = [];  % 用于存储不同等级干旱的概率

% 计算每个等级(轻度、中度、重度、极度)对应的阈值和概率
for it = 1:4
    [PP, parameter1, parameter2, C] = Methods3(T, u, v, family, muX, sigX, muY, sigY, it);

    % 对概率进行排序,选择对应的最大概率值
    [sorted_PP, sorted_indices] = sort(PP, 'descend');
    max_value = sorted_PP(5 - it);  % 选择第it大的值
    zy = sorted_indices(5 - it);    % 该值的索引
    YZ(it) = Meteorology_data(1, zy); % 获取对应的阈值

    % 保存所有等级的概率值
    probabilities = [probabilities, max_value];
end

% 输出最终结果
fprintf('传播阈值:\n');
disp(ZY);

% 计算时间,并输出结果 代码全部请移步到公众号 趣品科研 回复 贝叶斯copula
toc;  % 结束计时

2.出图效果

在这里插入图片描述
不同等级气象干旱胁迫下诱发不同等级水文干旱的条件概率
在这里插入图片描述
触发不同等级水文干旱所对应的气象干旱阈值

总结

本文通过建立不同类型干旱传播过程的触发阈值模型,解析了在不同等级气象干旱胁迫下诱发次一级干旱类型的触发阈值。通过贝叶斯概率模型,我们推导了气象干旱与水文干旱、农业干旱、地下水干旱之间的条件概率关系,进一步明确了气象干旱引发水文干旱、农业干旱和地下水干旱的概率及其触发阈值。该模型有效揭示了气象干旱对各级干旱类型的传播机制及其动态变化,为干旱预警系统的建立和水资源管理提供了理论依据和技术支持。

参考文献
韩知明.中国多类型干旱时空演变特征及其传播过程研究[D].西安理工大学,2022.DOI:10.27398/d.cnki.gxalu.2022.001707.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2304875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统学习算法:专题十二 记忆化搜索

什么是记忆化搜索&#xff0c;我们先用一道经典例题来引入&#xff0c;斐波那契数 题目一&#xff1a; 相信一开始学编程语言的时候&#xff0c;就一定碰到过这道题&#xff0c;在学循环的时候&#xff0c;我们就用for循环来解决&#xff0c;然后学到了递归&#xff0c;我们又…

c++入门-------命名空间、缺省参数、函数重载

C系列 文章目录 C系列前言一、命名空间二、缺省参数2.1、缺省参数概念2.2、 缺省参数分类2.2.1、全缺省参数2.2.2、半缺省参数 2.3、缺省参数的特点 三、函数重载3.1、函数重载概念3.2、构成函数重载的条件3.2.1、参数类型不同3.2.2、参数个数不同3.2.3、参数类型顺序不同 前言…

51单片机测试题AI作答测试(DeepSeek Kimi)

单片机测试题 DeepSeek Kimi 单项选择题 &#xff08;10道&#xff09; 6题8题判断有误 6题判断有误 智谱清言6题靠谱&#xff0c;但仔细斟酌&#xff0c;题目出的貌似有问题&#xff0c;详见 下方。 填空题 &#xff08;9道&#xff09; 脉宽调制&#xff08;Pulse …

去耦电容的作用详解

在霍尔元件的实际应用过程中&#xff0c;经常会用到去耦电容。去耦电容是电路中装设在元件的电源端的电容&#xff0c;其作用详解如下&#xff1a; 一、基本概念 去耦电容&#xff0c;也称退耦电容&#xff0c;是把输出信号的干扰作为滤除对象。它通常安装在集成电路&#xf…

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(二)

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷&#xff08;二&#xff09; 第一部分&#xff1a;网络平台搭建与设备安全防护任务书第二部分&#xff1a;网络安全事件响应、数字取证调查、应用程序安全任务书任务 1&#xff1a;应急响应&…

深入剖析:基于红黑树实现自定义 map 和 set 容器

&#x1f31f; 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。&#x1f31f; 在 C 标准模板库&#xff08;STL&#xff09;的大家庭里&#xff0c;map和set可是超级重要的关联容器成员呢&#x1f60e;&#x…

20-R 绘图 - 饼图

R 绘图 - 饼图 R 语言提供来大量的库来实现绘图功能。 饼图&#xff0c;或称饼状图&#xff0c;是一个划分为几个扇形的圆形统计图表&#xff0c;用于描述量、频率或百分比之间的相对关系。 R 语言使用 pie() 函数来实现饼图&#xff0c;语法格式如下&#xff1a; pie(x, l…

第438场周赛:判断操作后字符串中的数字是否相等、提取至多 K 个元素的最大总和、判断操作后字符串中的数字是否相等 Ⅱ、正方形上的点之间的最大距离

Q1、判断操作后字符串中的数字是否相等 1、题目描述 给你一个由数字组成的字符串 s 。重复执行以下操作&#xff0c;直到字符串恰好包含 两个 数字&#xff1a; 从第一个数字开始&#xff0c;对于 s 中的每一对连续数字&#xff0c;计算这两个数字的和 模 10。用计算得到的新…

软考教材重点内容 信息安全工程师 第17章 网络安全应急响应技术原理与应用

17.1 网络安全应急响应概述 网络安全应急响应是针对潜在发生的网络安全事件而采取的网络安全措施。 17.1.1 网络安全应急响应概念 网络安全应急响应是指为应对网络安全事件&#xff0c;相关人员或组织机构对网络安全事件进行监测、预警、分析、响应和恢复等工作。 17.2.3 网络安…

点击修改按钮图片显示有问题

问题可能出在表单数据的初始化上。在 ave-form.vue 中&#xff0c;我们需要处理一下从后端返回的图片数据&#xff0c;因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …

Node.js技术原理分析系列——Node.js的perf_hooks模块作用和用法

Node.js 是一个开源的、跨平台的 JavaScript 运行时环境&#xff0c;它允许开发者在服务器端运行 JavaScript 代码。Node.js 是基于 Chrome V8 引擎构建的&#xff0c;专为高性能、高并发的网络应用而设计&#xff0c;广泛应用于构建服务器端应用程序、网络应用、命令行工具等。…

用DeepSeek来帮助学习three.js加载3D太极模形

画一个平面的太极图是很容易&#xff0c;要实现3D的应该会很难 一、参考3D模形效果 看某网页看到一个效果&#xff0c;像一个3D太极球&#xff0c;觉得挺有趣&#xff0c;挺解压的&#xff0c;想进一步去了解下这是如何实现 效果&#xff1a; 链接地址&#xff1a; http://www.…

【JavaEE进阶】Spring Boot配置文件

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗 如有错误&#xff0c;欢迎指出~ 目录 SpringBoot配置⽂件 举例: 通过配置文件修改端口号 配置⽂件的格式 properties基本语法 读取配置⽂件 properties配置文件的缺点 yml配置⽂件 yml基本语法 yml和proper…

学习通用多层次市场非理性因素以提升股票收益预测

“Learning Universal Multi-level Market Irrationality Factors to Improve Stock Return Forecasting” 论文地址&#xff1a;https://arxiv.org/pdf/2502.04737 Github地址&#xff1a;https://github.com/lIcIIl/UMI 摘要 深度学习技术与量化交易相结合&#xff0c;在股…

【Godot4.3】基于绘图函数的矢量蒙版效果与UV换算

概述 在设计圆角容器时突发奇想&#xff1a; 将圆角矩形的每个顶点坐标除以对应圆角矩形所在Rect2的size&#xff0c;就得到了顶点对应的UV坐标。然后使用draw_colored_polygon&#xff0c;便可以做到用图片填充圆角矩形的效果。而且这种计算的效果就是图片随着其填充的图像缩…

DeepSeek开源周Day1:FlashMLA引爆AI推理性能革命!

项目地址&#xff1a;GitHub - deepseek-ai/FlashMLA 开源日历&#xff1a;2025-02-24起 每日9AM(北京时间)更新&#xff0c;持续五天&#xff01; ​ 一、开源周震撼启幕 继上周预告后&#xff0c;DeepSeek于北京时间今晨9点准时开源「FlashMLA」&#xff0c;打响开源周五连…

通过恒定带宽服务器调度改进时间敏感网络(TSN)流量整形

论文标题 英文标题&#xff1a;Improving TSN Traffic Shaping with Constant Bandwidth Server Scheduling 中文标题&#xff1a;通过恒定带宽服务器调度改进时间敏感网络&#xff08;TSN&#xff09;流量整形 作者信息 作者&#xff1a;Benjamin van Seggelen 指导教师&am…

如何查看图片的原始格式

问题描述&#xff1a;请求接口的时候&#xff0c;图片base64接口报错&#xff0c;使用图片url请求正常 排查发现是图片格式的问题&#xff1a; 扩展名可能被篡改&#xff1a;如果文件损坏或扩展名被手动修改&#xff0c;实际格式可能与显示的不同&#xff0c;需用专业工具验证…

赛前启航 | 三场重磅直播集结,予力微软 AI 开发者挑战赛!

随着微软 AI 开发者挑战赛的火热进行&#xff0c;赛前指导直播已成为众多参赛者获取技术干货、灵感碰撞和实战技巧的绝佳平台。继前两期的精彩呈现&#xff0c;第三、四、五期直播即将接连登场&#xff0c;为开发者们带来更加深入的 AI 技术剖析和项目实战指引。无论你是想进一…

VMware安装Centos 9虚拟机+设置共享文件夹+远程登录

一、安装背景 工作需要安装一台CentOS-Stream-9的机器环境&#xff0c;所以一开始的安装准备工作有&#xff1a; vmware版本&#xff1a;VMware Workstation 16 镜像版本&#xff1a;CentOS-Stream-9-latest-x86_64-dvd1.iso &#xff08;kernel-5.14.0&#xff09; …