您的位置:首页 > 其它

ARcGIS坐标变换

2014-10-19 11:35 411 查看
地理坐标系变换是数据处理过程中常遇到的问题,今天就说下这方面的问题。

如果遇到这种情景:两份数据有不同的坐标系,想叠加在一起显示,作图或显示精度要求不高。

这种情况使用 ArcMap 的动态投影即可,ArcMap 的内部动投影机制会解决地理坐标系变换的问题。数据在显示的过程中,会实时的被转换,但不改变数据本身。

如果我们需要进行地理坐标系转换,我们知道 ArcGIS Desktop 中提供了 Project 工具。

此工具界面上有个至关重要的参数:Geographic Transformation。我们发现它的后面赫然写着 Optional 。依照使用其他工具的经验,这种打了 Optional 标志的参数,不就是可填可不填的意思吗?

但是,它真的让你随便的可填可不填吗? Naive! 图样图森破! 这个参数的填写与否,完全是受前面两个参数决定的,主要三种情景吧。

情景1:

不涉及到地理坐标系变换的坐标变换,这个参数完全不需要,而不是 optional 哦。

例如:从 GCS_Xian_1980 进行投影变换,转换为 Xian_1980_3_Degree_GK_CM_120E 投影坐标系。

整过转换中,仅使用了高斯克吕格投影变换,没有涉及到地理坐标变换。



情景2:

涉及到地理坐标系变换的坐标变换,并且ArcGIS 已知二者之间的变换方法,这个参数是必须的,在已知列表中做选择或者自定义。(自定义见:情景3)

例如:从 GCS_Beijing_1954,转换为 GCS_WGS_1984坐标系。

转换过程中涉及到地理坐标系变换,也就是进行了椭球体变换。

ArcGIS 中提供了6种已知转换方法,可以根据适用范围选择之。其中如何选择,此文不做介绍,请查看我的另一篇博客:/article/1822180.html



情景3:

涉及到地理坐标系变换的坐标变换,并且ArcGIS 未知二者之间的变换方法,也就是ArcGIS没有提供转换方法,但是这个参数是必须的,需要自定义,这个参数前会亮绿灯,告诉用户,必须要填写。另外,上面情景2中,ArcGIS给出的方法,如果都不是自己需要的,也需要自定义。

例如:从 GCS_Beijing_1954,转换为 GCS_Xian_1980坐标系。



需要使用工具 Creat Custom Geographic transformation,创建一种转换方法,辅助 Project 工具。

这个工具的帮助如下,就不赘述了。

http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#//001700000076000000

补充:

讲到这里全部的情形都涵盖了。有的同学会问,为什么会这样呢?ArcGIS为啥就不能都知道转换方法呢?为啥偏要我们自定义呢?好麻烦的耶%¥#@……

有些坐标系转换的参数是不公开的,属于涉密的内容,所以ArcGIS是没有权利知道变换方法的。例如与 Xian 80 有关的变换。原文:Some geographic coordinate
systems do not have any publicly known transformations because that information is considered to have strategic importance to a government or company.

好了,至此,大致就知道这个参数什么时候不需要,什么时候需要,如果没有如何得到,这几个问题。

上篇博客说的是 Project 工具中 Geographic Transformation 参数什么情况下是必填的。

另外,Project 是矢量数据的坐标系变换工具,如果数据源是栅格数据,需要使用 Project Rater 工具。

这篇博客主要写一下,有关自定义地理变换方法。

ArcGIS 中提供地理变换方法主要有这几种:Geocentric_Translation、Molodensky、Molodensky_Abridged、Position_Vector、Coordinate_Frame、Molodensky_Badekas、NADCON、HARN、NTV2、Longitude_Rotation、Unit_Change 和 Geographic_2D_Offset。可使用“创建自定义地理变换(Creat Custom
Geographic Transformation)”工具来创建转换方法。地理坐标系包含了基于椭圆体的基准面,因此地理变换会更改基础椭圆体。在基准面间进行变换的方法很多,这些方法具有不同的精度和范围。

地理变换是针对地理坐标系的,也就是经纬度坐标进行转换,如果输入数据的坐标系中还包含了平面坐标系(投影),在使用 Project 工具的过程中会自动做相应的投影变换,转到地理坐标系,地理变换后,如果需要再转为相应的投影坐标系。



