14.5. 分析工具#
14.5.1. 栅格化和内插数据#
可以通过多种方式完成向数据的网格转换。 最简单的技术是将矢量几何图形(点、线或多边形)转换到栅格数据上,必要时恢复属性值。 另一种方法是通过统计运算符在规则网格上内插点数据(例如现场测量)。 以下部分中的数字的彩色版本, 请参阅 seewww.iste.co.uk/baghdadi/qgis1.zip 。
QGIS处理步骤#
QGIS中气候数据的准备,仅打开以下文件:
postesSynop.json
synop.201611.csv
目标是将表 "synop.201611.csv" 的字段“t”(温度, 单位为开尔文)附加到载体 "postesSynop.json",然后保留仅位于法国大都市的站点。
在“图层”面板中,右键单击“layer postesSynop”,单击“属性”, 在“Layer Properties”窗口中,单击选项卡“连接”,单击按钮添加矢量连接。 在“Add vector join”窗口中,设置如下:
加入层: synop.201611
联接字段: numer_sta
目标字段: ID
选中选项选择要联接的字段并选择字段“t”
在QGIS中,选择“postesSynop”层的站点,位于法国大都市(ID以“0”开头):
left("ID" , 1) = '0'
将Lambert 93/RGF93中的选择另存为“fr_temperature.shp”, 由于“t”字段作为文本连接,因此应将其转换为小数值。
在QGIS中,创建一个名为“tempKelvin”的新字段,字段类型为十进制数(长度: 10,精度: 2),并复制“t”字段的值。 图 14.14 , 图 14.15 。

图 14.14 2016年11月的气象站#

图 14.15 2016年11月的气温#
2.车站栅格化
目标是对气象站进行栅格化。 在菜单栏中, 单击 Raster > Conversion > Rasterize (Vector to Raster)…, 在“Rasterize”窗口中,设置如下:
输入文件 (shapefile): fr_temperature
属性字段: tempKelvin
栅格化矢量(栅格)的输出文件: fr_temp_rasterize.tif
栅格大小(像素):
Width: 100,
Height: 100
单击“OK”。
3.站点 数据插值,目标是对气象站记录的温度进行空间内插。在菜单栏中,单击 Raster > Analysis > Grid (Interpolation)… ,如 图 14.16 。

图 14.16 数据插值设置#
在“网格(插值)”窗口中,设置如下:
输入文件: fr_temperature o Z field: tempKelvin
输出文件: fr_temp_interpol.tif
选中“调整大小”选项:宽度: 100、高度: 100
单击“OK”,如 图 14.17 。

图 14.17 网格插值设置#
4.结果分析
图像 “fr_temp_rasterize.tif” 和 “fr_temp_interpol.tif” 都是100 x 100像素的规则网格, 如 图 14.18 、如 图 14.19 。 在第一个中,每个非零像素给出记录的温度和气象站位置。 任何空像素都对应于缺乏信息。 在第二个中,所有像素都使用反距离加权填充。 所以网格化不是插值!

图 14.18 气象站栅格化(一点=一个站)#

图 14.19 站点记录的温度的空间插值#
5.对应 GDAL
命令上面使用的工具相当于在终端中启动以下命令,对于栅格化:
gdal_rasterize -a tempKelvin -ts 100 100 -l france_temperature
france_temperature.shp fr_temp_rasterize.tif
其中:
[-a]:标识要用作烧录值的属性字段,
[-ts]: 以像素为单位设置输出文件大小,
[-l]: 表示要使用的矢量层。
- 有关更多信息,请参阅以下网页:
对于插值:
gdal_grid -zfield tempKelvin -l france_temperature -outsize 100 100
-of GTiff fr_temperature.shp fr_temp_interpol.tif
其中:
[-zfield]: 标识用于计算插值的属性字段,
[-outsize]: 以像素为单位设置输出文件大小,
[-of]: 设置输出格式,
[-l]: 表示要使用的矢量层。
一些有用的选项:
[-a]: 设置插值算法
- 有关更多信息,请参阅以下网页: