使用点或多边形(QGIS3)采样栅格数据

许多科学和环境数据集都是栅格化栅格。高程数据(DEM)也作为栅格文件分发。在这些栅格文件中,将要表示的参数编码为栅格的像素值。通常,需要提取某些位置的像素值或在某个区域上对其进行汇总。QGIS通过处理算法可以使用此功能。点层的 样本栅格值 和多边形层的 区域统计

内容说明

给定美国大陆每天最高温度的栅格网格,我们需要提取所有市区的点层温度,并计算美国每个县的多边形层的平均温度。

你还会学到这些

  • 从QGIS目录中选择并删除多个图层。

获取数据

NOAA的 气候预测中心 提供 GIS 数据 与美国的温度和降水有关。 下载 最高温度的最新网格文件 。该文件被命名为 us.tmax_nohads_ll_{YYYYMMDD}_float.tif

我们将使用来自 2018美国地名字典 的CSV文件,代表美国城市地区。下载 城市地区地名词典文件

美国人口普查局 提供 TIGER/Line Shapefiles。你可以访问 FTP 网站 并下载加利福尼亚州的人口普查区shapefile。 下载 加利福尼亚人口普查区 文件。

为了方便起见,您可以直接从以下链接下载数据集:

us.tmax_nohads_ll_20190501_float.tif

2018_Gaz_ua_national.zip

tl_2018_us_county.zip

数据来源: [NOAACPC], [USGAZETTEER] [TIGER]

操作过程

  1. 2018_Gaz_ua_national.ziptl_2018_us_county.zip 解压缩并解压缩到计算机上的文件夹中。打开QGIS,然后在QGIS浏览器中找到 us.tmax_nohads_ll_20190501_float.tif 文件,将其拖到画布上。

../../_images/1129.png
  1. 您会在 Layers 面板中看到一个新的栅格图层 us.tmax_nohads_ll_20190501_float 。 此栅格图层包含在每个像素处记录的最高温度(以摄氏度为单位)。接下来,我们将加载市区点文件。该文件是文本文件,格式为 制表符分隔值(TSV) 。点击 Data Source Toolbar 上的 Open Data Source Manager 按钮。

../../_images/278.png
  1. 切换到 Delimited Text 标签。单击 File name 旁边的 按钮。并指定下载的文本文件的路径。在 File format 部分,选择 Custom delimiters ,然后选中 Tab。选择 INTPTLONG 作为 X field 的标签,选择 INTPTLAT 作为 Y field 标签。点击 Add ,然后点击 Close

../../_images/343.png
  1. 一个新的点层 2018_Gaz_ua_national 将被加载到 Layers 面板中。现在,我们准备在这些点上从栅格图层中提取值。转到 Processing ‣ Toolbox

../../_images/427.png
  1. 搜索并找到 Raster analysis ‣ Sample raster values 算法。双击以启动它。

../../_images/527.png
  1. 选择 2018_Gaz_ua_national 作为 Input Point Layer 。选择 us.tmax_nohads_ll_20190501_float 作为 Raster Layer to sample 。展开 Advanced parameters,然后输入 tmax 作为 Output column prefix 。点击 Run。处理完成后,请单击 Close

../../_images/626.png
  1. 一个新的 Sampled Points 层将被加载到 Layers 面板中。在 Attributes Toolbar 中选择 Identify 工具,然后单击任意一点。您将在 Identify Results 面板中看到显示的属性。您将看到一个名为 tmax_1 的新属性添加到每个功能。这是在该点的位置提取的栅格图层的像素值。 1 表示栅格的波段号。如果栅格图层具有多个波段,您将在输出图层中看到多个新列。

../../_images/726.png
  1. 我们分析的第一部分已经结束。让我们删除不必要的层。按住 Shift 键并选择 采样点2018_Gaz_ua_national 图层。右键单击并选择 Remove 以将其从QGIS中删除。当提示 Remove 2 legend entries? 时,选择 OK

../../_images/825.png
  1. 现在,我们将使用县图层对栅格进行采样并计算每个县的平均温度。在QGIS浏览器中找到 tl_2018_us_county.shp 文件,将其拖到画布上。

../../_images/926.png

注解

大多数处理算法将读取输入层并创建一个新层。但是 区域统计 算法是不同的。它修改输入层并为其添加新属性。这就是为什么首先解压缩输入文件很重要的原因。QGIS可以直接从zip存档中加载图层,但不能修改压缩的图层。如果无法更新输入层,则处理算法将失败。

  1. 一个新的图层 tl_2018_us_county 将被加载到图层面板。转到 Processing ‣ Toolbox

../../_images/1024.png
  1. 搜索并找到 Raster analysis ‣ Zonal statistics 算法,然后双击以启动它。

../../_images/1130.png
  1. 选择 us.tmax_nohads_ll_20190501_float 作为栅格图层,并选择 tl_2018_us_county 作为 Vector layer containing zones。输入 tmax_ 作为 Output column prefix。点击 Statistics 旁边的 进行计算。

../../_images/1226.png
  1. 仅选择 平均值 值,然后单击 OK

../../_images/1325.png
  1. 单击 Run 以开始处理。该算法可能需要几分钟才能完成。点击 Close

../../_images/1424.png
  1. 如前所述, 区域统计 算法不会创建新图层,而是会修改区域图层。右键单击 tl_2018_us_county 层,然后选择 Open Attribute Table

../../_images/1524.png
  1. 您将看到一个名为 tmax_mean 的新列添加到属性表。其中包含为每个要素在多边形上提取的平均温度值。存在一些空值,因为这些县(属于阿拉斯加,夏威夷和波多黎各)不在栅格图层范围内。

../../_images/1621.png