PS: 所有的自定义地理变换文件都将存储为扩展名为 .gtf 的文件,并存储在用户 Application Data 文件夹下的 ESRI\<ArcGIS product>\ArcToolbox\CustomTransformations
文件夹中。自定义变换文件不能进行编辑。它们为二进制文件,用来储存版本和字符串长度信息,如果在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) 的差。

这种方法,相对用的少,方程我就不粘了,详见帮助:

http://resources.arcgis.com/en/help/main/10.2/index.html#/na/003r00000012000000/

OK,今天就到这里了~


创建自定义地理(坐标)变换 (Data Management)

许可等级:BasicStandardAdvanced


摘要

可创建一种变换方法,用于在两个地理坐标系或基准面之间对数据进行转换。对于任何参数要求进行地理变换的工具,都可使用此工具的输出作为变换方法。


用法

所有的自定义地理变换文件都将存储为扩展名为 .gtf 的文件,并存储在用户 Application
Data 文件夹下的 ESRI\<ArcGIS product>\ArcToolbox\CustomTransformations 文件夹中。如果 CustomTransformations 文件夹不存在,此工具会自动创建。如果 Application
Data 文件夹为只读或已隐藏,则输出会创建到用户临时文件夹下的 ArcToolbox\CustomTransformations 中。Application
Data 和 temp 文件夹的位置或名称取决于操作系统。

在所有 Windows 操作系统中,Application Data 文件夹均位于 %appdata% 中,而用户的 Temp 文件夹则位于 %temp% 中。在命令窗口中输入 %appdata% 将返回
AppData 文件位置。输入 %temp% 将返回临时文件夹位置。

在 Unix 系统中,tmp 和 Application
Data 文件夹分别位于用户主目录下的 $TMP 和 $HOME 中。在终端键入 /tmp 将返回该位置。

对于任何使用地理变换的地理处理工具,都可查看默认储存位置中的所有自定义变换,这些自定义变换会在对话框的地理变换参数下拉列表中显示为有效的变换选项。

自定义变换文件不能进行编辑。它们为二进制文件,用来储存版本和字符串长度信息,如果在地理处理框架之外进行编辑,可能会被损坏。要更新该文件,需要创建一个新的自定义地理(坐标)变换并覆盖现有文件。


语法

CreateCustomGeoTransformation_management (geot_name, in_coor_system, out_coor_system, custom_geot)
参数说明数据类型
geot_name
自定义变换方法的名称。

所有的自定义地理变换文件都将存储为扩展名为 .gtf 的文件,并存储在用户 Application
Data 文件夹下的 ESRI\<ArcGIS product>\ArcToolbox\CustomTransformations 文件夹中。如果CustomTransformations 文件夹不存在,此工具会自动创建。如果 Application
Data 文件夹为只读或已隐藏,则输出会创建到用户临时文件夹下的 ArcToolbox\CustomTransformations中。Application
Data 和 temp 文件夹的位置或名称取决于操作系统。

在所有 Windows 操作系统中,Application Data 文件夹均位于 %appdata% 中,而用户的Temp 文件夹则位于 %temp% 中。在命令窗口中输入 %appdata% 将返回
AppData 文件位置。输入%temp% 将返回临时文件夹位置。

在 Unix 系统中,tmp 和 Application
Data 文件夹分别位于用户主目录下的 $TMP 和 $HOME中。在终端键入 /tmp 将返回该位置。

String
in_coor_system
起始地理坐标系。
Coordinate System
out_coor_system
最终地理坐标系。
Coordinate System
custom_geot
将 METHOD 和 PARAMETER 的值嵌入针对自定义变换 GEOGTRAN 的字符串中。设置方法的名称时,可供选择的方法有 Geocentric_Translation、Molodensky、Molodensky_Abridged、Position_Vector、Coordinate_Frame、Molodensky_Badekas、NADCON、HARN、NTV2、Longitude_Rotation、Unit_Change 和 Geographic_2D_Offset。每种方法都有一组特定的参数,您可以通过在自定义地理变换的整个字符串表示内的参数名称旁输入文本来编辑参数值。请参阅以下
Python 实例中的示例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: