利用FME做坐标转换

时间:2023-02-04 16:18:25

http://bbs.3snews.net/viewthread.php?tid=28695

利用FME做坐标转换

一、坐标转换 
同一基准面的坐标系转换,利用workbench的coordinatesystem系列涵数和reprojector涵数即可完成. 
coordinatesystem:用来提取坐标点 
reprojector:同基准面的坐标变换 
可以通过涵数随意的添加和移除坐标前的带号. 
二、关于不同基准面的坐标转换 
用fme的配置文件,将七参数加入文件,定义坐标系转入即可. 
以一个城市为例: 
1、 在LocalCoordSysDefs.fme中定义椭球体参数(ELLIPSOID_DEF),投影参数(DATUM_DEF)或者其他更多参数(比如UNIT_DEF)等; 
2、 在MyCoordSysDefs.fme中定义坐标系; 
以一个城市提供的参数为例: 
1)投影参数: 
Conversion Technique to WGS84: Seven Parameter Transformation(七参数法) 
Delta X -64.00/Delta Y -131.00/Delta Z -51/X Axis 1.0/Y Aixs 2.0/Z Aixs -6.0/Scale Factor -2.5 
2)椭球体参数: 
Ellipsoid Dimensions: Equatorial 6378245/Polar Radius 6356863/Flattening Ratio 298.2997/Eccentricity 0.0818 
3)坐标系参数: 
Projection: Transverse Mercator 
False Origin: Northing -3457147/Easting 0 
Projection Parameters: Origin latitude 0d0'0"/Scale reduction 1/Central meridian 121d27'23" 
定义过程如下: 
首先定义椭球体参数(具体意义见Translator随机帮助文件): 
ELLIPSOID_DEF SEL \ #(定义名称) 
DESC_NM "SEL" \ #(说明) 
E_RAD 6378245 \ #(Equatorial 6378245) 
P_RAD 6356863 #(Polar Radius 6356863) 
然后定义投影参数(具体意义见Tranlator随机帮助文件): 
DATUM_DEF SDT \ 
DESC_NM "SDT" \ 
ELLIPSOID SEL \ #(这里引用了上面的椭球体参数定义) 
USE 7PARAMETER \ #(采用7参数法) 
DELTA_X -64.00 \ #(Delta X -64.00) 
DELTA_Y -131.00 \ #(Delta Y -131.00) 
DELTA_Z -51 \ #(Delta Z -51) 
ROT_X 1.0 \ #(X Axis 1.0) 
ROT_Y 2.0 \ #(Y Aixs 2.0) 
ROT_Z -6.0 \ #(Z Aixs -6.0) 
BWSCALE -2.5 #(Scale Factor -2.5) 
然后把以上两个定义过程复制到LocalCoordSysDefs.fme中,注意有次序的要求,被引用的放在前面。(还有,LocalCoordSysDefs.fme文件最后一句话是Include MyCoordSysDefs.fme,要把定义放到这句话之前) 
最后打开MyCoordSysDefs.fme,定义坐标系(具体说明见Translator随机帮助文件): 
COORDINATE_SYSTEM_DEF SHANGHAI \ 
DESC_NM "SHANGHAI LOCAL COORDINATE" \ 
PROJ TM \ #(这里采用的TM椭球变换,即Projection: Transverse Mercator,具体参数意义见Translator随机帮助文件) 
UNIT METER \ #(坐标单位,几乎所有TM都用METER) 
DT_NAME SHANGHAIDT \ #(这里引用了上面的投影参数定义) 
#以下是具体参数 
PARM1 121.456 \ #(这个值是*经线的度数,就是Central meridian 121d27'23") 
SCL_RED 1 \ #(Scale reduction 1) 
ORG_LAT 0.0 \ #(Origin latitude 0d0'0") 
X_OFF -3457147 \ #(Northing -3457147) 
Y_OFF 0.0 \ #(Easting 0) 
MAP_SCL 1.0 #(这个参数是图纸比例,没有例外选择1.0) 
这样就可以在Tranlator和Workbench中利用这个坐标定义了。 
请把正确的参数放到以上定义中,然后添加到相应的文件中(添加完后可以把包括#在内的注释文字删除),这样就可以用来转换数据了。 
三、利用纠正来进行坐标系的变换(赋坐标系) 
利用affinewarper涵数 
也可以对影像数据进行纠正 
步骤: 
先生成控制文件 
利用affinewarper涵数进行变换,至少四个点