地形图等高线的自动绘制方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地形图等高线的自动绘
制方法
集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]
地形图等高线的自动绘制方法
1.自动绘制等高线的常用方法
1.1网格法:它的基本原理是以不规则原始数据为依据,用双二次拟合,按距离加权平均或按距离加权最小二乘等方法拟合一张曲面,将规则网格点的平面坐标代入曲面方程求解出网格点的高程,然后在以网格点的高程为依据内插等高线。
其主要步骤为:根据离散点计算方格点数据;在网格边上内插等值点;追踪等值点,形成某一高程值的若干等值线;联结等值点绘制光滑曲线。
网格法绘制等高线的精度同网格的大小即采点密度有很大的关系,在取较小间距的网格时,虽然可以提高制图精度,但要占用较大内存,且不适用于处理地性线。
由于网格点的高程是通过对原始离散点拟合内插后计算得到的,无论采用哪种算法,网格点的精度都不可能高于原始离散点的精度,相反,拟合后可能使得某些原始离散点的实测高程值发生改变,整个地形趋于平滑。
1.2 三角网法:此种方法直接根据实际获得的不规则离散数据点构成不规则三角网,然后在不规则三角网上内插等高线。
其主要步骤为:自动联结三角网;在三角形边上内插等值点;寻找等高线的起始点和追踪等值点;4)联结等值点绘制光滑曲线。
相对于网格法而言,三角网具有以下特点:对于分布不规则的离散点,不须变换成规则网格点,可直接利用原始观测点插补等值点,这样可以提高等高线的精度,且对特征高程点部位任意小的等高线图形均能绘出;应用三角网法绘制的等高线图可具有自由边界,在有观测点地区均可出现等高线;三角网法绘制等高线方法简单,程序设计也比较简单。
2.三角网法绘制等高线的原理
2.1 自动联结三角网用三角网法绘制等高线首先必须联结三角网。
必须考虑到获取原始信息的质量,使其符合线性补插的要求。
应建立在可能条件下的最佳三角网,保证插补精度。
首先要确定第一个三角形。
从离散点中任取一点作为第一个三角形的第一顶点,找出距该点最近的点作为一号三角形的第二个顶点,在满足三边长度近似相等条件下,找出距这两点连线中点最近而且与这两点不在一直线上的点作为一号三角形的第三顶点。
这样就形成了一号三角形的信息,满足最佳三角形条件,同时也为以后扩展三角形网时避免交叉提供了有效保证。
确定了第一个三角形后,就要向外扩展联结全部离散点构成三角网,并确保三角形中没有重复和交叉的三角形。
首先从第一号三角形的第一条边向外扩展,用直线判别正负区的方法排除不能用于扩展的点,然后从剩余的可扩展点中挑一点作为扩展点的条件,用余弦定理判别找出具备角度最大的点作为被扩展点。
这样就基本形成了第二号三角形。
为了避免重复和交
叉,还要进行一次检查判断。
其方法是应用三角形任一边最多只能被2个三角形共用这一条件,进行比较。
如果新三角形有一条边已经属于两相邻三角形的公用边,则此新三角形无效,否则该三角形被正式承认。
依此继续扩展,直到所有三角形的3条边都做完扩展工作,此时就形成了三角形网。
2.2 在三角形边上内插等值点:为了在所形成的三角形上内插等值点,应首先判断三角形的边上是否有等值点。
要确定等值点是在三角形上通过,必须给定等高线通过三角形的条件。
设等高线的高程为Z,只有当Z介于三角形的两个端点高程值之间时,等高线才通过该三角形边。
2.3 寻找起始点并追踪等值点:绘制等高线必须首先找出起始高程点,也即线头。
对于闭合等高线而言,它一定位于制图区域内部,其内部三角形边上任一等高线均可作为线头和线尾;对于开曲线来说,等高线起始于边界又终止于边界,其线头和线尾一定位于边界三角形的最外边上。
判定线头和线尾的方法为:如果等高线不是位于边界上,则该点既是前一个三角形的出点,又是下一个三角形的进点,而如果该点是位于边界上的等高点,则它只可能是该三角形的进点或出点,不会既是进点又是出点。
线头找到后,就要顺序地追踪出一条等值线的全部等值点,为了使等值点按一条等高线通过的先后顺序排列,必须顺着线头按照一定的算法进行追踪。
2.4 联结等值点绘制光滑曲线:当某一数值的等值点全部追踪后,即可调用曲线光滑程序,把离散数据点连接成光滑曲线并进行图形输出。
曲线要力求在图形不失真的前提下尽可能光滑。
3.自动绘制等高线设计的方法和过程
在熟悉了绘制等高线的原理和步骤后,就可进行编程设计,在编制各个步骤程序模块的基础上,形成了总的图形绘制程序。
4.结束
依照三角网绘制等高线的一般步骤,编制各子程序块来实现其各自不同的功能。
程序采用C语言编程,在586机型,TC3.0编译环境下运行成功。