FME中的3D坐标问题

原文发布时间:2013-10-21

作者:毛毛虫

1、使用坐标参考

3D软件一般没有设计应用程序做映射,并没有做坐标系统的工作。为了解决这个问题,FME从一些栅格格式学习,添加类似的世界文件来支持多种3D格式。

注意这里有一些文件,类似于shapefileFME使用几个文件来帮助读取很多3D格式。多数伴生文件用于模型文件的几个应用程序中。不过目前.prj  fwt文件只是一个FME特征。Prj简单的定义了坐标系统,fwt定义了一个转换矩阵,FME将模型从本地坐标到移动到一个世界坐标或者从世界坐标移动到本地坐标。

下图是一个3ds格式的数据的文件夹:


其中prj文件是一个坐标系定义,内容如下:

PROJCS["Xian_1980_3_Degree_GK_CM_120E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]

fwt文件是一个坐标转换的矩阵,内容如下:

100  0    0    520050

0    100  0    3480050

0    0    100  0

2FME中三维格式的坐标设置

为了实现坐标的转换,FME会创建多个文件,通过选择读模块参数中的“Move to World Coordinate System”(移动到世界坐标系统)或写模块中的参数“Move to Local Coordinate System”(移动到本地坐标)来移动数据。

其中,读模块中的“Move to World Coordinate System”参数设置如下:

参数说明:这个参数默认的值是'No',如果这个值设置为'Yes', '.prj' 'fwt'文件会依次读取来获取坐标系统和必要的数据来转换点到世界坐标系统。

其中,写模块中的” Move to Local Coordinate System”参数设置如下:


选择No,没有坐标文件生成,只有贴图文件和模型文件,如图:


如果这个值设置为PRJ_ONLY,伴生的‘.prj’文件包含了坐标系统的定义,被写在模型文件的同一目录下。如图:


 如果这个值设置为Yes,对比‘PRJ_ONLY’选项,除了生成‘.prj’文件,一个伴生的‘fwt’文件也会被写入到与模型文件相同的文件夹下,在写入要素中的所有点的坐标在它们的XY-约束矩形会被规范化到[-0.5, 0.5]内。其他的维数会被按百分比缩放。这可以用于改进写入坐标的精度。如图:


3、写模块三个选项的区别

对于写模块中坐标的三个设置,值“No”不会生成任何坐标文件,所以打开该文件时,不管在读模块的Move to World Coordinate System”参数上设置为“No”还是“Yes”,坐标都不会有变化。值“PRJ_ONLY”对读模块中的Move to World Coordinate System”参数也没影响,但是含有prj文件的模型具有了坐标系(没有prj文件的坐标系统显示的是Unknown)。


 坐标的范围为生成数据时定义的范围,如下:


 值“Yes”时,当读取模型文件,读模块的Move to World Coordinate System”参数上设置为“Yes”时,坐标的范围如上,是生成数据时定义的范围,如下:


 值“Yes”时,当读取模型文件,读模块的Move to World Coordinate System”参数上设置为“No”时,xy的坐标范围会在[-0.5, 0.5]内,其他坐标按找个比例缩放。


4FME中读写模板支持坐标参数的主要三维格式

FME中含有“Move to World Coordinate System”和“Move to Local Coordinate System”的参数的三维格式,常用的有以下几种:

Google Earth KML 

Google SketchUp

Wavefront OBJ

Collaborative Design Activity (COLLADA)

Virtual Reality Modelling Language (X3D VRML) and Extensible 3D Graphics (X3D)

Google Earth KML 

Google SketchUp

Wavefront OBJ

Collaborative Design Activity (COLLADA)

Virtual Reality Modelling Language (X3D VRML) and Extensible 3D Graphics (X3D) 





猜你喜欢

转载自blog.csdn.net/fmechina/article/details/80925065
今日推荐