MXD/MDB文件基准转换方法研究及软件实现 | ![]() |
2. 重庆市勘测院,重庆,401121;
3. 武汉大学中国南极测绘研究中心,湖北 武汉, 430079
2. Chongqing Survey Institute, Chongqing 401121, China;
3. Chinese Antarctic Center of Surveying and Mapping, Wuhan University, Wuhan 430079, China
我国原有的非地心、二维、低精度、静态的大地坐标系统不能满足测绘发展的要求。在这一背景下,2000国家大地坐标系(CGCS2000坐标系)自2008年7月1日启用,以实现基于CGCS2000坐标系的国家基准现代化[1-5]。
CGCS2000坐标系使用后,首待解决的问题就是将现有的大批量、多种类1954年北京坐标系、1980西安参心坐标系和地方独立系下的测绘成果向2000国家地心坐标系转换[4-7]。
随着科学技术和信息技术的发展,测绘数据的存储形式日趋数字化和多样化[4-8]。在高精度转换参数和转换模型确定的基础上,实现不同测绘数据(坐标数据、DXF数据、DWG数据、MIF数据、SHP数据、MXD/MDB数据等)在不同坐标系间自由转换的软件系统,对国家基准现代化进程有一定的现实意义[4, 8-11]。但是基于MXD/MDB文件的地形图坐标转换工作并没有深入细致的研究。
本文首先介绍了目前使用的四参数法、七参数法两种坐标转换方案,分析了两种方法在中国不同区域范围的精度差异及其影响因素,给出了两种方法在厘米级精度上的等效区域,介绍了MXD/MDB文件中基本数据结构,给出了一套针对MXD/MDB文件图形转换方案,基于ArcEngine软件予以实现,通过多个实测成果对本文提出的转换方案和软件的可靠性进行了检测。
1 不同转换模型的等效性坐标系之间的相互转换是2000国家大地坐标系正式启用后必须解决的核心技术问题之一[3, 4, 7]。通常情况下,空间七参数法转换较四参数法更适合大范围的坐标转换,其数学模型更加严密,但对于1954年北京坐标系和1980年西安坐标系,需要精确地知道公共点在相应坐标系下的大地高(H)。平面四参数法需要2个公共点即可进行参数求解,方法简单实用且便于推广,最大的优点是不需要精确的大地高信息,对平面图形转换尤为适合,但其数学理论严密性不如空间七参数法,同时投影变形会影响坐标转换精度[7]。
式(1)、式(2)分别给出了基于七参数和四参数转换方法的数学模型。布尔沙-沃尔夫模型(在我国通常被简称为布尔沙模型)又被称为七参数转换:
$ \left[{\begin{array}{*{20}{c}} {{X_2}}\\ {{Y_2}}\\ {{Z_2}} \end{array}} \right] = \left( {1 + m} \right)\left[{\begin{array}{*{20}{c}} 1&{{\omega _Z}}&{-{\omega _Y}}\\ {-{\omega _Z}}&1&{{\omega _X}}\\ {{\omega _Y}}&{-{\omega _Y}}&1 \end{array}} \right]\left[{\begin{array}{*{20}{c}} {{X_1}}\\ {{Y_1}}\\ {{Z_1}} \end{array}} \right] + \left[\begin{array}{l} {\rm{d}}{X_0}\\ {\rm{d}}{Y_0}\\ {\rm{d}}{Z_0} \end{array} \right] $ | (1) |
式中,dX0、dY0、dZ0为3个平移参数;ωx、ωy、ωz为3个旋转参数;m为尺度参数。
四参数模型仅考虑四个转换参数:
$ \left[{\begin{array}{*{20}{c}} {{X_2}}\\ {{Y_2}} \end{array}} \right] = \left( {1 + m} \right)\left[{\begin{array}{*{20}{c}} {\cos \omega }&{\sin \omega }\\ {-\sin \omega }&{\cos \omega } \end{array}} \right]\left( {\left[{\begin{array}{*{20}{c}} {{X_1}}\\ {{Y_1}} \end{array}} \right] + \left[{\begin{array}{*{20}{c}} {{\rm{d}}{X_0}}\\ {{\rm{d}}{Y_0}} \end{array}} \right]} \right) $ | (2) |
式中,dX0、dY0是两个平移参数;ω为旋转参数;m为尺度参数。
两种转换方案各有优缺点,一定范围内平面四参数法的转换精度可以与空间七参数法相当。可以利用平面四参数法取代空间七参数法进行精度较高且区域较大的坐标转换任务。本文设计完成了中国境内选取适当的区域范围,将该区域按一定的经纬度间隔进行格网化,可以得到各网格点在CGCS2000坐标系下的大地坐标(B2000, L2000, 0),这里取各网格点的大地高=0,格网坐标的选取方法如图 1所示。
![]() |
图 1 格网点选取示意图 Fig.1 Selection of Grid Point |
以CGCS2000到西安80坐标系的转换为例,采用空间七参数法把各网格点的大地坐标(B2000, L2000, 0)转换为西安80坐标系下的高斯平面坐标(x″80, y″80);同时考虑到高斯平面坐标(x″80, y″80)不可避免的误差影响,为此可以在(x″80, y″80)中加入随机误差δ来模拟真实数据得到(x80, y80)(认为是真实值)。另一方面,将网格点大地坐标(B2000, L2000, 0)进行高斯投影得到其高斯平面坐标(x2000, y2000),如此网格点就具备了两套不同坐标系下的坐标值(x2000, y2000)和(x80, y80)。选取一定数量(2个及以上)的网格点作为公共点求取平面转换的4个参数,利用求出的转换参数转换剩余网格点坐标得到其西安80坐标系下的坐标值(x′80, y′80)(认为是四参数转换值)。将网格点的转换值(x″80, y″80)和(x′80, y′80)分别与真实值(x80, y80)求差,通过残差中误差的大小可以说明空间七参数法与平面四参数法在转换精度上的差异。
转换完成后,采用式(3)给出的精度评定方法, 即依据计算坐标转换模型参数的重合点的残差中误差评估坐标转换精度。对于n个点,坐标转换精度估计公式为:
$ \begin{array}{l} v\left( {残差} \right) = 重合点转换坐标- 重合点已知坐标\\ 平面坐标x残差中误差:{M_x} = \pm \sqrt {\frac{{{{\left[{vv} \right]}_x}}}{{n - 1}}} \\ 平面坐标y残差中误差:{M_y} = \pm \sqrt {\frac{{{{\left[{vv} \right]}_y}}}{{n -1}}} \\ 平面点位中误差为:{M_p} = \sqrt {M_x^2 + M_y^2} \end{array} $ | (3) |
本文设计并完成验证了区域大小、点位分布、区域位置等多种因素对两种方法等效性的影响。由于篇幅所限,本文仅给出如图 2所示的顾及中国区域纬度变化范围的六组数据(3°×3°跨度)的基本信息。实验过程纬度间隔ΔB、经度间隔ΔL均取30′,每个网格点总数为49。
![]() |
图 2 网格点数据的建立情况图 Fig.2 Establishment of Grid Point Data |
表 1给出了图 2中6组不同区域数据的实验结果,平面四参数法与空间七参数法的转换精度差值基本维持在几个mm,可以认为两种方法的转换精度基本相等,且平面四参数法的转换精度受转换区域的纬度变化的影响基本可以忽略。
表 1 六组数据转换点的中误差/cm Tab.1 Mean Square Error of Transfer Points of Six Data Set/cm |
![]() |
通过实验试算,可以得到如下结论:在我国境内进行大范围坐标转换时,如果公共点的精度足够高且均匀覆盖整个转换区域,那么3°×3°(经纬跨度)区域范围是精度差异在cm级,在此范围内可以采用平面四参数法取代空间七参数法进行较高精度坐标转换。
2 基于MXD文件的坐标转换软件设计和实现 2.1 MXD/MDB文件数据结构MXD文件中仅存储了图层的符号显示等配置信息,实际的地形图信息是在与之相链接的数据库文件中存储。目前常见的测绘地形图基于Personal Geodatabase,即MDB数据库。
Feature是Arc Engine二次开发中最常用的对象,Feature是从Object中派生出来,因此也具有属性和方法,此外Object又是从Row中派生,所以FeatureClass是一张表,Feature就是表中的一条记录。在Feature中记录了空间要素的一些基本信息,如文本、坐标等空间数据。
本文设计完成的转换软件都是基于Feature对象操作和实现,软件主要功能目标是实现图件的基准转换,这个过程主要操作的是Feature的Shape属性。
2.2 坐标转换方案设计和选择软件内部设置了两种坐标转换方案,即四参数转换和七参数转换,但MXD/MDB文件常见情况下只存储了点位的平面高斯坐标,所以若选用七参数转换方案(这里以CGCS2000坐标系到北京54坐标系为例进行说明),首先要将转换点在CGCS2000坐标系下高斯投影平面坐标(x, y)2000按高斯反算公式得到其大地坐标(B, L, H)2000,然后转换为其对应的空间直角坐标(X, Y, Z)2000,再通过空间七参数变换(即式(2))得到北京54坐标系下的空间直角坐标(X, Y, Z)54,接着求出其在北京54坐标系下的大地坐标(B, L, H)54,最后通过高斯正算公式得到其高斯平面坐标(x, y)54。若选用四参数转换模型,可直接用式(2)进行坐标转换,如图 3所示。
![]() |
图 3 软件设计中坐标转换流程 Fig.3 Flow Chart of Coordinate Conversion |
这里需要说明,城市或地方坐标系建立过程中为了削弱投影误差的影响,相对于国家分带,中央子午线的选择往往考虑到城市或地方的具体地理位置进行了变动。这种情况下,在进行国家坐标系和地方坐标系转换时,为了保证坐标转换的精度,需要先进行中央子午线的统一,在此基础上再进行四参数法转换。
2.3 软件设计本文MXD/MDB转换软件系统是基于C#语言与Arc Engine平台进行二次设计开发。软件共分为数据读写模块、解码模块、数据处理转换模块、和基础类模块四部分。首先,读取数据文件,根据文件数据类型,调用解码模块进行文件的解码,获取文件中实体坐标信息,然后,调用数据处理模块按照控制文件的设置信息对文件中坐标信息进行转换、修改。最后将修改的坐标信息进行保存,调用写入模块编码写入目标文件。转换数据处理流程如图 4所示。
![]() |
图 4 软件设计和数据处理流程图 Fig.4 Flow Chart of Software Design and Data Processing |
软件整体设计以基准转换的可靠性和软件运行的高效率为基本原则,在保证精度的原则下,尽可能提高转换的效率。
1) 初始化模块。该模块主要功能是转换前根据用户的界面设定配置和检查转换的执行环境,软件分为单文件处理和批处理两种模式,为了减少内存占用,软件读写采用单文件逐一处理模式。
2) 解码读入和数据写入显示模块。MXD/MDB文件中所有的坐标信息都是存储在与之链接的数据库MDB文件中。实体的坐标信息存储在MDB数据库的SHAPE字段中。为了保证图件其他属性信息的完备性,文件写入过程中仅修改Feature对象Shape字段中坐标信息。3)数据处理模块。包含四参数转换、七参数转换、高斯投影换代计算等多项坐标转换功能。由于地方坐标系具有独特性,国家系和地方系转换过程中,上述转换方法需要配合使用才能完成相应的转换,为了程序运行的高效率,各转换功能分别建模、实现。
4) 基础类模块。主要包含数据处理过程中需要的辅助功能,如高斯投影正反算、三维坐标换算、角度转换、容错检查。
3 转换方案数据验证为了验证本文转换方案的有效性和转换软件的可靠性,本文选取了厦门、珠海的MXD/MDB成果文件进行测试。
图 5给出了部分MXD/MDB文件转换结果,图 5中第一组图对应地方坐标系到CGCS2000坐标系的转换,第二组图对应北京54坐标系到西安80坐标系的转换。
![]() |
图 5 MXD/MDB图件转换示例 Fig.5 Results of MXD/MDB Image Conversion |
表 2给出的是图 5所选取的公共点转换前后左上角点、右下角点对应坐标。利用相应的转换参数,单独对公共点进行坐标转换,其结果和文件转换结果完全一致。
表 2 转换前后公共点坐标值对比/m Tab.2 Comparison of Common Point Coordinate Values Before and After Conversion/m |
![]() |
为了进一步验证本文软件转换精度,图 6给出两组转换前后图形接边对比图,右侧图为转换后图,从图中看出在不同实体类型接边处(红色圆圈标记处),转换前后图形连接完好。在长距离房屋接边处(红色方框标记处),转换后的图件完好的保存了实体之间接边关系。软件采用的是复制-修改的模式来实现基准转换,这保证了转换前后各实体的属性信息的完好性,即转换前后各实体除坐标信息被修改外,其他属性信息(如图层信息)均保持与原图件一致。
![]() |
图 6 转换前后图形的连接性对比图 Fig.6 Graphic Connectivity Comparison Diagram Before and After Conversion |
为了验证软件系统运行效率,本文以某市GIS成果文件处理为例。如图 7所示,文件信息量大(主要道路、医疗、景点等各类城市主要信息),实体对象(包含点、线、面、注记等)全面检测软件的数据处理能力和效率。经过测试,在普通笔记本电脑(内存为2.0 GB, CPU为双核2.10 GZ),运行时间小于18 min,整个运行过程中软件占用内存小于85 M。
![]() |
图 7 某市GIS成果文件 Fig.7 GIS Achievement File of Whole Area in Certain City |
通过多类实测数据验证,本文提出的转换方案合理可行,所研制的软件系统适用于目前MXD/MDB类型测绘成果数据的转换。
5 结束语本文分析了目前常用的四参数转换和七参数转换模型的优缺点,通过实验验证了两种方法在中国境内厘米级精度的等效区域范围。在中国境内进行大范围坐标转换时,如果公共点的精度足够高且均匀覆盖整个转换区域,那么3°×3°(经纬跨度)是平面四参数法与空间七参数法在cm级水平上的等效范围,分析了常见测绘成果存储文件MXD/MDB文件的基本数据存储结构,给出了基于MXD/MDB文件的图形转换方案,设计开发了一套针对MXD/MDB文件坐标转换的软件系统,通过多个地区实测成果文件对转换方案和软件系统进行了有效性的测试。本文编写MXD/MDB转换软件经过测试能可靠的实现MXD/MDB在国家系之间、国家系与地方系之间以及地方系之间的自由转换。面对多样化的测绘数据存储形式,进一步实现多种类测绘数据的转换是下一步开展的工作之一。
[1] |
陈俊勇. 中国现代大地基准——中国大地坐标系统2000 (CGCS 2000)及其框架[J]. 测绘学报, 2008, 37(3): 269-271. DOI:10.3321/j.issn:1001-1595.2008.03.001 |
[2] |
宁津生, 王华, 等. 2000国家大地坐标系框架体系建设及其进展[J]. 武汉大学学报·信息科学版, 2015, 40(5): 569-572. |
[3] |
陈俊勇. 我国建立现代大地基准的思考[J]. 武汉大学学报·信息科学版, 2002, 27(5): 441-444. |
[4] |
姚宜斌, 孔建. 基于DXF文件的图件转换方法研究及程序实现[J]. 大地测量与地球动力学, 2011, 31(1): 117-122. |
[5] |
陈俊勇. 关于在中国构建全球导航卫星国家级连续运行站系统的思考[J]. 测绘学报, 2007, 36(4): 366-369. DOI:10.3321/j.issn:1001-1595.2007.04.002 |
[6] |
王百胜. 传统参心坐标系与国家2000大地坐标系转换问题研究[J]. 中国高新科技, 2019(2): 22-24. |
[7] |
曾传俊.空间七参数法与平面四参数法的等效性研究[D].武汉: 武汉大学, 2009
|
[8] |
罗峰. 基于MIF格式的图件转换方法[J]. 测绘科学, 2012, 38(3): 200-202. DOI:10.3969/j.issn.1673-6338.2012.03.011 |
[9] |
汪燕麟, 刘鸿飞, 王利华, 等. 基于DWG文件的图件坐标转换方法研究与实现[J]. 测绘地理信息, 2016, 41(6): 82-85. |
[10] |
李岳.坐标转换系统的设计与实现[D].北京: 中国地质大学, 2010 http://cdmd.cnki.com.cn/Article/CDMD-11415-1011035635.htm
|
[11] |
阳海峰.2000国家大地坐标系与我国常用坐标系在大地控制成果转换方面的研究[D].西安: 西安科技大学, 2010 http://cdmd.cnki.com.cn/Article/CDMD-10704-2011015287.htm
|