目录

上一个主题

10.2. 邻近分析

下一个主题

10.4. 点资料插值法


本教程由OSGeo中国中心维护。

10.3. 使用点或多边形对影像资料取样

许多科学与环境的资料库使用的是网格状的影像资料,高程资料 (DEM) 同样的也是以影像档的方式发行。 这些影像档中,要呈现的资料数值就是影像中每个像素的像素值。有些时候,我们会需要找出在特定地点的像素值, 或是把某个区域的所有像素一同囊括以进行后续分析。这些功能在 QGIS 中可以透过两个附加元件来达成, 分别是 "Point Sampling Tool" 和 "Zonal Statistics plugin" 。 我们使用美国的“当日最高温”资料网格影像,找出所有美国都市区的当日最高温度,以及美国境内所有县的平均当日最高温。 可在以下进行下载 http://www.qgistutorials.com/downloads/us.tmax_nohads_ll_20140525_float.tif

http://www.qgistutorials.com/downloads/2013_Gaz_ua_national.zip

http://www.qgistutorials.com/downloads/tl_2013_us_county.zip

10.3.1. 取样操作步骤

1. 打开QGIS,我们加载数据,选择 Layer ‣ Add Layer ‣ Add Raster Layer 选择 刚才"us.tmax_nohads_ll_{YYYYMMDD}_float.tif"然后按:guilabel:Add。图层载入后, 选择 Identify Features 具然后点选图层的任一处。你可以在“波段 1”中看到该点的摄氏温度值。 如 图 10.28

_images/2_x9o.png

图 10.28 查看影像

2. 接着把"2013_Gaz_ua_national.txt"进行加载。选择:menuselection:Layer --> Add Layer --> Add Delimited Text Layer 。 在 Create a Layer from Delimited Text File 视窗中,点选 File name 后面的按钮然后开启 "2013_Gaz_ua_national.txt"。选择 Custom delimiters 中的 Tab ,经纬度, 勾选 Use spatial index 然后按下:guilabel:Add ,如 图 10.29

_images/4_xy0.png

图 10.29 Delimited Text设置

3. 现在我们已做好从影像图层中取样的准备。请安装"Point Sampling Tool"附加元件,安装完附加元件后, 选择 Plugins ‣ Analyses ‣ Point sampling tool ,开启附加元件视窗,如 图 10.30

_images/6_x6l.png

图 10.30 Point sampling tool工具

7. 在 Point Sampling Tool 视窗中,在 Layer containing sampling points 要选择 "2013_Gaz_ua_national",而且我们必须要明确的指定所有会从输入图层转存到输出图层的栏位值, 因此请从"2013_Gaz_ua_national"图层中选择 "GEOID" 和 "NAME" 两栏位。我们可以一次从许多影像波段中取样, 不过因为我们目前使用的影像只有 1 个波段,所以选择"us.tmax_nohads_ll_{YYYYMMDD}_float: Band 1"即可。 把输出向量图层命名为"max_temparature.shp"后按下 OK ,程序就会开始执行,当执行结束后, 再按下 Close ,如 图 10.31

_images/7_xmw.png

图 10.31 Point sampling tool设置

8. 新的图层"max_temparature"会被载入到 QGIS 中。使用 Identify 工具,在任何一点上按一下,就可以浏览其属性。 你会看到有个称为"us.tmax_no"的属性,这就是在此点位置的影像像素值,如 图 10.32

_images/8_x3e.png

图 10.32 Identify查看

9. 我们分析的第一部分已经完成,现在来移除一些不需要的图层。按住 Shift 键然后 选择"max_temparature_at_urban_locations"和"2013_Gaz_ua_national"图层,以右键点选 Remove Layer , 就可把它们从 QGIS 的图层列表中移除,如 图 10.33

_images/9_x12.png

图 10.33 移除图层

10. 选择 Layer ‣ Add Layer ‣ Add Vector Layer ,选择刚才下载的"tl_2013_us_county.zip", 然后按 Open ,选择"tl_2013_us_county.shp"图层然后双击进行加载。"tl_2013_us_county"会加入到 QGIS 中。 本图层使用的投影法是 "EPSG:4269 NAD83" ,与影像的投影法不相符,所以我们必须先把新图层重投影到 "EPSG:4326 WGS84" 才行。 在"tl_2013_us_county"图层上按右键然后选择存档为 Export --> Save Features As.. , 如 图 10.34

_images/12_xv7.png

图 10.34 另存为

13. 在 Save Vector layer as.. 的视窗中, 按下 File name 后面按钮, 然后把新文件命名为"counties.shp"。从 CRS 下拉菜单选择 "WGS 84" 作为 CRS, 勾选 Add saved file to map ,最后按下 OK ,如 图 10.35

_images/13_xu4.png

图 10.35 另存为设置

14. 名称为"counties"的新图层会加入 QGIS 中。启用 "Zonal Statistics Plugins" 。由于它属于核心附加元件, 在QGIS中已经安装就绪了,如 图 10.36

_images/15_xpv.png

图 10.36 Zonal Statistics Plugins元件

15. 选择 Raster ‣ Zonal statistics ‣ Zonal statistics ,如果Raster中找不到Zonal statistics元件, 我们可以点击Toolbox来搜索元件,并点击打开,如 图 10.37

_images/16_xe4.png

图 10.37 Zonal statistics工具

16. 在 Raster layer 的栏位选择 "us.tmax_nohads_ll_{YYYYMMDD}_float" , 包含 Polygon layer containing the zones 选择"counties", 在 Output column prefix 输入 "ZS_" 。 然后按下 OK ,如 图 10.38

_images/17_x58.png

图 10.38 Zonal statistics设置

  1. 依照你的资料大小而定,分析可能需要一点时间,如 图 10.39

_images/18_xs2.png

图 10.39 Zonal statistics分析

18. 处理结束后,选择"counties" 图层,使用 Identify 工具点一下任意一个县市的多边形图征, 你可以图层中出现了新的属性: "ZS_count" , "ZS_mean" 和 "ZS_sum" 。这三个属性分别为影像像素的总数、像素值的平均, 以及像素值的总和。由于我们要求的是平均温度, "ZS_mean" 栏位就是我们所需要的,如 图 10.40

_images/19_x7z.png

图 10.40 Identify查看

19. 让我们来调整一下图层样式,建立一张温度分布地图。在 "counties"图层上按右键选择:guilabel:Properties , 如 图 10.41

_images/20_xe5.png

图 10.41 点击Properties

20. 切换至 Symbology 分页, 选择 Graduated 样式然后 Column 选择 "ZS_mean" 。选择一个你喜欢的 Color RampMode ,然后按下 Classify 以建立类别, 最后按下 OK ,如 图 10.42

_images/21_xq7.png

图 10.42 Symbology设置

21. 最后你会看到县市界的多边形地图现在已依照从影像网格中取出的平均最高气温数值设定好样式了, 如 图 10.43

_images/22_xr0.png

图 10.43 分析结果