地理转换是将一个地理坐标系中的坐标转换到另一个地理坐标系中。FME软件中预置了大量常用的坐标系统参数。一般FME中预置的的坐标转换参数为目标坐标系统到WGS84,从基准面A转换到基准面B,软件一般执行基准面A -> WGS84 ->基准面 B。
如果我们手中的转换参数直接为基准面A 到基准面B,没有与WGS84之间的转换参数,也就是基准面A ->基准面B,除了使用MYFME中提供的转换器,FME也支持用户自定义地理基准转换,或者更加复杂的基准面A ->基准面B ->基准面C之间转换。
坐标系基础
坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定。
基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。
地理坐标系统(Geographic coordinate system),是以经纬度为地图的存储单位的,也称球面坐标 或大地坐标系。包含地球椭球体和大地基准面。
地球是一个不规则的椭球,为了将数据信息科学的放到椭球上,就需要有一个可以量化计算的椭球体,具有长半轴,短半轴,偏心率。然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中: Datum: D_Beijing_1954 表示,大地基准面是D_Beijing_1954。有了椭球体和大地基准面两个基本条件,地理坐标系统便可以使用。
以下几行是地理坐标系统相应的参数:
Geographic Coordinate System: GCS_Xian_1980//地理坐标系
Datum: D_Xian_1980 //大地基准面
Prime Meridian: Greenwich //起始经度(本初子午线)
Angular Unit: Degree//角度单位
投影坐标系统 (Projection coordinate system)平面坐标系统地图单位通常为米 ,也称非地球投影坐标系统 (not earth),或者是平面坐标。投影的条件为 a、球面坐标 b、转化过程(也就是算法) ,即每一个投影坐标系统都必须要求有地理坐标系统(Geographic Coordinate System)参数。
以下是投影坐标系统中的一些参数:
Projection: Gauss_Kruger //投影方法
Parameters: //参数
False_Easting: 500000.000000 //在东西方向上坐标纵轴向西移了500km
False_Northing: 0.000000 //在南北方向上坐标横轴没有移动
Central_Meridian: 117.000000 //中央经线,同central longitude
Scale_Factor: 1.000000 //比例系数
Latitude_Of_Origin: 0.000000 // 纬度的起源,这里即赤道
Linear Unit: Meter (1.000000) //线性单位
添加一个自定义地理转换
在我们手中只有一些本地坐标系转换参数情况下,您可以创建一个自定义地理转换模型。转换定义可能发生在FME映射文件中,也可以在<FME_Install_Dir>/Reproject/MyCoordSysDefs.fme
文件中.
单步转换语法
XFORM_DEF <xformName> \
SRC_DTM <datum name> \
TRG_DTM <datum name> \
[DESC_NM <descriptive name>] \
[SOURCE <source>] \
[GROUP <group>] \
[EPSG_NBR <epsg #>] \
[INVERSE <yes|no>] \
[MAX_ITR <max iterations for inverse convergence>] \
[CNVRG_VAL <inverse convergence threshold for completion>] \
[ERROR_VAL <inverse convergence threshold for error reporting>] \
[EPSG_VAR <0-32767>] \
[MIN_LNG <longitude>] \
[MAX_LNG <longitude>] \
[MIN_LAT <latitude>] \
[MAX_LAT <latitude>] \
METHOD <transformation method> \
[DELTA_X <x translation>] \
[DELTA_Y <y translation>] \
[DELTA_Z <z translation>] \
[ROT_X <x rotation>] \
[ROT_Y <y rotation>] \
[ROT_Z <z rotation>] \
[BWSCALE <scale>] \
多步转换语法
可以实现基准面A ->基准面B ->基准面C的转换
PATH_DEF <pathName> \
[SRC_DTM <datum name>] \
[TRG_DTM <datum name>] \
[DESC_NM <descriptive name>] \
[SOURCE <source>] \
[GROUP <group>] \
[ACCURACY <0-1000>] \
[XFORM <xformName>,<direction>]+
转换参数定义
名称 |
范围 |
说明 |
可选 |
默认 |
XFORM_DEF |
CS-Map标识符名称 描述为 <FME_Install_Dir>/Reproject/MyCoordSysDefs.fme |
定义的单步转换的名称 |
否 |
|
PATH_DEF |
CS-Map标识符名称 描述为 <FME_Install_Dir>/Reproject/MyCoordSysDefs.fme |
定义的多步转换的名称 |
否 |
|
SRC_DTM |
基准名称 |
源基准的名称 如果省略了路径,这一转换是不会自动选择的。 |
XFORM: No PATH: Yes |
|
TRG_DTM |
基准名称 |
目标基准的名称 如果省略了路径,这一转换是不会自动选择的。 |
XFORM: No PATH: Yes |
|
DESC_NM |
字符串 |
对转换的一个描述性名称 |
是 |
|
SOURCE |
字符串 |
提供转换参数的个人或机构。 |
是 |
|
GROUP |
字符串 |
Workbench中地理转换库中的组 |
是 |
|
INVERSE |
Yes/No |
如果是,转换可以逆向运行 (TRG_DTM -> SRC_DTM) |
是 |
是 |
MAX_ITR |
整数大于或等于零 |
最大数量的迭代试图运行转换时逆转,在2 d中。 |
是 |
8 |
CNVRG_VAL |
浮点值 |
收敛阈值:2D逆向转换在真正的答案的区间内,迭代停止。 |
是 |
1.0E-09 |
ERROR_VAL |
浮点数 |
错误阈值:迭代阈值后,当一个逆转2 d转换不符合CNVRG_VAL MAX_ITR,结果被认为是可以接受的,只要它比ERROR_VAL更接近。 |
是 |
1.0E- 06 |
METHOD |
参考地理转换。 |
将被应用的转换方法. |
否 |
|
DELTA_X |
浮点值 |
该数值由中间地心X坐标转换而来。单位为米,并以按数值的标记实行转换方向。只应用到某些METHODs. |
是 |
0 |
DELTA_Y |
浮点值 |
该数值由中间地心Y坐标转换而来。单位为米,并以按数值的标记实行转换方向。只应用到某些METHODs. |
是 |
0 |
DELTA_Z |
浮点值 |
该数值由中间地心Z坐标转换而来。单位为米,并以按数值的标记实行转换方向。只应用到某些METHODs. |
是 |
0 |
ROT_X |
浮点值 |
X轴旋转角度,数值以秒为单位,并以数值标志表示旋转的方向。只应用到某些METHODs. |
是 |
0 |
ROT_Y |
浮点值 |
Y轴旋转角度,数值以秒为单位,并以数值标志表示旋转的方向。只应用到某些METHODs. |
是 |
0 |
ROT_Z |
浮点值 |
Z轴旋转角度,数值以秒为单位,并以数值标志表示旋转的方向。只应用到某些METHODs. |
是 |
0 |
BWSCALE |
浮点值 |
比例因子,比例系数应用于中介地心坐标。该值为百万分之一,是比例系数和实体的实际差异。只应用到某些METHODs. |
是 |
0 |
XFORM |
<Single-step transformation name>,<fwd|inv> |
路径定义需要列出至少一个单步转换。转换按顺序和列出的方向进行应用. |
否 |
|
例如:
新建立的转换模型可以在FME->工具->浏览地理转换器内查看
注:我们可以通过以上方法定义地理转换参数,也可以自定义椭球和基准面后,在fme desktop中使用MYFME提供的7PReprojector等转换器实现坐标转换。