基于AutoCAD平台的2000国家大地坐标系转换方法研究与实践
2018-12-20张瑜伟
王 丹,张瑜伟
(1.江苏省地质勘查技术院,江苏 南京 211102;2.江苏省地质测绘院,江苏 南京 211102)
0 引 言
经国务院批准,我国自2008年7月1日起正式启用2000国家大地坐标系。现行国家大地坐标系与2000国家大地坐标系之间的转换和衔接的过渡期为8到10年。现有测绘成果应在过渡期内逐步转换到2000国家大地坐标系上[1]。地形图作为一项重要的测绘成果,也需要进行相应的坐标转换。AutoCAD软件在测绘行业内应用广泛,其默认的存储格式(DWG)已经成为保存地形图数据的行业标准。
江苏省某市国土资源局(以下简称“甲方”)已经完成市级范围内的CGCS2000控制网布设工作,此网的每个控制点都与原有的54控制网、80控制网重合,即每个控制点都有1954年北京坐标系、1980西安坐标系、2000国家大地坐标系这三套坐标系统,这为坐标转换提供了良好的数据基础。在使用2000国家大地坐标系前,甲方已经积累了大量的图件资料,如不对这些数据进行坐标转换,那么将造成严重的资源浪费。本文以甲方实施的坐标转换项目为例,提出了一套在AutoCAD平台上进行坐标转换的有效方法。
1 基础数据分析
在开展坐标转换工作前,首先收集需转换的数据,主要包括:地形图、勘测定界、地籍调查等,这些数据都是以DWG格式保存的。按照“应转尽转”的原则,将这些数据统一转换到2000国家大地坐标
系,中央子午线为120°。这些数据不在同一时期完成,执行标准也不尽相同,在坐标系及投影参数的选择上差别较大。此次坐标转换工作只进行图形位置上的转换,不涉及到属性、分幅等问题。在前期数据整理时,以坐标系与中央子午线的不同为分类标准,将这些数据分为六大类,即1954年北京坐标系119°投影、1954年北京坐标系120°投影(无40带号)、1954年北京坐标系120°投影(有40带号)、1980西安坐标系119°投影、1980西安坐标系120°投影(无40带号)、1980西安坐标系120°投影(有40带号)[2]。
2 技术流程
2.1 控制点选择
本次坐标转换使用的控制点全部由甲方提供,每个点都有三套成果。这些点都经过了统一平差,精度较好。在选择控制点时,以择优、分布均匀为基本原则,选择了22个点作为本次转换的控制点,其中,12个点用于计算坐标转换参数,10个点用于精度检核。
控制点都是标准的高斯投影坐标,中央子午线为120°。但基础数据中同时存在中央子午线为120°、119°的情况,在准备控制点文件时,应对参与坐标转换的控制点进行高斯投影换带计算,以保证控制点坐标与AutoCAD图形坐标相适配。通过高斯投影计算工具(图1)将原控制点由120°重新投影到119°,并制作了六个控制点坐标文件,用于进行坐标转换。
图1 高斯投影计算工具界面
2.2 模型选取
由于AutoCAD图形的坐标为平面直角坐标且本次提供的重合控制点较多,所以选择了《大地测量控制点坐标转换技术规程》(以下简称“转换规程”)中推荐的平面多项式拟合模型作为本次坐标转换的数学模型[3]。
(1)
式(1)中:x1,y1为原坐标系下平面直角坐标,单位为米;x2,y2为目标坐标系下平面直角坐标,单位为米;△x,△y为坐标转换改正量,计算公式为:
(2)
式(2)中,ai、bi为系数(i=0,1,2…),通过最小二乘求解。式中的多项式拟合模型为三阶多项式拟合模型,该模型具有20个未知数,因此,至少需要10个控制点所列的20个方程,才能解算转换参数。
2.3 转换参数计算
转换参数计算利用基于AutoCAD开发的专用坐标转换插件进行(图2)。该插件支持高斯投影转换、平面坐标拟合(仿射变换、二维四参数、平面多项式拟合…)等多种转换模型。
图2 坐标转换参数计算界面
根据项目需求,选择了平面多项式拟合模型(阶数为3),将选择的控制点导入后,计算重合的残差,得到的结果如表1。
表1 控制点残差表/m
从点位残差列表中可以看出,控制点的内符合精度较高,最大点位残差为7 mm,完全满足项目的精度要求,控制点均可用于转换参数计算。
3 坐标转换原理分析
在AutoCAD中,一般使用符号块(Block)来表示点状地物,如水准点、图根点、路灯等;使用直线(Line)或多段线(Polyline)来表示线状地物,如围墙、道路、河流等;使用闭合多段线来表示面状地物,如房屋、面状水系等;使用单行文字来表示各类注记,如房屋层次、地名等。根据《转换规程》要求,进行坐标转换时,需将要素的每个节点都转换到CGCS2000下。因此坐标转换实现的基本思路就是将原坐标根据转换参数计算一个新的坐标,然后进行更新即可完成坐标转换。
根据坐标转换参数生成的转换函数基本形式如公式(3):
CoordTrans(X1,Y1,X2,Y2)
(3)
式(3)中,X1、Y1表示代入的原坐标,X2、Y2表示返回的原坐标。
符号块与注记的具体转换方法如下:
(1)获取对象的定位点(Position属性);
(2)将原定位点的坐标代入,使用CoordTrans函数,求取新的坐标;
(3)更新对象的定位点;
(4)完成坐标转换。
多段线的具体转换方法如下:
(1)遍历对象的每一个节点;
(2)将原节点的坐标代入,使用CoordTrans函数,求取新的坐标;
(3)使用新的坐标,更新对象的当前节点;
(4)返回步骤(1),再次获取,直到每个节点都更新一次;
(5)完成坐标转换。
对于其它类型的AutoCAD对象,转换的基本方法与上述类似。专用的AutoCAD坐标转换插件也是基于该原理开发。
4 项目实施
首先收集需要转换的数据,然后对数据按“坐标一致性”的原则分类, 按照上文描述的转标准换原理,使用相应的控制点将所有数据坐标批量转到CGCS2000坐标系统下。
4.1 数据预处理
在坐标转换前,应对原始数据按原来图形中使用坐标系进行人工分类。分类时,需要将图中非点状符号之外的图块进行炸碎处理,否则转换误差较大。在预处理阶段,还应设置一定数量的检查点,设置检查点主要目的有两个:一是进行精度验证;二是检查作业过程中有无漏转换、多次转换的行为[4-5]。为了后期检验坐标转换的精度,需要将10个检查点加入到每个图形中进行转换,转换完毕后再跟已知坐标进行对比,以验证转换模型的精度。使用AutoLisp语言批量将检查点添加到每个图形中,AutoLisp代码如下[6-7]:
(defun InsertJCD()
(command “-layer” “n” “C28F5099-4B9C-4918-9FC9-1CE8A15013F6” “”);新建图层
(command “-insert” “JCD”检核点坐标 1 1 0)
;插入检核点,执行10次)
(InsertJCD)
将上述代码保存为InsertJCD.lsp文件,使用AutoCAD的批处理工具进行批量运行(图3)。
图3 AutoCAD批处理界面
4.2 坐标转换
在完成的图形数据分类整理及检查点添加后,再利用 坐标转换插件进行坐标转换 。 坐标转换可以使用单幅图转换、选择对象转换、多幅图批量转换三种方式。因为图形数据已经在前期完成分类,所以本项目选择多幅图批量转换模式(图4)。
图4 地形图坐标转换界面
多幅批量转换时无需在前台打开图形,转换效率很高。本项目六个批次共计转换地形图12000多幅,每幅图平均用时约16秒。坐标转换结束后,每个批次需 随机抽取一定数量的图进行质量检查,以免出现要素丢漏的情况。
4.3 检查点处理
在数据预处理阶段,每幅图中都添加了检查点。在坐标转换完成后,将这些检查点以文件的形式提取出来并删除。
5 精度验证
在进行地形数据坐标转换前,将10个控制点作为检测点进行坐标转换并与原来已知的2000坐标 比较,用于检查坐标转换的精度。本项目 对每 套控制点成果文件都进行了精度验证,表2中的验证结果为1980西安坐标系转2000国家大地坐标系的精度统计结果,其中,最大点位误差为0.8 cm,最小点位误差为0.1 cm,点位中误差为0.4 cm,所有结果符合规程的精度要求。
表2 1980西安坐标系转2000国家大地坐标系的精度统计表/m
6 结 语
本文以地形图坐标转换项目为例,提出了一种基于AutoCAD 实施坐标转换的方法。经项目实际转换验证,转换结果符合国家相关规程要求,并且该项目转换地形图的平均用时仅为16 s。因此,本文提出的基于AutoCAD的坐标转换方法可以高效、准确地实现坐标转换。在实际工作中,该方法不仅能够加快整个项目的进展,而且能提升转换的质量,减轻作业人员的劳动强度,具有重要的应用价值。