栅格影像的基本分析与样式设定

许多的科学观测与研究产生的是栅格式影像(Raster)资料。这种资料以点阵图的方式呈现,点阵中的每个像素都有自己的特定数值。只要使用一些数学运算,就可以拿这些数值进行分析。QGIS 中的 Raster Calculator 功能具有许多基本的指令可供使用,在本教学中,会展示基本的影像计算功能操作,以及一些设定栅格式影像样式的选项。

以下是用于栅格图层

  • Multiband color:如果栅格有多个波段,则使用此样式。对于具有多个波段的卫星图像,通常是这种情况。

  • Paletted:如果单波段栅格附带索引调色板,则使用此样式。

  • Singleband gray:如果栅格既没有多个波段,也没有索引调色板(例如,高程模型栅格或山体阴影栅格就是这种情况),

    则将使用此样式进行渲染。

  • Singleband pseudocolor:这种样式不仅限于灰色,还使我们可以使用选择的颜色图来渲染光栅带。

内容说明

我们要使用人口密度的网格资料,呈现 1990 到 2000 年间,人口密度具有大幅度改变的地方。

获取资料

这边要使用的是 `Gridded Population of the World (GPW) v3<http://sedac.ciesin.columbia.edu/data/collection/gpw-v3>`_ 资料库中,以 ASCII 格式储存的、1990 年和 2000 年的全球网格化人口资料。

以下说明如何搜寻与下载相关资料。

前往 Population Density Grid, v3 download page.Data Attributes 中选择 .ascii format1° resolution1990 year ,然后按 Download. 。接下来你可能要建立一个免费帐号然后登入,或是直接使用底下的 Guest Download 来下载。如 图 81 ,接者以同样的方式取得 2000 year 年的资料。

../../_images/16.png

图 81 下载资料

下载完成后会有 2 个 zip 档。

为了方便起见,你也可以直接用下面的连结下载:

gl_gpwv3_pdens_90_ascii_one.zip

gl_gpwv3_pdens_00_ascii_one.zip

资料来源 GPW3

析与样式设定操作流程

1. 启动 QGIS,在上节我们已经知道了加载数据的方式,现在选择 Layer ‣ Add Layer ‣ Add Raster Layer.. ,如 图 82

../../_images/22.png

图 82 加载数据界面

2. 选择 Browser.移到下载文件的资料夹,点开 zip 档,我们可以看到我们所需要的资料,如 图 83

../../_images/32.png

图 83 加载数据界面

3. 每个 zip 档都有 2 个文档。我们选择人口数量有经过调整以符合联合国的统计数值。本教学使用调整过后的资料。选择 glds00ag60.asc 和``glds90ag60.asc`` 图层,然后双击加到界面中,如 图 84

../../_images/42.png

图 84 加载数据界面

4. 这个图层并没有定义坐标系统,因此我们得手动选择 EPSG:4326 作为这个以经纬度为单位的图层之坐标参考系统。我们点击QGIS视窗中右下角的`EPSG` ,如 图 85

../../_images/52.png

图 85 设置坐标参考系

5. 手动选择 EPSG:4326 作为这个以经纬度为单位的图层之座标参考系统。如果不是我们所需要的坐标,我们可以在搜索中直接搜索坐标进行更改。在打开坐标参考系统之前我们已经看到,已经是`EPSG:4326`坐标系统,我们确认一下就好,如 图 86

../../_images/62.png

图 86 设置坐标参考系

6. 现在两个图层都加载到 QGIS 内了。栅格影像会使用灰阶来呈现,颜色越深表示像素值越低,而颜色越浅表示像素值越高,如 图 87

../../_images/72.png

图 87 图层界面

7. 影像中的每个像素都有自身值,在这两个文件中,这个值就是人口密度。选择 Identify Features 后在影像的任一处点一下,就可以看到这个像素的人口密度值,如 图 88

../../_images/82.png

图 88 图层信息

8. 为了适当的呈现人口密度分布的图样,得调整一下样式才行。在图层名上按右键选择 Properties,或是直接在图层名字上单击鼠标两下,都可以进到图层属性的视窗。如 图 89

../../_images/92.png

图 89 图层属性

