跳转至

42_计算面平均降雨量 QGIS3

原文链接: https://www.qgistutorials.com/en/docs/3/areal_mean_rainfall.html

计算面平均降雨量 (QGIS3)

水平衡计算、洪水模拟、径流预测、气候研究等常常需要水文流域内的平均降雨深度作为输入——这也被称为面降水量或面平均降雨量。

AMR 可以使用雨量计数据计算。通过使用雨量计位置和观测到的降水量,可以使用以下任一技术估算给定位置的平均降水量:

  1. 算术平均法:可以简单地取所有观测值的平均值。此方法假设降雨场是均匀的,且雨量计观测值是独立的,并对所有雨量计给予相等的权重。
  2. 泰森多边形法:此方法使用泰森多边形划分区域,并假设每个站点覆盖区域内的降雨是均匀的。此方法也称为面积加权平均法。这些假设对于低洼或平坦地形是合适的,但不适用于山区地形。
  3. 等雨量线法:这种插值技术计算等雨量线——连接等降水量的线。它假设两条等雨量线之间的降雨是均匀的。当雨量计网络密集时,此方法适用。
  4. 距离加权/格网法——这是一种插值技术,通过创建栅格格网,并根据到站点的距离估算每个像素的值。一旦所有格网点都被估算出来,就对它们求和,然后将总和除以格网单元数量以获得面平均降水量。
  5. 地统计方法:降雨受局部因素(如海拔)影响强烈。使用多元回归或克里金法技术,可以考虑空间自相关性,并获得更好的精度。当雨量计站分布均匀且密集时,这些方法适用。

在本教程中,我们将学习使用泰森多边形方法计算面平均降雨量的 QGIS 工作流程。

任务概述

在本教程中,我们将利用全球历史气候网络站测量的降水量,计算佛罗里达州每个水文流域的面平均降雨量。

您将学到的其他技能

  • 如何删除具有空值的数据。
  • 如何修复图层中的无效几何图形。
  • 如何查看处理历史记录并使用相同参数重新运行工具。
  • 如何融合多边形并汇总统计信息。
  • 如何在处理算法中仅使用选定的要素。

获取数据

我们将使用 NOAA 气候数据HydroSHEDS美国人口普查局制图边界 数据图层。

站点降水量

  1. 访问 NOAA 气候数据 网站。点击搜索工具。

../../_images/cd01.png

  1. 在“选择天气观测类型/数据集”中选择 Global Summary of the Month,然后在“选择日期范围”中选择2020年7月,在“搜索范围”中选择 States,在“输入搜索词”中键入 Florida。点击搜索。

../../_images/cd02.png

  1. 点击加入购物车,在物品中点击查看物品。

../../_images/cd03.png

  1. 切换到自定义月度全球摘要 CSV,点击继续。

../../_images/cd04.png

  1. 选中地理位置,在“为自定义输出选择数据类型”中展开 Precipitation,选择 Precipitation (PRCP)。点击继续。

../../_images/cd05.png

  1. 输入邮箱地址,点击提交订单以下载数据。

../../_images/cd06.png

水文流域

  1. 转到 HydroSHEDS 网站 并点击下载。

../../_images/hydrosheds1.png

  1. 选择 HydroBASINS ‣ Standard ‣ North America and Caribbean ‣ hybas_na_lev06_v1c.zip

../../_images/hydrosheds2.png

  1. 输入邮箱地址,点击提交请求以下载数据。

../../_images/hydrosheds3.png

州边界

访问 制图边界文件 - Shapefile 页面。从 States 部分下载 cb_2018_us_state_500k.zip 文件。

为方便起见,您可以直接从以下链接下载所有数据集的副本:

florida_2020_07_prcp

hybas_na_lev06_v1c

cb_2018_us_state_500k

数据来源: [GHCN], [HYDROSHEDS], [USCENSUS]

操作步骤

  1. 打开 QGIS,点击打开数据源管理器。

../../_images/012.png

  1. 在数据源管理器对话框中,切换到分隔文本。点击文件名旁的 ,然后浏览并选择 florida_2020_07_prcp.csv 文件。

../../_images/022.png

  1. 现在,在几何图形定义下选择点坐标,X 字段和 Y 字段应分别为经度和纬度。选择几何图形 CRS 为 EPSG 4326 - WGS 84。点击添加。

../../_images/032.png

  1. 现在将添加一个新的点图层,点击打开属性表图标。

../../_images/042.png

  1. 在属性表中,字段 PRCP 代表该站点在 2020 年 7 月期间的降水量。另外,此数据以英寸为单位记录。注意有一些 Null 值,这在计算过程中可能会引起问题。对 PRCP 列进行排序,你会发现只有一小部分数据集是 Null 值。我们现在将删除具有 Null 值的站点。

../../_images/052.png

  1. 通过转到处理 ‣ 工具箱打开处理工具箱,搜索并定位矢量选择 ‣ 按属性提取算法。

../../_images/062.png

  1. 在按属性提取对话框中,选择输入图层为 florida_2020_07_prcp,然后在选择属性中选择 PRCP,接着在运算符中选择 is not null。点击已提取(属性)旁边的 ,选择保存到文件…,输入图层名称为 precipitation_filtered.gpkg 并点击运行。

../../_images/072.png

  1. 现在一个新图层被添加到画布,关闭旧图层,你可以看到带有 Null 值的站点已被移除。

../../_images/082.png

  1. 现在我们将从此图层生成泰森多边形。通过转到处理 ‣ 工具箱打开处理工具箱,搜索并定位矢量几何 ‣ 泰森多边形算法。

../../_images/092.png

注意

