余章蓉,王友昆,陈裕汉,盘成进,叶万荣
(1.昆明理工大学津桥学院,云南 昆明 650106; 2.昆明市测绘研究院,云南 昆明 650051;3.滇西应用技术大学,云南 大理 671009; 4.昆明子午环测绘咨询服务有限责任公司,云南 昆明 650051)
尽管2018年已经全面启动2000国家大地坐标系(CGCS2000),但是CGCS2000同1980西安坐标系、1954年北京坐标系以及地方坐标系之间的转换仍然不可避免[1]。坐标转换前应先计算转换参数,一般利用参数计算软件,导入不同坐标系的同名控制点成果进行计算。通常一次只能利用两套坐标成果计算一套转换参数,当需要计算多套坐标成果之间的转换参数时,需要多次导入控制点成果进行计算,计算过程较为烦琐。例如,需要计算某区域CGCS2000、1980西安坐标系、1954北京坐标系、地方坐标系成果之间的转换参数时,至少需要进行6次成果的导入计算。如果需要计算多个区域,多套成果之间的转换参数时,传统的参数计算效率更低。尽管也有学者设计了坐标转换及参数管理系统[2],但仍然需要逐一计算转换参数。针对某区域首级控制网或框架网的平差成果具有等级高、精度高、内符合精度好等特点,利用这些坐标成果进行转换参数计算时,不需要过多的人为选点干预,特别适用于批量的转换参数计算。针对这类应用场景,本文提出一种针对多区域、多套控制点成果,进行批量坐标转换参数自动计算和评价的方法,大大提高了计算效率,可应用于市级、省级行政区域范围的坐标转换参数的计算和管理。
常用的坐标转换模型有平面四参数模型和布尔莎七参数模型[3],前者适用于小区域坐标转换[4~6],后者适用于大区域坐标转换[6~8]。平面四参数模型如式(1),包括2个坐标平移参数(△x,△y),1个尺度参数m,1个角度旋转参数α。
(1)
布尔沙七参数模型如式(2),包括3个坐标平移参数(△x,△y,△z),3个坐标轴旋转参数(ωX,ωY,ωz),1个尺度参数m。
(2)
计算某区域转换参数时,需要提供覆盖该区域的同名点不同坐标系的坐标成果,并选用适宜的转换模型进行参数计算。
假设每个转换区域均具有1954北京坐标系、1980西安坐标系、CGCS2000坐标系以及地方坐标系等四套成果坐标,首先应对已有坐标成果的数据结构和存放进行定义,按照统一的格式和要求存放,便于后期批量读取和计算。如图1所示,以昆明市为例,昆明市域范围需要计算CGCS2000、1980西安坐标系、1954北京坐标系、1987年昆明坐标系成果之间的相互转换参数,只需要将4套不同坐标系的坐标成果文件,统一放一个目录即可。坐标文件的命名应统一和唯一,同时文件内的成果坐标类型应与其元数据的坐标类型一致。
图1 成果数据存储结构示意图
然后,根据坐标转换模型以及批量坐标转换参数计算的需求,还应对每个转换区域的多套同名点坐标成果进行元数据配置,目的是在参数计算时,能够将同名点坐标成果转换为正确的坐标类型。配置的内容包括坐标成果的区域、参数名称、参考椭球、坐标类型、角度格式、中央经线、X平移、Y平移、抵偿面等,如表1所示。需要注意的是坐标成果名称应唯一,便于计算时能快速对其进行索引。
坐标成果元数据示例 表1
以图1为例,首先根据源坐标和目标坐标的元数据配置表,将四套坐标系成果自动转换为相应的坐标类型,计算流程和方法如图2所示。计算四参数时,则需要将源坐标和目标坐标分别转换为高斯平面坐标。当源坐标为大地坐标时,则应根据其元数据配置情况,转换为高斯平面坐标后计算四参数。计算七参数时,则需要将源坐标和目标坐标分别转换为空间直角坐标。当源坐标为高斯平面坐标,则应根据其元数据配置情况,先转换为大地坐标,再转换为空间直角坐标后计算七参数。
图2 参数计算示意图
转换参数计算完成后,还需要对转换参数命名。由于坐标成果名称是唯一的,因此可采用两套坐标成果名称的组合进行命名,以达到转换参数名称唯一的目的。例如,“昆明2000→昆明1980”代表昆明区域CGCS2000坐标系成果转换为昆明区域1980西安坐标系成果的转换参数名称。
参数计算时,还应对转换参数计算的内符合情况进行精度评定,目的是便于计算者查看参数计算的精度情况,对超限的转换参数进行核查,查找原因并重新计算。精度评定的方法,一般通过点位中误差是否满足指标要求进行判定[9]。重合点残差V计算公式如式(3):
V=重合点转换坐标值-重合点已知坐标值
(3)
空间直角坐标计算点位中误差计算如式(4):
(4)
式中,MX、MY、MZ分别为空间直角坐标X、Y、Z残差中误差,n为点位个数。
高斯平面坐标平面点位中误差计算如式(5)
(5)
式中,Mx、My分别为面坐标x、y残差中误差,n为点位个数。
本文以云南省16个州(市)、129个县(市、区)的多套坐标成果的参数计算为例进行说明。每个州(市)的高等级控制点均包括了CGCS2000、1980西安坐标系、1954北京坐标系三套成果,每个州(市)可实现其行政区域范围内的CGCS2000、1980西安坐标系、1954北京坐标系三套成果的相互转换。每个县(市、区)的高等级控制点均包括了CGCS2000和县(市、区)地方独立坐标系两套成果。县(市、区)地方坐标系需要转换1980西安坐标系、1954北京坐标系成果时,需要先将地方坐标系成果转换为CGCS2000成果,再通过16个州(市)的CGCS2000同1980西安坐标系、1954北京坐标系的转换参数转换为相应的1980西安坐标系和1954北京坐标系成果。
为达到区域坐标成果转换参数批量计算的目的,首先应对转换成果进行梳理,对其进行索引标识,然后利用坐标转换模型进行参数计算和精度评定,计算流程主要包括成果准备、元数据配置、参数计算、精度评定、参数合并等步骤,如图3所示。
图3 参数计算流程
(1)数据准备
首先,对16个州(市)和129个县(市、区)的坐标成果进行整理,并按照目录和格式的要求进行存放。如整理为统一格式的文件(如.txt文本文件),以坐标成果名称进行命名,分别按照州(市)、县(市、区)进行存放,如图4所示。
(2)元数据配置
然后,根据16个州(市)和129个县(市、区)的坐标成果的属性,进行元数据配置。以昆明市的坐标成果元数据为例,配置如表2所示。昆明市域范围有昆明2000、昆明1980、昆明1954三套坐标成果,14个县(区)分别具有其城市独立坐标系,其中五华区、盘龙区、官渡区、西山区为统一的一套独立坐标系。
图4 成果数据存储结构示意图
昆明市坐标成果元数据 表2
(3)参数计算
以上工作完成后,即可利用程序批量对云南省16个州(市)及129个县(市、区)的坐标转换参数进行计算。参数计算时,程序自动读取每一文件夹内坐标成果文件;程序根据坐标成果文件名称,通过元数据配置文件查找其元数据,并将其转换为相应的坐标成果类型。如“昆明2000.txt”坐标成果为大地坐标,当计算四参数时,则应该按照图2流程转换为高斯平面坐标;当计算七参数时,则应该转换为空间直角坐标。如果计算时有子目录,则程序自动递归调用函数计算子目录下的坐标成果的转换参数。
(4)精度评定
根据《大地测量控制点坐标转换技术规程》的要求,依据计算转换参数的重合点残差中误差评估坐标转换精度,残差小于3倍点位中误差的点位精度满足要求[10]。参数计算完成后,系统可将每个地区的转换参数内符合精度以表格形式显示。对于不满足要求的转换参数,程序可标记提示,计算者可手动计算并调整参与计算的控制点,直至满足精度要求。
(5)参数合并
对于内符合精度符合要求的转换参数,可对各区域计算的转换参数进行合并,达到统一存储和管理的目的,便于后期调用和坐标转换。程序可通过遍历文件夹,对文件夹内符合精度要求的参数文件统一合并为一个文件,便于加密、存储和管理。
该系统已经成功应用于云南省16个州(市)的2000国家大地坐标系、1954北京坐标系、1980西安坐标系之间的转换参数的批量计算,以及129个县(市、区)2000国家大地坐标系同其地方坐标系之间的转换参数的批量计算。这种方法对于多区域、多套坐标成果之间的相互转换关系的计算具有明显的优势,不仅能够大大提高计算效率,还能有效地对多个转换参数进行管理,具有推广应用的价值。