9. 我们找到 Symbology 分页下,在这里把 Render type 换成 Singleband pseudocolor,在 Color ramp 中选个颜色后按下 Classify`钮。会有 5 个新颜色和值显示出来,最后按下 :guilabel:`OK。如 图 90

../../_images/101.png

图 90 属性设置

10. 回到 QGIS 主画面,就可以看到影像使用类似温度分布图的概念着色。顺便也对另一个影像执行相同步骤。如 图 91

../../_images/111.png

11.接下来我们的分析目标是找出在 1990 年到 2000 年间有剧烈的人口变动的地方,方法则是计算这两个影像的每个像素数值的差异。现在我们选择 Raster ‣ Raster calculator。如 图 92

../../_images/121.png

12. 在 Raster bands 的选择框中, 可以点两下以选择某个图层。这里的波段命名方式是图层名称加上"@"再加上 波段编号,由于我们的影像都只有 1 个波段,所有每个影像都只会有“编号 1”。在影像计算的功能中,可以针对像素进行基本的 数学运算,为了找出人口密度差异,必须要在 2000 年的资料中减掉 1990 年的资料,所以计算式要输入"glds00ag60@1 - glds90ag60@1" 。把输出档命名为"pop_density_change_2000_1990.tif",在页面中勾选 Add result to project ,最后按 OK。如 图 93

../../_images/131.png
  1. 上一个步骤操作完成后,新图层会被加入到 QGIS 中。如 图 94

../../_images/141.png

14. 虽然灰阶看起来还不错,但我们还是可以改一个更能表达式的样式。在"pop_density_change_2000_1990"图层上按右键后进入 属性:guilabel:Properties,如 图 95

../../_images/151.png

15. 这次我们要把在同一个范围之内的像素值设成相同颜色。在设定之前,我们先到 Information 分页内看一下 这个影像的属性,尤其是最大值和最小值,如 图 96

../../_images/161.png

16. 接下来我们打开 Symbology 分页下,在 Render type 中选择:guilabel:Singleband pseudocolor ,在 Min/Max Value Settings 中把:guilabel:Color interpolation 调成 Discrete,之后按下 Add values manually,在这里我们把"Classes" 调成 "4" ,以建立 4 个类别,点一下类别的数值就可以进行更改。这里,色彩对应的规则是:像素值比这个类别的值低的所有像素,都会被设成这个类别的颜色。因为我们的影像的像素最小值 比 -2000 还高一点,所以我们把第一个类别的值设成 -2000,这样这个颜色代表的就是没有资料值(No Data Values)。我们按照上述方式把所有类别都设定完成,然后按下 :guilabel: OK ,如 图 97

../../_images/17.png

17. 现在人口变多或变少的地方就清楚的显示出来了。接下来使用 :guilabel: Zoom In 钮在欧洲附近拉一个矩形,缩进去看看细节,如 图 98

../../_images/18.png

18. 我们选择 Identify 后在影像深紫色含浅紫色处点看看,就可以确认刚刚的样式设定是没问题的。如 图 99

../../_images/19.png

19. 最后再让我们多做一步,把人口密度呈现 negative 的地方筛选出来。首先我们还是开启 Raster ‣ Raster calculator,如 图 100

../../_images/20.png

20. 输入如下所示的表示式,如果像素值符合表示式,输出的像素值就是"1" ,如果不符合,就会是"0"。这样我们就可以得到新的影像档,像素值为"1"时表示负增长,值为"0"时则没有负增长。表达式中的公式为:pop_density_change_2000_1990@1 < -10,把输出档命名为"negative_pop_change_2000_1990",勾选 :guilabel: Add result to project ,最后按 OK,如 图 101

../../_images/211.png

21. 新图层产生后,以右键进入属性 Properties,在属性分页中选择 Transparency 分页中的 Additional no data value ,在这个地方输入"0",这样的话值为"0"的像素也会被设成透明。最后按下 OK,如 图 102

../../_images/221.png
  1. 最后,我们看下生成的图层就只剩下所有的负人口增长区是黑色的了。如 图 103

../../_images/23.png

以上就是对栅格数据的样式进行修改,并使用计算器对数据进行的空间分析。