翻译文章地址:https://blog.safe.com/2009/11/fmeevangelist48/
这个简短的帖子是关于当FME无法识别您的坐标系时意味着什么 - 并突出了一个鲜为人知的变换:CoordinateSystemDescriptionConverter 这种情况与没有坐标系的数据集(在FME Viewer中显示为“未知”)不同。而是使用坐标系标记数据集,但FME不识别其描述。 这并不意味着FME不能重新投影数据,但您应该检查它的解释。下面的工作区将有助于此。 坐标系描述坐标系的描述通常不仅仅是一个名称,而且也是一个定义,与空间数据没有单一格式的方式相同 - 有几种描述坐标系的规范。 例如,一些最常见的规范是: - OGC WKT:开放地理空间联盟定义的一个众所周知的文本描述。
- ESRI WKT:ESRI定义的一个众所周知的文本描述。
- Oracle SRID:Oracle定义的空间参考ID
- EPSG:欧洲石油勘探组织定义的空间参考ID
转换坐标系描述再次,与空间数据格式一样,FME有自己的坐标系内部表示。这有助于在转换期间处理一个表示到另一个表示的映射。 通常我们会自动为您执行此映射。例如,如果将数据从ESRI Shape数据集加载到Oracle数据库,我们会自动将ESRI WKT转换为Oracle SRID(通过FME等效描述)。 但是,有时您可能希望手动执行此操作,而在执行此操作时,CoordinateSystemDescriptionConverter是要使用的转换器。
示例:场景 此示例 - 您也可以在fmepedia上找到 - 显示一个实例(还有其他实例),您可能需要手动转换坐标系描述:检查FME是否正确处理未知坐标系。 所以,这里我们有一个带有坐标系的ESRI数据集,FME无法识别。即有一个prj文件,但FME无法识别内容。 查看PRJ文件,我们可以看到定义是这样的: PROJCS [ “PCS_Lambert_Conformal_Conic”,GEOGCS [ “GCS_North_American_1983”,DATUM [ “D_North_American_1983”,SPHEROID [ “GRS_1980”,,PRIMEM [ “Greenwich”,,UNIT [ “Degree”,,PROJECTION[ “Lambert_Conformal_Conic”],PARAMETER [ “False_Easting”,,PARAMETER [ “False_Northing”,,PARAMETER [ “Central_Meridian”,,PARAMETER [ “Standard_Parallel_1”,,PARAMETER [ “Standard_Parallel_2”,,PARAMETER [ “Latitude_Of_Origin”,,UNIT [ “Meter”,为了找出FME认为坐标系代表什么,让我们在工作区中使用CoordinateSystemDescriptionConverter转换器。 示例:工作区
我从我们的一位开发人员处获得此工作区 ,它 将告诉我与此未知坐标系相当的FME是什么:
- 工作区只使用Creator转换器创建单个要素,并将PRJ文件中的ESRI定义添加为属性。
- 然后CoordinateSystemDescriptionConverter转换器将其从ESRI WKT转换为FME表示
上图: CoordinateSystemDescriptionConverter参数对话框
- 最后,我们将FME表示设置为新的坐标系,并将数据输出到Visualizer。
上图:此数据集的FME视图
因此,FME将其定义为_FME_0,这意味着它无法识别。但是单击[...]图标,您将获得坐标系的完整描述:
上图: FME对此坐标系的定义 这给您提供了一种检查FME是否正确解释源数据坐标系的方法。如果这个定义符合您认为正确的定义,那么您可以放心,即使坐标系未被正式识别,重新投影也会正常。 当然,通过将这个定义添加到FME中,您可以确保坐标系能够被识别。
将未知坐标系添加到FME如果我想将此坐标系添加到FME,以便自动识别,则需要先将FME定义复制到MyCoordSysDefs.fme文件中。
上图:将定义复制到文件中
现在我可以通过以下方式更改它: - 删除ESRI WKT(不是完全需要的)
- 在每行之后添加一个延续字符(除了最后一行)
- 将标头从CS_NAME更改为正确COORDINATE_SYSTEM_DEF行
- 删除所有不必要的冒号)字符
- 将坐标系重命名为更易识别的东西
我还可以在我认为FME错误解释源代码的地方进行任何其他更改。
上图:编辑后的定义 重新运行工作区,输出如下所示:
上图:好!FME现在可以识别我的坐标系
如果去掉定义的ESRI WKT部分,确实FME不需要知道如何转换数据。但是,如果我确实将它留在那里,那么在将来将数据写回Shape(使用此坐标系)时,该字符串将获得优先权。 关键点是: - 即使坐标系统无法识别,FME仍然可以正确地重新投影数据
- CoordinateSystemDescriptionConverter将数据集的描述转换为FME描述(反之亦然)
- 向FME添加新的坐标系就像将FME描述复制到MyCoordSysDefs.fme并进行一些编辑一样简单
本文转载来自CSDN作者:fmechina 版权归作者所有 |