Fme自定义坐标系统和地理基准转换参数

可以参考一下
B站视频:自定义坐标系统
B站视频:自定义坐标转换参数

坐标系基础

坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定。
基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京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在全球许多不同的国家/地区使用,并且还与每个国家/地区的各种自定义数据集一起使用。但是,有时 FME 的坐标系库不包括正在使用的坐标系。在这些情况下,必须先定义坐标系,然后 FME 才能使用它们。
添加自定义坐标系
要添加自定义坐标系,请创建一个定义坐标系的新 .fme 文件,并将其保存到 %USER%\Documents\FME\CoordinateSystems 或共享文件夹(在“工具> FME 选项”>“默认路径”中定义>共享 FME 文件夹)。

使用在线工具

Safe 提供了一个可用于创建自定义坐标系的在线https://demos-safe-software.fmecloud.com/fmedatastreaming/Coordsys/Start.fmw。可以从现有坐标系进行自定义,也可以创建一个全新的坐标系。
注意:这里可以提供上传一个esri prj格式的坐标系,但是我没敢用过。下面这个我经常使用。

手动定制现有坐标系以创建新坐标系:

1.打开坐标系库(Tools > Browse Coordinate Systems)。
2.选取用作模型的坐标系。
3.单击“属性”。
4.在坐标系的属性窗口中,复制“坐标系参数”下的文本,然后粘贴到文本编辑器中。
5.设置定义的格式以符合 FME 坐标系语法。可以模仿 FME 安装目录的“重新投影”文件夹中的 MyCoordSysDefs.fme 文件中给的示例。
6.添加、移除和/或编辑参数以自定义坐标系。
7.将文件另存为 <custom_coordinate_system_name>.fme 到 %USER%\Documents\FME\CoordinateSystems 或共享文件夹(在“工具> FME 选项”>“默认路径>共享 FME 文件夹中定义)。
注意:必须先重新启动fme workbench,然后 FME 才能识别自定义坐标系。
自定义坐标系将显示在坐标系库的列中。

如果源数据的投影和单位不是在 FME 中预定义的,因此,要定义它们,必须添加以下行:

坐标系定义项目备注
COORDINATE_SYSTEM_DEF坐标名称
PROJ投影类型
UNIT预定义单位
DT_NAMEEL_NAME
DESC_NM描述信息,可以没有
GROUP提示:通过定义唯一的组名称,可以按坐标系库中的“组”列对坐标系进行排序。
QUAD象限定义
SOURCE
ZERO_XX轴偏移量
ZERO_Y

投影类型

每个坐标系定义都必须指定投影类型,并为与投影关联的所有参数提供值。
下表列出了坐标系定义中允许的投影类型。
注意:
1.作为投影参数提供的所有纬度和经度必须以度为单位。负值用于指示南纬和西经。
2.所有经度值必须相对于格林威治本初子午线给出。

下面是我用过的投影类型,官方文档中还有很多,看不懂,也不会用。

投影类型描述
GEOCENTRIC_FME地心 地心说不是通常意义上的投影:它是从椭球体中心测量的 X,Y,Z 系统。此投影中的所有坐标均以米为单位进行测量,并且 UNIT 参数必须设置为 METER
LL纬度/经度
TM横轴墨卡托
GAUSSK高斯投影
LL参数名称描述
PARM1将使用的最小经度。小于此值的经度将通过向其添加 360 来表示为正经度。这用于控制经度测量值中不连续性发生的位置。此值必须小于或等于 0,并且大于或等于 -360。如果未指定,则默认值为 -180。
PARM2将使用的最大经度。大于此值的经度将通过从中减去 360 来表示为负经度。此值必须大于或等于 0,并且大于或等于 360。虽然不是必需的,但PARM1和PARM2之间的范围通常是360。如果未指定,则默认值为 180。
ORG_LNG使用此参数可以指定要使用的本初子午线(格林威治除外),以相对于格林威治的度数表示。
TM横轴墨卡托参数名称描述
PARM1中央经线的经度(以度为单位)。
ORG_LAT投影原点的纬度(以度为单位)。
SCL_RED缩放比例因子。这也被称为中央经线的比例尺。
X_OFF要应用于所有 X 坐标的假东移,选择此选项可使坐标系内的所有 X 坐标都为合理大小的正值。
Y_OFF要应用于所有 Y 坐标的假北向。
注:我自行理解的是高斯投影参数和TM类似,其没有SCL_RED,高斯默认其值为1

定义新椭球

某些站点可能需要在 FME 中未预定义的椭圆体。在这种情况下,可以创建自定义椭球体。椭圆体定义可能出现在 FME 映射文件中,也可能出现在 LocalCoordSysDefs.fme 中。
椭圆体定义的语法为:
ELLIPSOID_DEF <椭球体名称>
DESC_NM <描述性名称>
SOURCE <源>
E_RAD <长轴>
P_RAD <短轴>
QUAD:象限
FME 允许在通常象限以外的象限中测量坐标系,其中 X 向东增加,Y 向北增加。
坐标系定义中的 QUAD 指令用于设置坐标系的方向。
此指令采用从 -4 到 4 的整数值。0 或 1 表示正常的右手笛卡尔系统,其中 X 向东增加,Y 向北增加。这是默认象限。
象限按逆时针方向编号:
1.值 2 指定一个笛卡尔系统,其中 X 向西增加,Y 向北增加;
2.值为 3 表示 X 向西增加,Y 向南增加;
3.值为 4 表示 X 向东增加,Y 向南增加。
2	1
3	4

负值将导致在应用适当的象限后交换轴。

定义基准面datum

某些数据集可能需要在 FME 中未预定义的基准面。在这种情况下,可以创建自定义基准。基准面定义可能出现在 FME 映射文件中,也可能出现在 FME_HOME/Reproject/MyCoordSysDefs.fme 文件中。基准定义的语法为:
注意要点:下面的参数是要定义的基准面到 WGS-84 基准面的
DATUM_DEF <名称>
[DESC_NM <描述性名称>]
[SOURCE<来源>]
ELLIPSOID<椭球体名称>
[USE<使用类型>]
[DELTA_X <x 值>]
[DELTA_Y <y 值>]
[DELTA_Z <z 值>]
[BWSCALE<缩放比例>]
[ROT_X ]
[ROT_Y <>rotY]
[ROT_z ]
基准定义参数

名字范围 描述自选
DATUM_DEF要定义的基准的名称。
DESC_NM任何字符串基准的描述性名称。是的
SOURCE任何字符串 提供基准参数的个人或机构。是的
ELLIPSOID有效椭圆体 基准所基于的椭圆体。
USE基准使用方法例如BURSA,7PARAMETER,GEOCENTRIC等 基准涉及基准转换时使用的类型。是的
DELTA_X浮点值 矢量的 X 分量。单位:米。是的
DELTA_Y浮点值 矢量的 Y 分量。单位:米。是的
DELTA_Z浮点值 矢量的 Z 分量。单位:米。是的
BWSCALE浮点值 BURSA 使用型采用的比例因子,以百万分之一为单位。是的
ROT_X浮点值 BURSA 使用型所采用的 X 旋转系数。单位:弧秒。是的
ROT_Y浮点值 BURSA 使用型采用的 Y 旋转系数。单位:弧秒。是的
ROT_Z浮点值 布尔萨使用型采用的 Z 旋转系数。单位:弧秒。是的

自定义地理转换

地理转换是将一个地理坐标系中的坐标转换到另一个地理坐标系中。FME软件中预置了大量常用的坐标系统参数。一般FME中预置的的坐标转换参数为目标坐标系统到WGS84,从基准面A转换到基准面B,软件一般执行基准面A -> WGS84 ->基准面 B。
如果我们手中的转换参数直接为基准面A 到基准面B,没有与WGS84之间的转换参数,也就是基准面A ->基准面B,除了使用MYFME中提供的转换器,FME也支持用户自定义地理基准转换,或者更加复杂的基准面A ->基准面B ->基准面C之间转换。
在我们手中只有一些本地坐标系转换参数情况下,您可以创建一个自定义地理转换模型。转换定义可能发生在FME映射文件中,也可以在<FME_Install_Dir>/Reproject/MyCoordSysDefs.fme文件中.
单步转换语法
XFORM_DEF
SRC_DTM
TRG_DTM
[DESC_NM ]
[SOURCE ]
[GROUP ]
[EPSG_NBR <epsg #>]
[INVERSE <yes|no>]
[MAX_ITR ]
[CNVRG_VAL ]
[ERROR_VAL ]
[EPSG_VAR <0-32767>]
[MIN_LNG ]
[MAX_LNG ]
[MIN_LAT ]
[MAX_LAT ]
METHOD
[DELTA_X ]
[DELTA_Y ]
[DELTA_Z ]
[ROT_X ]
[ROT_Y ]
[ROT_Z ]
[BWSCALE ]
多步转换语法
可以实现基准面A ->基准面B ->基准面C的转换
PATH_DEF
[SRC_DTM ]
[TRG_DTM ]
[DESC_NM ]
[SOURCE ]
[GROUP ]
[ACCURACY <0-1000>]
[XFORM ]
转换参数定义

名称范围说明可选默认
XFORM_DEF定义的单步转换的名称
PATH_DEF定义的多步转换的名称
SRC_DTM基准名称 源基准的名称 如果省略了路径,这一转换是不会自动选择的。XFORM: No PATH: Yes
TRG_DTM基准名称 目标基准的名称 如果省略了路径,这一转换是不会自动选择的。XFORM: No PATH: Yes
DESC_NM字符串 对转换的一个描述性名称
SOURCE字符串 提供转换参数的个人或机构。
GROUP字符串 Workbench中地理转换库中的组
INVERSEYes/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,<fwd、inv> 路径定义需要列出至少一个单步转换。转换按顺序和列出的方向进行应用.

新建立的转换模型可以在FME->工具->浏览地理转换器内查看,弄不好参考一下我B站视频。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值