10.4. 点资料插值法¶
GIS 系统常常把离散的点资料以插值法创造连续的面资料。 自然界中很多东西都是连续的,像是海拔、土壤、温度等等,如果我们想要分析这种面资料, 是不可能把整个表面全部测量一次的。实际上的做法会是我们˙在野外只取几个测量点, 然后测量点之外的其他地方就靠插值法求得其值。 在 QGIS 之中, 可以通过内建的 "Interpolation plugin" 附加元件来执行以上所述的事情。 我们要使用位于德州的 Arlington 湖的水深测量数据,再根据这些数据制作地形图和等高线图。 可以在一下链接下载。
http://www.qgistutorials.com/downloads/Shapefiles.zip
10.4.1. 点资料插值法操作流程¶
1. 打开 QGIS,选择 图 10.44 。
,加载我们所需的数据, "Arlington_Soundings_2007_stpl83.shp"和"Boundary2004_550_stpl83.shp" 两图层,你会看到 QGIS 中载入了 2 个图层, "Boundary2004_550_stpl83"是湖泊的边界,我们先在图层选单列表中把这个图层取消勾选。如
图 10.44 加载图层¶
5. 这样第二个图层"Arlington_Soundings_2007_stpl83",会显现出来。虽然资料看起来像是线,但它其实是一连串很接近的点。 如 图 10.45 。

图 10.45 加载图层¶
6. 点选 Zoom 钮,缩放到任一小区域后,就可以看到点了。每个点的座标是差分"DGPS"的测量值, 其值代表湖泊在特定位置由"Depth Sounder"测得的深度。如 图 10.46 。

图 10.46 放大显示¶
7. 选择 Identify 工具然后点选任一个点,在面板的右侧,上面记载此点的属性值。在本例中,"ELEVATION"属性 就是湖泊在此点的深度,而我们的任务就是要利用这些数值进行插值,求得湖泊的深度谱面以及等高线。 如 图 10.47 。

图 10.47 Identify查看¶
8. 现在我们需要确认 "Interpolation plugin" 已启用,选择 图 10.48 。
。 在本节中我们用的是在 "Toolbox" 工具进行的搜索。如
图 10.48 Interpolation plugin工具¶
9. 在 Interpolation 中,选择"Arlington_Soundings_2007_stpl83"作为 Vector layers , 在 Interpolation attribute 选择"ELEVATION", 然后按 + 。 调整 Cellsize X 和 Cellsize Y 坐标,.这个数值代表输出网格的每个像素大小。 由于本来源资料的投影座标系统是以 Feet-US 来当单位,每个像素最终会是 5 feet 的方形大小。 点选在输出文件右侧的 ... ,把 Output file 命名为"elevation_tin.tif", 最后按下 OK ,如 图 10.49 。
备注
插值的结果会随着你选择的插值方法和参数而有很大的不同。QGIS 支持两种内插方法,分别为 Triagulated Irregular Network (TIN) 和 Inverse Distance Weighting (IDW) , TIN 法常被使用于高程资料上,而 IDW 法则在内插其他种类的资料时较为常见,例如矿物富集度、人口等等。 更多资讯请参考 QGIS 官方文档中的 Spatial Analysis 模组。

图 10.49 TIN Interpolation设置¶
看到"elevation_tin"图层载入到 QGIS 后,以右键点选,选择 Zoom to layer ,如 图 10.50 。

图 10.50 放大查看¶
11. 如此一来就可以看到刚刚产生的湖泊底面全貌。插值法对于资料收集区以外的地方并不准确,所以接下来我们要依照湖泊的边缘 才接我们的湖泊底面。选择 图 10.51 。
, 如
图 10.51 选择Clip by mask layer¶
12. 把 Output file 命名为"elevation_tin_clipped.tif"。 然后选择"Boundary2004_550_stpl83" 作为我们的 Mask layer ,最后按 Run ,如 图 10.52 。

图 10.52 Clip by mask layer设置¶
13. 新的影像"elevation_tin_clipped"完成后会被载入 QGIS 中。接着我们来调整一下图层的样式,显示各处海拔的不同, 注意在"elevation_tin"的最大与最小高度值。以右键点选"elevation_tin_clipped"图层,进入 Properties , 如 图 10.53 。

图 10.53 选择Properties¶
14. 前往 Style 分页,在 Render type 选择"Singleband pseudocolor", 在 Generate new color map 面板中,选择"Spectral"色阶,由于我们想看到的是湖泊深度图而不是单纯的高度图。 红色会被指派到较深的位置,而水浅的地方会以蓝色表达。按下 Classify ,如 图 10.54 。

图 10.54 Symbology设置¶
15. 切换至 Tranparency 分页,我们要移除掉所有在外框区域、全黑色的像素, 所以在 Additional no data value 一栏输入"0"然后按下 OK ,如 图 10.55 。

图 10.55 Tranparency设置¶
16. 现在我们已经从湖泊的水深数据点,插值出了湖泊的高程(深度)地图,再让我们试试看产生等深线吧。 选择 图 10.56 。
,如
图 10.56 选择Contours¶
17. 在 Contour 视窗中的输出 Output file for contour lines , 输入"contours"我们要产生 5 间隔的等高线,因此在 Interval between contour lines 栏位中 输入"5.00" 。勾选 Attribute name 方框,然后按下 OK ,如 图 10.57 。

图 10.57 Contours设置¶
处理完成后,等高线会被载入为"contours"图层。在图层上按右键选择 Properties ,如 图 10.58 。

图 10.58 选择Properties¶
19.前往到 Labels 分页,在最上面的下拉框选 Single labels , 勾选 Label this layer with 的方框旁边栏位选择 "ELEV" ,在底下的位置 Placement 中, 选择"Curved" 最后按下 OK ,如 图 10.59 。

图 10.59 Labels设置¶
最后,你就会看到标签数值已沿着各等高线标记上去了,如 图 10.60 。

图 10.60 分析结果¶