免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1640|回复: 4
收起左侧

处理未知坐标系

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-5-26 14:49 | 显示全部楼层 |阅读模式

翻译文章地址:https://blog.safe.com/2009/11/fmeevangelist48/


这个简短的帖子是关于当FME无法识别您的坐标系时意味着什么 - 并突出了一个鲜为人知的变换:CoordinateSystemDescriptionConverter

这种情况与没有坐标系的数据集(在FME Viewer中显示为“未知”)不同。而是使用坐标系标记数据集,但FME不识别其描述。

这并不意味着FME不能重新投影数据,但您应该检查它的解释。下面的工作区将有助于此。

坐标系描述

坐标系的描述通常不仅仅是一个名称,而且也是一个定义,与空间数据没有单一格式的方式相同 - 有几种描述坐标系的规范。

例如,一些最常见的规范是:

  • OGC WKT:开放地理空间联盟定义的一个众所周知的文本描述。
  • ESRI WKTESRI定义的一个众所周知的文本描述。
  • Oracle SRIDOracle定义的空间参考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 [ “GreenwichUNIT [ “DegreePROJECTION[ “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      版权归作者所有

11

主题

2万

铜板

9

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2746

童话节勋章

发表于 2021-5-26 19:50 | 显示全部楼层
66666666666666666
回复 支持 反对

使用道具 举报

10

主题

2万

铜板

34

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4394

精华勋章灌水勋章活跃勋章贡献勋章

发表于 2021-5-27 08:31 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2

主题

4万

铜板

7

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6445
发表于 2024-3-4 19:38 | 显示全部楼层
谢谢分享
回复

使用道具 举报

1

主题

1万

铜板

17

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1551
发表于 2024-3-14 14:42 | 显示全部楼层
666666666666666666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表