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”字段的值。
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)…
在“网格(插值)”窗口中:
设置如下:
输入文件: fr_temperature o Z field: tempKelvin
输出文件: fr_temp_interpol.tif
选中“调整大小”选项:
宽度: 100,
高度: 100
单击“OK”

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

气象站栅格化(一点=一个站);
图2.6. a)b)

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