首页 理论教育测量平差程序设计2版|平面控制网数据读入

测量平差程序设计2版|平面控制网数据读入

【摘要】:和高程控制网数据格式一样,示例程序平面控制网数据格式也是只有两种。随之出现的即是已知数据信息。已知数据信息的行数等于已知点数,随着控制网不同而异,但是测站信息就是其结束的标志。作为通用平差程序,要适用于导线网(边角网)、三角网、三边网及各种边角交会图形的混合控制网型,需要分别对lb()、sb()数组进行查询,找出未设过测站的控制点,将其点名加入点名数组dm()。

高程控制网数据格式一样,示例程序平面控制网数据格式也是只有两种。测站名单独占一行,行中没有逗号。先验精度信息、已知点信息、观测值信息,行中均包含两个逗号,将一行数据分隔成三个字符串。由于存在逗号的行有三种不同类型的数据,要分类提取并储存信息,程序必须首先识别出读到的数据行类型。

识别数据行类型的方法多样,例如一种方法是从数据的特点着手,如第二个字符串若是“L”或“S”,该行就是观测值信息,反之就是先验精度信息或已知点信息。区别后两者,可以根据字符串长度来识别,先验精度信息行中三个字符串都是单字符,与已知点信息长度差距明显。另一种方法是由数据文件中三种数据行的位置着手,如先验精度信息是数据文件的第一行,并且只有一行。随之出现的即是已知数据信息。已知数据信息的行数等于已知点数,随着控制网不同而异,但是测站信息就是其结束的标志。

两种方法中后者相对简单,因而示例程序采用了根据数据排列顺序着手的方案,主要程序语句如下:(www.chuimin.cn)

Do While…Loop循环结束后,即已经完成了已知点信息、观测值信息的提取和保存。测站数、已知点数、各个测站最大方向值号、最大边长号等信息,也在数据读入过程中统计出来并保存在相应变量中,其中最后一个测站的最大方向值号(nl(cds))和最大边长值号(ns(cds)),分别就是方向观测值和边长观测值的总数。但是点名数组dm()中只录入了测站,没有设站的控制点尚未录入。这些点可能是通过一条导线边和控制网连接的已知点或待定点,也可能是前方方向交会点,或者是前方边长交会点。因此,未设站的控制点既可能在方向观测值照准点名数组中,也可能在边长观测值照准点名数组中。

作为通用平差程序,要适用于导线网(边角网)、三角网、三边网及各种边角交会图形的混合控制网型,需要分别对lb()、sb()数组进行查询,找出未设过测站的控制点,将其点名加入点名数组dm()。完成这一工作的程序语句如下: