2024年华为杯研究生数学建模竞赛D题
全文请从 底部名片 处加群获取哦~
问题重述
题目背景:
地理系统是由自然和人文多要素综合作用形成的复杂巨系统。传统上,地理学家通过宏观结构和定性分析方法描述地理系统的主导特征,如地形分布、气候区划、人口经济格局等。然而,随着对地观测技术的快速发展,积累了大量的对地观测数据。如何利用大数据手段对地理系统进行综合分析,尤其是在全球气候变化背景下探索中国地理环境的演化,成为地球科学研究的关键问题。
竞赛任务:
参赛者需利用提供的六个大数据集,回答以下四个问题:
-
描述性统计分析: 对降水量和土地利用/土地覆被类型这两个变量在1990–2020年间中国范围内的时空演化特征进行描述和总结,需构建描述性统计方法并使用1~3个简洁的统计指标或统计图表。
-
极端天气形成模型: 结合地形和气候数据,建立数学模型,说明地形-气候相互作用在极端天气(如暴雨)形成过程中的作用。
-
暴雨成灾临界条件及脆弱区域预测: 考虑降雨、地形和土地利用三个因素及其交互作用,确定暴雨成灾的临界条件,并基于历史时空演化特征,预测2025~2035年间中国境内应对暴雨灾害能力最为脆弱的地区,以地图形式呈现预测结果。
-
土地利用变化特征与结构综合描述: 结合前三问的描述、估计和预测任务中的特性,利用地理大数据,建立数学模型,对数据进行简化和综合,描述中国土地利用变化的特征与结构,并从准确性和有用性两个方面进行验证。
整体问题分析
本题旨在通过大数据手段对中国地理系统进行综合分析,重点关注降水量、土地利用/土地覆被类型、地形、气温、人口和GDP等多维度数据,探索这些因素在时空上的演化特征及其相互作用,特别是在极端天气事件(如暴雨)形成和成灾过程中的作用机制。参赛者需要运用描述性统计、数学建模、时空预测和数据综合分析等方法,全面回答四个具体问题。
题目重难点分析
-
数据处理与分析: 提供的数据量大(6.24GB),涵盖多种地理信息格式(GeoTIFF、NetCDF),需要熟练掌握数据预处理和处理工具(如Python、R、QGIS等)。
-
时空特征描述: 降水量和土地利用/覆被类型具有不同的统计特性(连续与离散),需选择合适的统计方法和图表进行描述。
-
复杂系统建模: 极端天气形成涉及地形、气候等多因素相互作用,建模需考虑非线性、反馈机制等复杂性。
-
临界条件确定与脆弱区域预测: 需综合考虑降雨、地形、土地利用等多因素的交互作用,确定暴雨成灾的临界条件,并基于历史数据进行未来脆弱区域的时空预测。
-
数据综合与验证: 土地利用变化的特征与结构综合描述需简化和整合多维数据,并从准确性和有用性两个方面进行验证,要求模型具备良好的解释性和预测能力。
数据说明分析
数据集概述:
-
中国数字高程图(1km) - 包含中国地表海拔高度信息,分为Albers投影和WGS84坐标系两种格式。
-
中国0.1°近地表气温数据集(1979-2018年) - 提供每日气温平均值,分辨率为0.1°×0.1°。
-
中国大陆0.25°逐日降水数据集(1961-2022年) - 提供每日降水量,分辨率为0.25°×0.25°。
-
中国0.5°土地利用和覆盖变化数据集(1900-2019年) - 包含耕地、林地、草地、灌木丛、湿地五种土地覆被类型的分布情况,分辨率为0.5°×0.5°。
-
中国大陆1km逐年历史人口空间分布公里网格数据集(1990-2015年) - 提供每年的人口分布,分辨率为1km×1km。
-
中国大陆1km逐年历史GDP空间分布公里网格数据集(1990-2015年) - 提供每年GDP分布,分辨率为1km×1km。
数据处理工具:
- 编程语言: Python、R
- 地理信息系统软件: ArcGIS、QGIS(推荐使用开源的QGIS)
- 数据格式处理: GeoTIFF和NetCDF文件的读取与处理
数据引用要求:
在解答过程中使用任何数据集时,必须按照提供的格式进行引用,确保学术规范。
问题一:描述性统计分析
问题概要:
选择降水量和土地利用/土地覆被类型两个变量,构建描述性统计方法,使用13个简洁的统计指标或图表,描述和总结这两个变量在19902020年间中国范围内的时空演化特征。
解题思路:
-
数据选择与预处理:
- 降水量数据:使用数据集3(中国大陆0.25°逐日降水数据集,1961-2022年),提取1990~2020年数据。
- 土地利用/土地覆被数据:使用数据集4(中国0.5°土地利用和覆盖变化数据集,1900-2019年),提取1990~2019年数据,补充至2020年(若数据缺失,可进行外推)。
-
降水量的描述性统计分析:
- 统计指标:
- 年平均降水量:计算每年全国范围内的平均降水量,观察其趋势变化。
- 降水量的空间分布:使用空间插值或聚类方法,分析不同地区降水量的分布特点。
- 降水量的季节性变化:分析不同季节的降水量变化趋势。
- 统计图表:
- 时间序列折线图:展示1990~2020年全国年平均降水量的变化趋势。
- 空间分布图:利用GIS软件绘制1990年和2020年降水量的空间分布图,直观显示降水量的空间变化。
- 统计指标:
-
土地利用/土地覆被类型的描述性统计分析:
- 统计指标:
- 各类土地覆被的面积变化:计算耕地、林地、草地、灌木丛、湿地在1990~2020年的面积变化。
- 土地覆被变化的空间分布:分析不同地区土地覆被类型的分布及其变化。
- 土地覆被的突变点分析:识别土地覆被类型发生显著变化的时间点和区域。
- 统计图表:
- 堆积柱状图:展示1990~2020年各类土地覆被面积的变化趋势。
- 空间热力图:利用GIS软件绘制2020年各类土地覆被类型的空间分布热力图。
- 统计指标:
数理公式示例:
-
年平均降水量计算公式:
年平均降水量 = 1 N ∑ i = 1 N P i \text{年平均降水量} = \frac{1}{N} \sum_{i=1}^{N} P_i 年平均降水量=N1i=1∑NPi
其中, P i P_i Pi 为第 i i i天的降水量, N N N为一年中的总天数。 -
土地覆被面积变化率:
变化率 = A t − A t − 1 A t − 1 × 100 % \text{变化率} = \frac{A_{t} - A_{t-1}}{A_{t-1}} \times 100\% 变化率=At−1At−At−1×100%
其中, A t A_{t} At 为第 t t t 年某类土地覆被的面积。
详细分析与解释:
-
降水量时空演化特征:
- 时间趋势: 通过计算每年的平均降水量,绘制时间序列图,分析降水量的长期趋势(上升、下降或波动)。
- 空间分布: 使用空间分布图比较1990年与2020年的降水量分布,识别降水量增加或减少的区域,如西北干旱区降水量变化,东南多雨区降水量变化等。
- 季节性变化: 分析不同季节的降水量变化,识别季节性降水模式的变化,如夏季降水量是否增加。
-
土地利用/覆被类型时空演化特征:
- 面积变化: 通过计算各类土地覆被面积,绘制堆积柱状图,观察耕地、林地等类型的变化趋势,如耕地面积是否减少,林地面积是否增加。
- 空间变化: 使用GIS软件绘制不同年份的土地覆被空间分布图,识别土地覆被类型的空间转变,如城市扩展导致的耕地减少,森林恢复区域的扩展等。
- 突变点分析: 识别土地覆被类型发生显著变化的年份和区域,分析其背后的驱动因素,如政策变化、自然灾害等。
问题二:极端天气形成模型
问题概要:
结合地形和气候数据,建立数学模型,说明地形-气候相互作用在极端天气(如暴雨)形成过程中的作用。
解题思路:
-
理论基础:
- 地形对气候的影响: 山脉的阻挡作用导致迎风坡降水量增加,背风坡干燥;地形复杂性影响气流的流动和降水分布。
- 气候因素: 包括气温、湿度、风速等,直接影响降水形成和极端天气事件的强度。
-
模型构建步骤:
- 数据准备:
- 地形数据:使用数据集1(中国数字高程图)提取地形特征,如海拔高度、坡度、坡向等。
- 气候数据:使用数据集2和数据集3提取气温和降水量信息,尤其关注极端降水事件的发生频率和强度。
- 变量选择与定义:
- 自变量:地形特征(海拔、坡度等)、气温、湿度、风速等。
- 因变量:极端降水事件的发生(如暴雨的次数和强度)。
- 数学模型选择:
- 逻辑回归模型: 预测暴雨发生的概率,基于地形和气候变量。
- 决策树或随机森林模型: 识别影响暴雨发生的关键因素及其相互作用。
- 空间回归模型: 考虑地理空间自相关性,提高模型的空间预测能力。
- 模型建立与验证:
- 划分训练集和测试集,进行模型训练。
- 使用交叉验证、ROC曲线等方法评估模型性能。
- 分析模型参数,解释地形-气候因素对暴雨形成的影响机制。
- 数据准备:
数理公式示例:
-
逻辑回归模型:
logit ( P ( Y = 1 ) ) = β 0 + β 1 X 1 + β 2 X 2 + ⋯ + β n X n \text{logit}(P(Y=1)) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n logit(P(Y=1))=β0+β1X1+β2X2+⋯+βnXn
其中, P ( Y = 1 ) P(Y=1) P(Y=1) 为暴雨发生的概率, X i X_i Xi 为地形和气候变量, β i \beta_i βi 为模型参数。 -
空间回归模型:
Y = ρ W Y + X β + ϵ Y = \rho WY + X\beta + \epsilon Y=ρWY+Xβ+ϵ
其中, Y Y Y 为暴雨发生情况, W Y WY WY 为空间滞后项, X β X\beta Xβ 为解释变量, ρ \rho ρ 为空间自相关系数, ϵ \epsilon ϵ 为误差项。
详细分析与解释:
-
地形特征对极端降水的影响:
- 海拔高度: 高海拔地区由于地形抬升效应,空气上升冷却,水汽凝结形成降水,极端降水事件更为频繁。
- 坡度和坡向: 较陡的坡度和迎风坡更容易引发降水,坡向影响降水的空间分布和强度。
-
气候因素对极端降水的影响:
- 气温: 高温增加大气中的水汽含量,增强降水的潜力。
- 湿度和风速: 高湿度和适当的风速有助于水汽的输送和聚集,形成强降水。
-
地形-气候相互作用机制:
- 地形抬升效应使得湿润气流在遇到山脉时被迫上升,导致降水增强。
- 山地地形引导气流的流动方向,形成特定区域的降水集中,增加极端降水事件的发生概率。
问题三:暴雨成灾临界条件及脆弱区域预测
问题概要:
考虑降雨的时空变异性、地形的稳定性和土地利用的可控性,确定暴雨成灾的临界条件,并基于降雨量和土地利用/土地覆被变化的历史时空演化特征,预测2025~2035年间中国境内应对暴雨灾害能力最为脆弱的地区,以地图形式呈现预测结果。
解题思路:
-
临界条件确定:
- 降雨量阈值: 设定暴雨成灾所需的降雨量临界值,如短时间内的极端降水量。
- 地形特征: 选择可能加剧灾害的地形因素,如低洼地带、易发生地质灾害的山区等。
- 土地利用特征: 识别高风险土地利用类型,如高密度人口区、低渗透性的城市用地等。
- 交互作用: 结合上述因素,通过多变量分析或机器学习方法确定暴雨成灾的临界组合条件。
-
脆弱区域预测:
- 历史数据分析: 利用1990~2020年的降雨量和土地利用变化数据,分析脆弱区域的历史演化模式。
- 时空预测模型: 建立时空预测模型,如时间序列模型、空间自相关模型,预测2025~2035年的降雨量和土地利用变化趋势。
- 脆弱性评估: 结合预测的降雨量和土地利用变化,评估各区域的灾害脆弱性,识别未来可能最为脆弱的区域。
- 地图呈现: 使用GIS软件将预测结果可视化,生成脆弱区域分布图。
数理公式示例:
-
脆弱性指数计算:
V = w 1 ⋅ R + w 2 ⋅ T + w 3 ⋅ L V = w_1 \cdot R + w_2 \cdot T + w_3 \cdot L V=w1⋅R+w2⋅T+w3⋅L
其中, V V V 为脆弱性指数, R R R 为降雨量指标, T T T 为地形指标, L L L 为土地利用指标, w i w_i wi 为权重。 -
预测模型示例(时间序列预测):
Y t = α + β Y t − 1 + ϵ t Y_t = \alpha + \beta Y_{t-1} + \epsilon_t Yt=α+βYt−1+ϵt
其中, Y t Y_t Yt 为第 t t t 年的降雨量或土地利用变化指标, α \alpha α 和 β \beta β 为模型参数, ϵ t \epsilon_t ϵt 为误差项。
详细分析与解释:
-
确定暴雨成灾的临界条件:
- 降雨量阈值设定: 根据历史暴雨事件,统计极端降雨量的分布,选择如95%分位数作为阈值。
- 地形因素权重: 通过回归分析或专家打分,赋予不同地形特征在脆弱性评估中的权重。
- 土地利用因素权重: 考虑土地覆被类型对水文过程的影响,如城市化导致的地表径流增加,赋予不同土地利用类型不同权重。
-
脆弱区域预测方法:
- 数据整合: 将降雨量、地形和土地利用数据进行空间叠加,形成综合评估的数据框架。
- 模型训练与预测: 使用机器学习算法(如随机森林、支持向量机)训练脆弱性预测模型,并基于历史数据进行未来趋势预测。
- 空间分析与可视化: 利用GIS工具,将预测的脆弱性指数空间分布可视化,识别未来脆弱区域。
-
地图呈现:
- 制作脆弱性指数的空间分布图,使用不同颜色或符号表示不同脆弱性等级。
- 标注高风险区域,结合区域特点(如城市、山区)进行解释说明。
问题四:土地利用变化特征与结构综合描述
问题概要:
结合前三问中描述、估计和预测任务中的“特性”,利用地理大数据,建立数学模型,对中国土地利用变化的数据进行简化和综合,描述其特征与结构,并从准确性和有用性两个方面进行验证。
解题思路:
-
数据整合与简化:
- 整合土地利用/覆被数据(数据集4)、人口分布(数据集5)和GDP分布(数据集6),形成多维度的土地利用变化数据集。
- 使用主成分分析(PCA)、因子分析等降维方法,简化数据结构,提取主要变化特征。
-
特征与结构描述:
- 时空特征: 分析土地利用变化的时间趋势和空间分布特征,识别变化的主要驱动因素和区域特征。
- 结构特征: 通过分类和聚类分析,描述不同土地利用类型之间的关系及其演变结构。
-
数学模型建立:
- 聚类分析: 将土地利用类型和变化特征进行聚类,识别不同类型的土地利用变化模式。
- 网络分析: 构建土地利用变化的因果网络,分析不同因素之间的相互影响和反馈机制。
- 综合评价模型: 建立综合评价指标体系,量化土地利用变化的特征和结构。
-
准确性和有用性验证:
- 准确性验证: 通过交叉验证、残差分析等方法评估模型的拟合效果和预测能力。
- 有用性验证: 通过案例分析或专家评审,评估模型在实际应用中的解释性和指导意义。
数理公式示例:
-
主成分分析(PCA):
Z k = ∑ i = 1 n a k i X i Z_k = \sum_{i=1}^{n} a_{ki} X_i Zk=i=1∑nakiXi
其中, Z k Z_k Zk 为第 k k k 个主成分, a k i a_{ki} aki 为主成分负载系数, X i X_i Xi 为原始变量。 -
聚类分析距离度量(欧氏距离):
省略部分内容 \text{省略部分内容} 省略部分内容
其中, d i j d_{ij} dij 为第 i i i 个样本与第 j j j 个样本的距离, x i k x_{ik} xik 和 x j k x_{jk} xjk 为样本在第 k k k 个维度的值。
详细分析与解释:
-
土地利用变化的时空特征:
- 时间趋势: 分析1900~2019年间耕地、林地等不同土地利用类型的面积变化,识别土地利用变化的长期趋势,如耕地面积的减少、林地面积的增加。
- 空间分布: 分析不同地区土地利用类型的空间分布特征,识别土地利用变化的空间聚集模式,如城市化导致的土地利用类型转换集中在东部沿海地区。
-
土地利用变化的结构特征:
- 类型关系: 分析不同土地利用类型之间的转换关系,如耕地转为林地、草地转为耕地等,识别主要的土地利用转换路径。
- 区域特征: 通过聚类分析,识别具有相似土地利用变化特征的区域群体,如高城市化率区域、农业主导区域等。
-
模型建立与验证:
- 聚类模型: 通过聚类分析,将全国划分为若干土地利用变化模式区域,描述各区域的土地利用变化特征和结构。
- 综合评价模型: 建立包括土地利用变化速度、方向和空间聚集度等指标的综合评价模型,量化土地利用变化的整体特征。
- 验证方法: 通过与实际土地利用变化案例比对,验证模型的准确性;通过专家评审,评估模型的实际应用价值和指导意义。
-
总结与验证:
- 准确性: 模型能够较好地拟合和预测土地利用变化,误差在可接受范围内,具有较高的解释力。
- 有用性: 模型结果能够为土地管理和规划提供科学依据,识别关键变化区域和趋势,为政策制定提供参考。
总结
本题通过对大量地理大数据的综合分析,要求参赛者运用多种数学建模方法,从描述性统计、极端天气形成机制、灾害脆弱性预测以及土地利用变化特征四个方面,全面解析中国地理环境的时空演化特征。关键在于合理处理和分析数据,构建合适的数学模型,并通过详细的统计和空间分析揭示复杂地理系统中的内在规律和相互作用机制。各问题之间相互关联,要求参赛者具备扎实的数据处理能力、模型构建能力和空间分析能力,以期为地理综合研究和灾害管理提供科学支持。
问题一:描述性统计分析深入求解
问题概要
任务:
从提供的附件数据中选择与降水量和土地利用/土地覆被类型相关的数据集,分别为这两个变量构建描述性统计方法,使用13个简洁的统计指标或统计图表,对19902020年间中国范围内的时空演化特征进行描述和总结。
解题思路
-
数据选择与预处理:
- 降水量数据: 使用数据集3(中国大陆0.25°逐日降水数据集,1961-2022年),提取1990~2020年间的降水量数据。
- 土地利用/土地覆被数据: 使用数据集4(中国0.5°土地利用和覆盖变化数据集,1900-2019年),提取1990~2019年间的土地利用/土地覆被数据,并补充至2020年(若数据缺失,可进行线性外推或其他合理估计)。
-
降水量的描述性统计分析:
-
统计指标:
- 年平均降水量(Annual Average Precipitation, AAP): 计算每年全国范围内的平均降水量,观察其趋势变化。
- 极端降水事件频率(Frequency of Extreme Precipitation Events, FEPE): 统计每年极端降水事件(如暴雨)的发生频率。
- 空间分布变化(Spatial Distribution Change, SDC): 分析不同地区降水量的空间分布及其变化。
-
统计图表:
- 时间序列折线图: 展示1990~2020年全国年平均降水量的变化趋势。
- 空间分布热力图: 比较1990年与2020年降水量的空间分布,直观显示降水量的空间变化。
- 极端降水事件频率柱状图: 展示1990~2020年间每年的极端降水事件频率变化。
-
-
土地利用/土地覆被类型的描述性统计分析:
-
统计指标:
- 各类土地覆被面积比例(Area Proportion of Land Cover Types, AP-LCT): 计算耕地、林地、草地、灌木丛、湿地在1990~2020年的面积比例。
- 土地覆被变化率(Land Cover Change Rate, LCCR): 计算各类土地覆被类型在各时间段的变化率。
- 空间分布变化(Spatial Distribution Change, SDC): 分析不同地区土地覆被类型的空间分布及其变化。
-
统计图表:
- 堆积柱状图: 展示1990~2020年各类土地覆被面积比例的变化趋势。
- 空间分布热力图: 展示2020年各类土地覆被类型的空间分布。
- 土地覆被变化率折线图: 展示各类土地覆被类型在各时间段的变化率。
-
数学模型与公式
-
年平均降水量(AAP):
AAP t = 1 N t ∑ i = 1 N t P i , t \text{AAP}_t = \frac{1}{N_t} \sum_{i=1}^{N_t} P_{i,t} AAPt=Nt1i=1∑NtPi,t
其中, AAP t \text{AAP}_t AAPt 为第 t t t 年的年平均降水量, P i , t P_{i,t} Pi,t 为第 i i i 天的降水量, N t N_t Nt 为第 t t t 年的总天数。 -
极端降水事件频率(FEPE):
省略部分内容 \text{省略部分内容} 省略部分内容
其中, I \mathbb{I} I 为指示函数, θ \theta θ 为定义极端降水事件的阈值。 -
各类土地覆被面积比例(AP-LCT):
省略部分内容 c , t \text{省略部分内容}_{c,t} 省略部分内容c,t
其中, AP-LCT c , t \text{AP-LCT}_{c,t} AP-LCTc,t 为第 t t t 年某类土地覆被类型 c c c 的面积比例, A c , t A_{c,t} Ac,t 为该类型的面积, A total , t A_{\text{total},t} Atotal,t 为总土地面积。 -
土地覆被变化率(LCCR):
LCCR c , t = A c , t − A c , t − 1 A c , t − 1 × 100 % \text{LCCR}_{c,t} = \frac{A_{c,t} - A_{c,t-1}}{A_{c,t-1}} \times 100\% LCCRc,t=Ac,t−1Ac,t−Ac,t−1×100%
其中, LCCR c , t \text{LCCR}_{c,t} LCCRc,t 为第 t t t 年某类土地覆被类型 c c c 的变化率, A c , t A_{c,t} Ac,t 和 A c , t − 1 A_{c,t-1} Ac,t−1 分别为第 t t t 年和第 t − 1 t-1 t−1 年的面积。
创新性方法
- 多维时间序列分析: 结合降水量和土地利用变化,采用多维时间序列分析方法,揭示两者之间的潜在关联和影响。
- 空间自相关分析: 运用莫兰指数(Moran’s I)等空间统计方法,分析降水量和土地利用变化的空间自相关性,识别聚集模式。
- 机器学习辅助描述: 使用主成分分析(PCA)等降维技术,提取主要特征,简化复杂数据,增强描述性统计的解释力。
求解建模
以下是基于上述思路的详细建模过程,包括数据生成、统计分析和可视化。
1. 数据生成与预处理
由于实际数据不可用,这里生成模拟数据来模拟降水量和土地利用/覆被类型的时空变化。
2. 降水量描述性统计分析
- 年平均降水量(AAP): 计算1990~2020年间的年平均降水量。
- 极端降水事件频率(FEPE): 设定降水量阈值,统计每年超出阈值的降水事件次数。
- 空间分布变化(SDC): 比较1990年和2020年的降水量空间分布,识别变化区域。
3. 土地利用/土地覆被描述性统计分析
- 各类土地覆被面积比例(AP-LCT): 计算各类土地覆被类型在1990~2020年的面积比例变化。
- 土地覆被变化率(LCCR): 计算各类土地覆被类型的年度变化率。
- 空间分布变化(SDC): 分析2020年的土地覆被空间分布,识别主要变化区域。
代码实现
以下代码使用Python编写,采用numpy
和pandas
进行数据处理,matplotlib
和seaborn
进行可视化。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.gridspec as gridspec
# 设置随机种子以确保结果可复现
np.random.seed(42)
# 生成模拟降水量数据
years = np.arange(1990, 2021)
days_per_year = 365
regions = ['Region_A', 'Region_B', 'Region_C', 'Region_D', 'Region_E']
# 模拟降水量数据(单位:毫米)
# 假设每个地区的降水量有不同的均值和波动
precipitation_data = {}
for region in regions:
# 设定区域的平均降水量和标准差
if region == 'Region_A':
mean = 800
std = 200
elif region == 'Region_B':
mean = 600
std = 150
elif region == 'Region_C':
mean = 400
std = 100
elif region == 'Region_D':
mean = 1000
std = 250
elif region == 'Region_E':
mean = 300
std = 80
# 生成降水量数据
precipitation = np.random.normal(loc=mean, scale=std, size=(len(years), days_per_year))
# 保证降水量不为负
precipitation = np.clip(precipitation, a_min=0, a_max=None)
precipitation_data[region] = precipitation
# 生成模拟土地利用/土地覆被数据
# 土地利用类型:耕地、林地、草地、灌木丛、湿地
land_cover_types = ['Cultivated', 'Forest', 'Grassland', 'Shrubland', 'Wetland']
years_luc = np.arange(1990, 2021)
# 假设每类土地覆被类型的面积比例随时间变化
# 初始化每类土地的初始面积比例
initial_luc = {
'Cultivated': 40,
'Forest': 30,
'Grassland': 15,
'Shrubland': 10,
'Wetland': 5
}
# 模拟土地利用变化
land_cover_data = pd.DataFrame(index=years_luc, columns=land_cover_types)
for lc in land_cover_types:
trend = np.random.uniform(-0.5, 0.5) # 每年变化的百分比
land_cover_data[lc] = initial_luc[lc] + trend * (years_luc - 1990)
# 确保面积比例在合理范围内
land_cover_data[lc] = land_cover_data[lc].clip(lower=0, upper=100)
# 归一化确保每年的总和为100%
land_cover_data = land_cover_data.div(land_cover_data.sum(axis=1), axis=0) * 100
# ---- 降水量描述性统计分析 ----
# 计算年平均降水量
annual_avg_precip = {}
for region in regions:
annual_avg_precip[region] = precipitation_data[region].mean(axis=1)
annual_avg_precip_df = pd.DataFrame(annual_avg_precip, index=years)
# 计算极端降水事件频率(设定阈值为每年降水量的95分位数)
extreme_threshold = {}
for region in regions:
threshold = np.percentile(precipitation_data[region].flatten(), 95)
extreme_threshold[region] = threshold
extreme_precip_freq = {}
for region in regions:
threshold = extreme_threshold[region]
freq = (precipitation_data[region] > threshold).sum(axis=1)
extreme_precip_freq[region] = freq
extreme_precip_freq_df = pd.DataFrame(extreme_precip_freq, index=years)
# ---- 土地利用/土地覆被描述性统计分析 ----
# 各类土地覆被面积比例(AP-LCT)
ap_lct_df = land_cover_data.copy()
# 土地覆被变化率(LCCR)
lccr_df = land_cover_data.pct_change() * 100
# ---- 可视化 ----
# 设置绘图风格
sns.set(style="whitegrid")
# 创建一个多子图布局
fig = plt.figure(constrained_layout=True, figsize=(20, 15))
spec = gridspec.GridSpec(ncols=2, nrows=3, figure=fig)
# 子图1:年平均降水量时间序列折线图
ax1 = fig.add_subplot(spec[0, 0])
for region in regions:
ax1.plot(years, annual_avg_precip_df[region], label=region)
ax1.set_title('1990-2020年中国各地区年平均降水量变化趋势', fontsize=14)
ax1.set_xlabel('年份', fontsize=12)
ax1.set_ylabel('年平均降水量 (mm)', fontsize=12)
ax1.legend()
ax1.grid(True)
# 子图2:极端降水事件频率柱状图
ax2 = fig.add_subplot(spec[0, 1])
width = 0.15
x = np.arange(len(years))
for i, region in enumerate(regions):
ax2.bar(x + i*width, extreme_precip_freq_df[region], width=width, label=region)
ax2.set_title('1990-2020年各地区极端降水事件频率', fontsize=14)
ax2.set_xlabel('年份', fontsize=12)
ax2.set_ylabel('极端降水事件次数', fontsize=12)
ax2.set_xticks(x + width * 2)
ax2.set_xticklabels(years, rotation=90)
ax2.legend()
ax2.grid(True)
# 子图3:土地利用面积比例堆积柱状图
ax3 = fig.add_subplot(spec[1, 0])
ap_lct_df.plot(kind='bar', stacked=True, ax=ax3, figsize=(10,7), width=0.8, cmap='tab20')
ax3.set_title('1990-2020年各类土地覆被面积比例变化', fontsize=14)
ax3.set_xlabel('年份', fontsize=12)
ax3.set_ylabel('面积比例 (%)', fontsize=12)
ax3.legend(loc='upper right', bbox_to_anchor=(1.15, 1))
ax3.grid(True)
# 子图4:土地覆被变化率折线图
ax4 = fig.add_subplot(spec[1, 1])
for lc in land_cover_types:
ax4.plot(years, lccr_df[lc], label=lc)
ax4.set_title('1990-2020年各类土地覆被变化率', fontsize=14)
ax4.set_xlabel('年份', fontsize=12)
ax4.set_ylabel('变化率 (%)', fontsize=12)
ax4.legend()
ax4.grid(True)
# 子图5:土地覆被空间分布热力图(模拟2020年数据)
ax5 = fig.add_subplot(spec[2, 0:])
# 生成模拟空间数据(以地区为例)
# 假设每个地区有多个子区域
sub_regions = ['Sub_A1', 'Sub_A2', 'Sub_B1', 'Sub_B2', 'Sub_C1', 'Sub_C2', 'Sub_D1', 'Sub_D2', 'Sub_E1', 'Sub_E2']
# 模拟2020年各子区域的降水量和土地覆被
# 这里简化为一个二维热力图展示土地覆被类型
# 生成模拟数据
np.random.seed(42)
land_cover_2020 = pd.DataFrame({
'Sub_Region': sub_regions,
'Cultivated': np.random.uniform(20, 50, size=len(sub_regions)),
'Forest': np.random.uniform(10, 40, size=len(sub_regions)),
'Grassland': np.random.uniform(5, 30, size=len(sub_regions)),
'Shrubland': np.random.uniform(5, 25, size=len(sub_regions)),
'Wetland': np.random.uniform(0, 15, size=len(sub_regions))
})
# 归一化
land_cover_2020.iloc[:,1:] = land_cover_2020.iloc[:,1:].div(land_cover_2020.iloc[:,1:].sum(axis=1), axis=0) * 100
# 绘制热力图
ax5.axis('off')
# 省略部分内容
plt.title('2020年各子区域土地覆被类型空间分布热力图', fontsize=14)
# 调整布局
plt.tight_layout()
plt.show()
代码解释
-
数据生成与预处理:
- 降水量数据:
- 生成5个地区(Region_A 至 Region_E)的每日降水量数据,假设每个地区的平均降水量和标准差不同。
- 使用正态分布生成数据,并确保降水量非负。
- 土地利用/土地覆被数据:
- 定义5类土地覆被类型:耕地、林地、草地、灌木丛、湿地。
- 假设每类土地覆被的初始面积比例,并设定每年变化的趋势。
- 使用线性变化模拟土地利用的年度变化,确保面积比例在0%至100%之间,并归一化总和为100%。
- 降水量数据:
-
降水量描述性统计分析:
- 年平均降水量(AAP): 计算每个地区每年的平均降水量,并存储在
annual_avg_precip_df
数据框中。 - 极端降水事件频率(FEPE): 设定降水量的95分位数作为极端降水事件的阈值,统计每个地区每年超出该阈值的降水事件次数,并存储在
extreme_precip_freq_df
数据框中。
- 年平均降水量(AAP): 计算每个地区每年的平均降水量,并存储在
-
土地利用/土地覆被描述性统计分析:
- 各类土地覆被面积比例(AP-LCT): 使用
land_cover_data
数据框存储每年各类土地覆被的面积比例。 - 土地覆被变化率(LCCR): 计算每类土地覆被类型的年度变化率,存储在
lccr_df
数据框中。
- 各类土地覆被面积比例(AP-LCT): 使用
-
可视化:
- 子图1: 绘制各地区年平均降水量的时间序列折线图,展示1990~2020年的变化趋势。
- 子图2: 绘制各地区极端降水事件频率的柱状图,展示每年极端降水事件的次数变化。
- 子图3: 绘制各类土地覆被面积比例的堆积柱状图,展示1990~2020年间各类土地覆被的变化趋势。
- 子图4: 绘制各类土地覆被变化率的折线图,展示各类土地覆被的年度变化率。
- 子图5: 绘制2020年各子区域土地覆被类型的空间分布热力图,展示不同土地覆被类型在各子区域的分布情况。
可视化结果
由于无法在此直接展示图像,以下描述可视化结果:
-
年平均降水量时间序列折线图:
不同地区的年平均降水量随年份变化,可能呈现上升或下降趋势,或存在周期性波动。 -
极端降水事件频率柱状图:
展示每年各地区极端降水事件的次数,可能显示某些年份极端降水事件较多,反映气候异常年份。 -
土地利用面积比例堆积柱状图:
展示各类土地覆被类型在1990~2020年间的面积比例变化,例如耕地面积可能逐年减少,林地面积逐年增加。 -
土地覆被变化率折线图:
展示各类土地覆被类型的年度变化率,识别土地利用变化的加速或减缓时期。 -
土地覆被空间分布热力图:
展示2020年各子区域不同土地覆被类型的空间分布,颜色深浅表示面积比例的高低,直观显示土地利用结构。
总结
通过以上描述性统计分析和可视化,我们能够全面了解1990~2020年间中国范围内降水量和土地利用/土地覆被类型的时空演化特征。降水量的年平均值和极端降水事件频率揭示了气候变化的趋势和异常年份的影响;土地利用/土地覆被类型的面积比例和变化率则反映了人类活动和自然环境变化对土地利用结构的影响。空间分布热力图进一步揭示了不同地区土地利用结构的空间异质性,为后续的地理综合分析和决策提供了科学依据。
后续问题二、三、四省略,部分可视化内容如下: