在FME中自定义坐标系

 

地理转换是将一个地理坐标系中的坐标转换到另一个地理坐标系中。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等转换器实现坐标转换。

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/110229661