泰森多边形表示每个点周围的影响区域。每个多边形定义了一个区域,该区域比任何其他站点都更接近某个特定站点。这意味着任意一点的降水量被假定为与最近站点相同。

  1. 选择 precipitation_filtered 作为输入图层。由于我们没有流域边界外的任何雨量计站点数据,我们可以添加一些缓冲区。输入 15 作为缓冲区区域(范围的百分比)。点击泰森多边形旁的 ,选择保存到文件…,然后输入名称为 thiessen_polygons.gpkg。点击运行。

../../_images/103.png

  1. 一个新图层 thiessen_polygons 将被添加到画布。让我们将此图层裁剪到州边界。在浏览器中搜索 cb_2018_us_state_500k.shp 文件并将其拖到画布上。

../../_images/113.png

  1. 州图层与项目 CRS 的 CRS 不同。您将收到一个提示,提供将此 CRS 转换为项目 CRS 的不同选项。在选择转换对话框中,您可以选择默认转换并点击确定。

../../_images/123.png

  1. 我们现在将 thiessen polygons 图层裁剪到佛罗里达州边界。点击按区域选择要素或单击图标,然后点击佛罗里达州。

../../_images/132.png

  1. 通过转到处理 ‣ 工具箱打开处理工具箱,搜索并定位矢量叠加 ‣ 裁剪算法。

../../_images/142.png

  1. 在裁剪对话框中,选择输入图层为 thiessen_polygons,在叠加图层中选择 cb_2018_us_state_500K 图层,并勾选仅选中的要素复选框,然后点击已裁剪旁的 并选择保存到文件…,接着输入名称为 thiessen_polygons_clipped.gpkg。点击运行。

../../_images/152.png

  1. 裁剪后的泰森多边形图层 thiessen_polygons_clipped 将被添加到画布。关闭所有其他图层的可见性。由于我们的任务是计算每个流域的平均降雨量,我们现在将加载代表流域的多边形。从浏览器中找到 hybas_na_lev06_v1c.shp 图层并将其添加到画布。

../../_images/162.png

  1. 你会注意到每个流域被许多泰森多边形覆盖,并且每个多边形跨越多个流域。为了可视化这一点,打开图层样式面板图标,将不透明度更改为 75%。我们现在将相交这两个图层,以将泰森多边形切割到每个流域的边界。

../../_images/172.png

  1. 通过转到处理 ‣ 工具箱打开处理工具箱,搜索并定位矢量叠加 ‣ 相交算法。

../../_images/181.png

  1. 在相交对话框中,选择输入图层为 thiessen_polygons_clipped,叠加图层为 hybas_na_lev06_v1c,然后点击已相交旁的 并选择保存到文件…,接着输入名称为 thiessen_polygons_basin.gpkg。点击运行。

../../_images/191.png

  1. 执行将失败,并出现错误信息 has invalid geometry. Please fix the geometry or change the Processing setting to the “Ignore invalid input features” option.。您可以在 处理无效几何图形 (QGIS3) 教程中了解更多关于此错误的信息。

../../_images/201.png

  1. 要修复几何图形,通过转到处理 ‣ 工具箱打开处理工具箱,搜索并定位矢量几何 ‣ 修复几何图形算法。

../../_images/211.png

  1. 在修复几何图形对话框中,选择输入图层为 hybas_na_lev06_v1c,点击已修复几何图形旁的 并选择保存到文件…,输入文件名称为 hybas_na_lev06_v1c_fixed.gpkg 并点击运行。

../../_images/221.png

  1. 现在一个新图层将被添加到画布。我们现在可以再次尝试相交。无需从头运行工具并填写所有参数,我们可以从处理历史中检索预填充的对话框,并仅修改叠加图层。点击处理 ‣ 历史记录。

../../_images/231.png

  1. 从列表中双击 native:intersection 算法。

../../_images/241.png

  1. 将叠加图层更改为 hybas_na_lev06_v1c_fixed 并点击运行。

../../_images/251.png

  1. 现在一个新图层将被加载,你可以看到 thiessen_polygons_basin 已根据流域边界进行了裁剪。

../../_images/26.png

  1. 现在,让我们计算每个流域来自泰森多边形的平均降雨量值。这是使用聚合工具完成的,该工具允许我们在计算属性值统计信息的同时融合单个多边形。现在,通过转到处理 ‣ 工具箱打开处理工具箱,搜索并定位矢量几何 ‣ 聚合算法。

../../_images/271.png

  1. 在聚合对话框中,选择输入图层为 thiessen_polygons_basin,选中除 PRCPHYBAS_ID 外的所有字段,然后点击删除选定字段。

../../_images/281.png

  1. 在按表达式分组中选择 HYBAS_ID。这意味着该工具将融合所有具有相同 HYBAS_ID 值的多边形。在我们的例子中,这些将是落在一个流域内的所有泰森多边形。在聚合部分,我们可以配置如何从所有被融合的多边形中聚合不同的字段值。对于 PRCP,点击表达式按钮输入以下表达式。该表达式计算每个多边形的面积加权分数。将聚合函数设置为 sum,这将汇总所有面积加权分数,从而得出面积加权平均值。对于 HYBAS_ID,将聚合函数更改为 first_value。由于我们按 HYBAS_ID 对泰森多边形进行分组,所有值都相同,first_value 函数将使用每个流域中第一个多边形的属性值。点击已聚合旁的 ,选择保存到文件…,输入文件名称为 areal_mean_rainfall.gpkg 并点击运行。

bash (PRCP * $area) / sum($area)

../../_images/291.png

  1. 一个新图层将被添加到画布,让我们打开属性表来查看。点击打开属性表图标。

../../_images/301.png

  1. 字段 PRCP 包含每个流域以英寸为单位的面平均降雨量。

../../_images/311.png


如果您想提供反馈或分享您对本教程的体验,请在下方评论。(需要 GitHub 账户)