百科问答小站 logo
百科问答小站 font logo



等高线地图是如何画出来的? 第1页

  

user avatar   yeshanumich 网友的相关建议: 
      

谢邀。

简单概括,画等高线的步骤:如果有类似DEM这样的栅格地形数据,就可以直接找DEM画等高线。如果是一系列离散的高程数据点,那么绘制过程就是:定位高程数据 -- 空白区空间插值 -- 勾画等高线。

地理书上的各种等高线及其它相关的线,确实是经过大量的实地测量之后得到的。进行这些测量的人,大多数是有关部门(比如美国的USGS、NOAA、Land Survey之类的,中国估计是国土资源部?)专门负责搞测绘和地质调查的,而不是一般意义上的地理学家。而且实在不行的话,还有遥感呢。。。

海底的地形,可以用声呐等设备来进行测绘。至于降水量、气压、气温之类的等值线的数据,全国各地的观测点肯定比你想象的多,所以不用担心,它们都是靠谱的哈。

不过对于降水量、气压、气温等数据,再多的观测网点,确实也不可能覆盖每一寸土地,难免有空白。如果你想问的是『在数据点之间的空白范围,等值线都是如何画出来的』,这里就涉及到绘制等值线时会用到的给空白区域进行空间插值的算法。常见的算法有这么几个:

  • 三角测量法(TIN)
  • 反距离权重法(IDW)
  • 克里金法(Kriging)
  • 趋势法(Trend)
  • 最小曲率法(Minimum Curvature)

这几种常见算法是怎么运作的?下面直接放以前我讲课的课件截图加以说明好了。。。

三角测量法 Triangulated Irregular Network - TIN:

核心思想:直截了当地假设两点间的坡度不变

三角测量法是用得最多的一种方法,因为它在数学上最简单,也是最易于手画的一种方法。以地形为例。比如,我们现在有这么一个区域,区域内有一堆海拔高程数据点(当年做课件的时候瞎编的数据,单位假设为米):

每一个红三角就是一个数据点,旁边的数字是高程。我们现在用三角测量法来绘制这片区域的等高线图。第一步,就是要建立TIN三角网络。也就是说,要把这些点用直线连接起来,组成一个三角形的网格。那么具体哪些点之间需要连线?这里有一个Delaunay法则:三角形网格中,任何三角形的外接圆,都不会含有别的数据点。也就是说,所有三角形的最小的那个内角都被最大化。

这里的绿色虚线组成的三角网络就是符合Delaunay法则的网格,而淡紫色的那个三角形就是不符合要求的三角形。

有了TIN三角形网格,下一步就可以画等高线了。这里的主要思路就是根据两个端点的高程,按比例分割每一条虚线。换句话说,我们需要假设,任何两个高程点之间的坡度,都是不变的。比如,我决定每50米画一条等高线,那么,对于1030米和694米那两个点之间的虚线,应该这么分割:

照此方法,对每个三角形的每一条边都做出划分,那这个区域就大概会变成这样(局部):

好了,然后下一步就是把所有数值相同的点用尽量平滑的曲线给连起来(局部):

这一步,有的教材说在三角测量法的体系下,应该用直线段来连接高程相同的标记点。那其实是做3D地形模型的时候采用的手段。在画等高线的时候,我还是倾向于用平滑曲线。如果用直线段,做出来的效果会类似下面这张图:

(来源:德克萨斯大学)

个人觉得这种锯齿状的『等高线』看起来很淡腾,所以我自己从来都是用的平滑曲线。画好曲线之后,把三角网络的辅助线以及标记线擦除,做好标注,边缘地区根据情况进行一下适当的调整,一张等高线地图就画好了:


上面这张图是在PPT里手画的,所以并不太准确,曲线也并不太平滑。如果交给计算机(比如ArcGIS)自动画图,那么做出来的图要更好,等高线之间的间隔会更平均,曲线也会更平滑。

以上是TIN的方法。其它的几种算法各有各的特色,但一般都没法用手画了(除非你有最强大脑那种超能力),得让计算机来画。其它几种方法之间相似的是,它们都考虑了空间距离的权重,而非直接假设两点间的斜率不变。

首先,剩下几种画法都涉及到寻找(或指定、定义)某个数据点的相邻点(Neighboring points)。其实,TIN的三角网格就是定义相邻点的一种特殊方法。除此之外,还有区域搜索、半径搜索、栅格搜索、方向搜索等很多方法,这里不展开了。

当我们定义好了相邻点之后,就可以运用其它几种算法来画图了。假设经过空间搜索之后,1030和694那两个点仍旧被定义为相邻点,那剩下几种算法应该怎么画?


反距离权重法 Inverse Distance Weighting - IDW:

核心理念:近朱者赤,近墨者黑,距离谁近就更像谁。

这个方法是一种确定性插值法,思路是根据地理学第一定律来的:『离得近的事物之间的关联比较大』。因此,一个数据点对周围区域的海拔是有一定的影响力的。影响力多大呢?为此你要设定一个参数。这个参数是个幂参数,它用来增强某一个数据点对附近的区域的影响力。比如当这个参数是2的时候(比较常用的一个设定,参数越大、影响范围越大):

