目录

上一主题

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

下一主题

10.5. 使用处理框架进行批次处理


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

10.4. 点资料插值法

GIS 系统常常把离散的点资料以插值法创造连续的面资料。 自然界中很多东西都是连续的,像是海拔、土壤、温度等等,如果我们想要分析这种面资料, 是不可能把整个表面全部测量一次的。实际上的做法会是我们˙在野外只取几个测量点, 然后测量点之外的其他地方就靠插值法求得其值。在 QGIS 之中, 可以透过内建的 "Interpolation plugin" 附加元件来执行以上所述的事情。 我们要使用位于德州的 Arlington 湖的水深测量数据,再根据这些数据制作地形图和等高线图。 可以在一下链接下载。

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

10.4.1. 点资料插值法操作流程

1. 打开 QGIS,选择 Layer ‣ Add Layer ‣ Add Vector Layer.. ,加载我们所需的数据, "Arlington_Soundings_2007_stpl83.shp"和"Boundary2004_550_stpl83.shp" 两图层,你会看到 QGIS 中载入了 2 个图层, "Boundary2004_550_stpl83"是湖泊的边界,我们先在图层选单列表中把这个图层取消勾选。如 图 10.44

_images/4_xob.png

图 10.44 加载图层

5. 这样第二个图层"Arlington_Soundings_2007_stpl83",会显现出来。虽然资料看起来像是线,但它其实是一连串很接近的点。 如 图 10.45

_images/5_xrn.png

图 10.45 加载图层

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

_images/6_xfa.png

图 10.46 放大显示

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

_images/7_xrw.png

图 10.47 Identify查看

8. 现在我们需要确认 "Interpolation plugin" 已启用,选择 Raster ‣ Interpolation ‣ Interpolation 。 在本节中我们用的是在 "Toolbox" 工具进行的搜索。如 图 10.48

_images/8_xn5.png

图 10.48 Interpolation plugin工具

9. 在 Interpolation 中,选择"Arlington_Soundings_2007_stpl83"作为 Vector layers , 在 Interpolation attribute 选择"ELEVATION", 然后按 + 。 调整 Cellsize XCellsize 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 模组。

_images/9_xzn.png

图 10.49 TIN Interpolation设置

  1. 看到"elevation_tin"图层载入到 QGIS 后,以右键点选,选择 Zoom to layer ,如 图 10.50

_images/10_xil.png

图 10.50 放大查看

11. 如此一来就可以看到刚刚产生的湖泊底面全貌。插值法对于资料收集区以外的地方并不准确,所以接下来我们要依照湖泊的边缘 才接我们的湖泊底面。选择 Raster ‣ Extraction ‣ Clip by mask layer... , 如 图 10.51

_images/11_xab.png

图 10.51 选择Clip by mask layer

12. 把 Output file 命名为"elevation_tin_clipped.tif"。 然后选择"Boundary2004_550_stpl83" 作为我们的 Mask layer ,最后按 Run ,如 图 10.52

_images/12_xln.png

图 10.52 Clip by mask layer设置

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

_images/13_xh1.png

图 10.53 选择Properties

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

_images/14_x71.png

图 10.54 Symbology设置

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

_images/15_xsa.png

图 10.55 Tranparency设置

16. 现在我们已经从湖泊的水深数据点,插值出了湖泊的高程(深度)地图,再让我们试试看产生等深线吧。 选择 Raster ‣ Extraction ‣ Contours ,如 图 10.56

_images/16_x2f.png

图 10.56 选择Contours

17. 在 Contour 视窗中的输出 Output file for contour lines , 输入"contours"我们要产生 5 间隔的等高线,因此在 Interval between contour lines 栏位中 输入"5.00" 。勾选 Attribute name 方框,然后按下 OK ,如 图 10.57

_images/17_xdo.png

图 10.57 Contours设置

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

_images/18_xs0.png

图 10.58 选择Properties

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

_images/19_xqg.png

图 10.59 Labels设置

  1. 最后,你就会看到标签数值已沿着各等高线标记上去了,如 图 10.60

_images/20_x4i.png

图 10.60 分析结果