首页 理论教育数据储存设计的重要性和要求

数据储存设计的重要性和要求

【摘要】:数据储存设计的意义、重要性及要求在3.2.3小节中已有论述,因而本小节不再赘述。由于采用在读入数据过程中,通过判读、计算获取总点数、已知点数、观测值数等重要网型信息的设计方法,在平差数据读入完成前,数组变量的容量不能确定,因而程序中储存数组基本上均声明为动态数组。s(),sb()分别保存边长观测值及其对应的照准点点名。

数据储存设计的意义、重要性及要求在3.2.3小节中已有论述,因而本小节不再赘述。为便于后续章节以实例阐述测量平差程序设计的方法与技巧,以下对示例程序声明的重要变量作简要说明。

1.对象型变量

fso、ts、Fl为对象型变量,用于处理文件和文件夹的创建、打开、读写、关闭等操作。

2.数组变量

数组变量是平差示例程序采用的主要数据储存变量,程序中主要数据都是以数组变量储存。由于采用在读入数据过程中,通过判读、计算获取总点数、已知点数、观测值数等重要网型信息的设计方法,在平差数据读入完成前,数组变量的容量不能确定,因而程序中储存数组基本上均声明为动态数组。

示例程序使用的主要数组变量名称及其储存内容如下:

(1)xo(),yo()变量保存已知点坐标;x(),y()先后用于保存控制点假设坐标、近似坐标和坐标平差值。

(2)l(),lb()分别保存整个控制网的方向观测值及其对应的照准点名。方向值照准点数组lb()中的下标与观测值l()数组中下标一一对应,这样已知方向观测值编号,查询其照准点名就非常方便。

(3)s(),sb()分别保存边长观测值及其对应的照准点点名。同样的,两者在s(),sb()数组变量中的下标一一对应。

(4)nl(),ns()用于保存各个测站上最大方向号和边长号,这是平面控制网平差程序中极其重要的网型信息。为了获取某测站i上有几个方向观测值、这些方向值在l()数组中的下标编号、保存在lb()数组中的对应照准点名等信息,平差示例程序以数组nl(i)来保存i测站方向值在l()数组中的最大下标编号。这样i测站上方向观测值在l()数组中的下标编号,就是从nl(i-1)+1到nl(i)。知道了i测站上方向观测值的编号,程序就不难获取i测站上的方向观测值及其照准点信息,从而确定方向观测值与测站、照准点的联系。同样的,根据ns(i)数组保存的信息,程序可获取边长观测值与控制点间的联系信息。(www.chuimin.cn)

(5)ym()保存已知点点名,dm()保存全部控制点点名(包括已知点)。点名是一个控制点的唯一标识,可以用汉字、字符、数字,或者三者组合表示。平差程序不能直接处理点名,必须给每个控制点设置一个唯一的数字编号。为了计算机处理方便,编号应该是连续整数,习惯上称为点号。在示例程序中,是将ym(),dm()数组的下标作为点号,这样点名和点号一一对应,便于查询、处理。

(6)nx()保存法方程系数;ux()保存法方程常数。

(7)qd(),zd()分别保存高差观测值起点点名、终点点名;dh(),ls()分别保存高差观测值、路线长度;h()保存高程平差值。

(8)nb(),nc(),m(20)都是工作数据,用于临时保存一些中间计算成果。其中nb()先后用于保存误差方程系数、法方程常数约化值、法方程的解、点位中误差等。nc()用于临时保存和方程系数,使用完毕后删除。m(20)先后用于保存逗号分隔符在字符串中的位置,已知点在dm()数组中的对应编号等。

(9)数组E(),F(),A(),分别保存误差椭圆长半轴、短半轴、长轴方位角

3.单变量

(1)ma,ms,mk保存观测值先验精度指标。

(2)zds,yds,cds,ws,r保存控制网总点数、已知点数、测站数、未知参数数目、多余观测数。

(3)Fname是字符型变量保存文件名及其路径,pi是常量保存π值。