根据设定的权重参数,计算机会模拟出一条AB两点间的海拔曲线。距离A点近的地方,海拔也接近A;距离A越远,A的影响力越弱,海拔就变化越快,直到进入B的控制范围,被B的海拔征服。这样,就找到了AB间各条等高线的画线位置,剩下的事儿,要么像前面三角测量法TIN那么手动画,要么就扔给计算机吧。

反距离权重法一般在数据点比较集中,且均匀分布的时候使用,是一种经常用来定位异常值的方法。但是如果数据点太少或者太稀疏,或分布不均匀,那这种方法就不太好用。如果你看到一幅等高线地图上过于频繁地出现下面的这种『牛眼』形状,那么这幅图很可能就是用反距离权重法画的。


克里金法 Kriging:

核心思想:有理有据的统计插值

克里金法是空间统计学和地球统计学中的常用方法,是一种高斯过程主导的插值法。发明这种方法的人叫丹尼·克里吉,他在南非金山大学读硕士的时候创造出了这种方法,后来被巴黎高等矿业学校的教授马瑟隆发扬光大。

克里金法是一种空间自相关的统计模型,它根据一系列相邻点之间的统计关系(比如协方差)来模拟相邻点之间空白区域的高程变化。换句话说,它就是把指定范围内的所有数据点都放一起进行统计,然后根据每个距离范围内的点之间高程半方差和距离,找出(预测出)这个范围之内最佳的拟合地表。它被视作是最佳线性无偏差预测(Best Linear Unbiased Estimation,BLUE),因为在各种空间的线性预测里面,它的偏差是最小的。

这么说好像太抽象了,会晕菜。。。举个栗子:

山坡上有一堆点。其中A是我选定的第一个参考点,绿色的点为定义的A的相邻点。首先我找出A到每一个相邻点之间的距离。然后,计算A和每一个绿点之间的高程的半方差(Semivariance)。一般来说,用克里金法的时候,数据点会很多(比图上的多得多),因此我们要分组做。比如第一组是到A的距离大于5米的点,这里只有B一个,那么这一组的半方差就是(这里只是举例,现实中数据点会很多很多,不会出现这么一个点的情况):

SemiVariance_1 = 0.5 * (A海拔 - B海拔)^2

第二组是到A的距离在3米到5米之间的点,那么这一组的半方差就是:

SemiVariance_2 = 0.5 * 1/4 * ((A海拔-C海拔)^2 + (A海拔-D海拔)^2 + (A海拔-E海拔)^2 + (A海拔-F海拔^2))

以此类推。这样的距离叫做Lag。Lag的设定不能太大(也就是说,相邻点的定义要严格),否则统计就会不显著。

对A做完统计,得到各个Lag对应的半方差,之后如法炮制,对其它每一个点也都要先找出相邻点,然后一一求得不同Lag的半方差。

假设我们算出了很多组这样的半方差,每组半方差对应一组距离范围,我们就可以把我们的结果作为散点,画在一张Variogram图表上,然后去用计算机拟合。拟合的方法至少有球面、圆弧、高斯和指数这几种,根据需要自己选择。比如:

通过这张Variogram图表,我们可以得到距离数据点不同的距离,所对应的权重。根据权重,计算机就能得到两个数据点之间海拔变化的曲线。比如,运用球面拟合,一般来说会得到形状类似下面这样的曲线(仅仅是示意图,具体曲线根据权重来定):

此后,再按照前面TIN的最后的步骤进行等高线勾绘就行了,或者继续扔给计算机。

克里金法的计算量很大,一般适合用于数据点很多或者分布不太均匀的情况(反正都是交给计算机做666)。实际上,在画地形图的时候,克里金法使用得并不比其它几种方法多。克里金法最受欢迎是在研究水文、矿产或者土壤的时候。比如一个区域的土壤,进行大规模采样之后,绘制等pH值图,等等。并且,用ArcGIS等软件做Kriging,最后会得到一个Standard Error的总结报告,告诉你等高线图的靠谱程度。


趋势法 Trend:

核心思想:尝试用一张纸去拟合,只求个大概就行...

趋势法比克里金法容易理解多了。比如我在山坡上有很多数据点,有高有低。然后我们去掉山坡,只剩下一堆点在空间里。我现在拿一张硬纸板,放到这堆点里。至于怎么放,有讲究:放的时候肯定有的点在纸的上方,有的点在纸的下方,但纸的角度要让空间里每一个点到硬纸板的距离的均方根最小。也就是说,每个点到纸面的距离进行平方,再取平均数,再开方,这个值要最小。

这是山坡的情况。那如果是个U形的峡谷呢?那就不用硬纸板了,用普通的纸,做成一个U形去拟合。也就是说,增加了代表纸面的多项式的阶数,从一阶多项式变成二阶多项式。如果有更复杂的地形,还可以继续增加阶数,比如变成三阶(转两个弯)。

之后呢,再对纸面绘制等高线。

