使用ArcGIS和COORD进行七参数坐标转换
使用软件Arcgis,coord。
以北京54坐标转为国家2000为例。
COORD软件中计算布尔沙沃尔夫七参数
1. 添加椭球体参数
COORD软件里没有国家2000坐标系椭球,需要在椭球管理中添加。文件——椭球管理,添加CGCS2000椭球参数。CGCS2000椭球参数是公开的,在ArcGIS里面就有,这里只需要输入长半轴和扁率。
2. 设置——地图投影——设置中央子午线。本例中央子午线为111:00:00.000000
3. 设置——计算七参数
选择源坐标椭球:国家54。
目标坐标椭球:cgcs2000(前面添加的椭球)。
模型选择:布尔莎。
源坐标使用经纬度格式,目标坐标使用不带带号的平面坐标。没有高程信息时,可以使用不带高程值的坐标计算参数。设置好3对公共点坐标和坐标系,计算7参数。
2.2七参数单位转换
COORD里面的单位与ArcGIS里面定义不一样,计算出来的七参数,不能直接在ArcGIS里面使用。在COORD软件中,平移参数的单位是米,旋转参数单位是弧度,尺度参数单位是1。在ArcGIS中,平移参数的单位是米,旋转参数单位是秒,尺度参数单位是百万。为了把COORD中的七参数用于ArcGIS,必须进行七参数的单位转换。
旋转参数的单位是弧度转为秒:
2π= 360°,1rad= 57.29578°,因此1弧度= 57.29578*3600秒
ArcGIS旋转参数=COORD旋转参数*57.29578*3600
ArcGIS尺度= COORD尺度*1000000
2.3 ArcGIS中坐标转换
1. ArcGIS中定义转换参数文件
打开ArcGIS,ArcToolbox——Data Management Tools——Projections and Transformations——Raster——create Custom Geographic Transformation(英文路径)
ArcToolbox——数据管理工具——投影和变化——创建自定义地理(坐标)变化(中文路径)
按照如下信息,输入参数:
ArcGIS中有两种七参数转换模型, Coordinate frame和position vector。
COORDINATE_FRAME和POSITION_VECTOR这2个方法基本相同,都使用布尔莎-沃尔夫七参数模型。两者的不同在于旋转角度的定义不同,COORDINATE_FRAME方法按顺时针定义;POSITION_VECTOR方法按逆时针定义旋转角。一般美国使用COORDINATE_FRAME方法,欧洲使用POSITION_VECTOR方法。
具体哪种需要测试一下(参考像素工厂DOM制作的精度研究-王荣宝),这里使用COORDINATE_FRAME方法。
2. ArcGIS中坐标转换
ArcToolbox —— Data Management Tools——Projectionsand Transformations —— Feature —— Project(英文路径)
ArcToolbox——数据管理工具——投影和变化——投影 (中文路径)
设置所要转换数据、输入输出坐标系和地理变换方法。
ArcGIS 中提供地理变换方法主要有这几种:Geocentric_Translation、Molodensky、Molodensky_Abridged、Position_Vector、Coordinate_Frame、Molodensky_Badekas、NADCON、HARN、NTV2、Longitude_Rotation、Unit_Change 和 Geographic_2D_Offset。可使用“创建自定义地理变换(Create Custom Geographic Transformation)”工具来创建转换方法。地理坐标系包含了基于椭圆体的基准面,因此地理变换会更改基础椭圆体。在基准面间进行变换的方法很多,这些方法具有不同的精度和范围。
地理变换是针对地理坐标系的,也就是经纬度坐标进行转换,如果输入数据的坐标系中还包含了平面坐标系(投影),在使用 Project 工具的过程中会自动做相应的投影变换,转到地理坐标系,地理变换后,如果需要再转为相应的投影坐标系。
PS:
所有的自定义地理变换文件都将存储为扩展名为 .gtf 的文件,文件名就是之
前设置的转换方法名称。并存储在C:用户\ phy.HZCTRC(电脑用户名)\AppData\Roaming\Esri\Desktop10.x(ArcGIS的版本)\ArcToolbox\CustomTransform文件夹中。自定义变换文件不能进行编辑。它们为二进制文件,用来储存版本和字符串长度信息,如果在ArcGIS之外进行自行编辑,可能会被损坏。
下面我们来看看常用的转换方法吧,帮助中有介绍,我下面来个精简整理版的:
1)Geocentric_Translation
地心变换,也就是我们常说的三参数变换,是最简单的基准面变换方法。地心变换在 XYZ 或 3D 直角坐标系中对两个基准面间的差异情况进行建模。定义一个基准面使其中心为 0,0,0。相距一定距离定义另一个基准面(dx,dy,dz 或 ΔX,ΔY,ΔZ,单位为米)。
图示:
方程:
2)Coordinate Frame,Position Vector
这两种方法是我们常说的七参数变换,或者布尔沙模型。通过对三参数变换再增加四个参数可实现更复杂和精确的基准面变换。七个参数是指三个线性平移量 (dx,dy,dz)、绕各轴的三个角度旋转值 (rx,ry,rz) 和一个比例尺因子。旋转值以十进制秒为单位给定,而比例尺因子采用百万分率 (ppm)。
图示:
方程:
为什么七参数有上面两种方法?其实可以认为是一种模型,只是不同的国家对旋转量的正负号定义标准不同而已。
- 坐标框架旋转变换(coordinate frame),美国和澳大利亚的定义,逆时针旋转为正;
- 位置矢量变换(position vector),欧洲的定义,逆时针旋转为负。
另外,莫洛金斯基–巴德卡斯(Molodensky_Badekas) 方法是七参数方法的变型。它具有三个附加参数,用于定义旋转点的 XYZ 原点。
3)Molodensky,Molodensky_Abridged
莫洛金斯基方法直接在两种地理坐标系之间转换,实际上无需转换到 XYZ 系统。莫洛金斯基方法需要三个平移量 (dx,dy,dz) 以及两个旋转椭球体的长半轴 (Δa) 和扁率 (Δf) 的差。
实例操作创建自定义投影:
转换shap数据:输入数据,选择输出坐标系,下拉选择定义7参数,点击确定即可。