这种方法的好处是便于理解、方便操作。但它的缺点也很多,比如大多数的点其实并不在纸面上,因此等高线无法真实反映每一个数据点的高程,只能反映一个大致的情况。这种方法一般在做初步研究的时候使用,可以提供一个区域的宏观情况。真正研究的时候,一般还是会采用更为精确的方法。


最小曲率法 Minimum Curvature:

核心思想:尝试用橡胶膜拟合,一个点也不能少...

前面的Kriging也好,TIN也好,IDW也好,两点之间的所有地方,模拟出的高程都在两点的高程之间。正常情况下,这没问题。但如果我知道我画的地方是一片丘陵,高低起伏不定,也许两点间有地方会高于或低于端点的高程范围,怎样才能更好地模拟这种地形呢?这就要用最小曲率法。

最小曲率法是一种双调和样条函数插值法(Biharmonic Spline Interpolation)。所谓样条函数,就是分段的光滑曲线函数,且各段的衔接处也光滑。如果说前面的趋势法是用一张纸去拟合各点,最小曲率法就像是用有弹性的『橡胶膜』去拟合。并且,该方法和趋势法最大的区别就是,该方法的『橡胶膜』必须要经过所有数据点,而趋势法的纸只需要让各点到纸面距离的均方根最小化,不要求通过所有点。

这个方法的具体要求是,每个点都照顾到,且要最小化『橡胶膜』表面的总曲率,找到对应的函数,然后得到空白区域的模拟地形。如何最小化总曲率?在每个点上,取『橡胶膜』对应函数的二阶导数项,让所有这些二阶导数项的平方和最小,曲率就最小。这也是交给计算机去做的。


得到『橡胶膜』后,对『橡胶膜』画等高线,就能得到最后的地图。

最小曲率法画的亮点是,画出来的等值线平滑、漂亮,而且一般情况下可以很好地反应每一个数据点。但它的缺陷是,在坡度过于陡或者完全没坡度的极端情况下,它的拟合不太靠谱。

这是ArcGIS官网的图。这三幅图用的同样的数据,但从左到右分别是用反距离权重法、最小曲率法和克里金法画的等高线,可以看出它们有明显的区别:反距离权重法有很多『牛眼』,最小曲率法最平滑自然,克里金法对地形变化最敏感。

关于数据

俗话说,巧妇难为无米之炊。如果没有靠谱的数据,再神的算法,也只能画出猪一样的等高线地图。一般来说,数据点分布越均匀约密集,画出来的图就越好。如果数据分布不均匀,有的地方数据密集,有的地方有大片的空白区域,那么空白的地方的精准度肯定是远远不及数据密集的区域的。


最后吐个槽。。。

前面这些算法都是理论上的,能让大家知道如果把数据扔给计算机,比如ArcGIS等软件,计算机是怎么思考的,最后给你的等高线图是怎么得来的。

真实的操作中,ArcGIS或者别的软件比如Petrel画出来的图经常会很丑。。。而且太过于机械,不灵活。所以我们在做地质或地理的图的时候,还是比较喜欢用手画。但我们手画的时候,也不完全按照TIN那么来,毕竟那也太机械了。特别是地质的图,在严格满足数据点的前提下,对于空白处,经常要结合实际情况(比如当地的地形、沉积史、构造史、测井数据、地震数据等)进行自己的解读和推测,从而画出有地质意义的地图。

比如画某个地层的深度的等值线,用计算机画,数学上说得过去,但有可能完全没有地质意义。因为,地球上的事儿,啥奇怪的情况都可能发生。断层(特别是逆断层)、不整合等各种情况ArcGIS的默认算法基本无能为力 。比如,如果我要画下面图里的红色的地层的上表面的等深度线:

这要让ArcGIS来画就不太好弄了。因此,那些算法虽好,用的时候,还是得根据实际情况灵活调整的。比如左边的逆断层,就会有重叠区出现;右边的正断层,如果再多错一点完全错开,就会有空白区域出现。那如果工作量大,必须要用电脑呢?其实我们有100种方法调戏电脑,画出靠谱的等高线,比如添加pseudo-points等等,只不过那就是另外一个话题了。

噗,写完了才发现Tag话题里面有个初中地理。。。好吧我说得太多了。。。

知乎专栏:地球的那些事儿 微信公众号:山中杂说( ShanYeTalking




  

相关话题

  为什么欧洲明明是平原却分裂成几十个国家,而中国多山多高原还是一个完整的国家? 
  哪些国家正处于历史上领土面积最小的时期? 
  巴基斯坦是否比印度发展更差? 
  中国行政区划有哪些不合理的地方? 
  冲积扇、洪积扇、河口三角洲的区别是什么?三者又有没有关系? 
  为什么单看脸有时候就能分辨东北人和南方人? 
  函谷关对秦国的重要性体现在哪些方面? 
  解放军过江战役胜利后为什么国军无法借南岭武夷山天险守住岭南? 
  为何格陵兰不计入丹麦领土面积? 
  世界上最具有文化多样性的大洲是哪个洲? 

前一个讨论
有哪些被误以为是「垃圾食品」的食物,其实很健康?
下一个讨论
《电子烟管理办法》规定「禁止销售除烟草口味外的调味电子烟、禁止向未成年人出售」等,将会带来哪些改变?





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利