span8
span4
我已被用于映射的几何误差工作空间。我的数据存储在GML格式。
在我的工作空间我有一个FeatureReader,读取GML数据。在我的源数据问题都可以在其他的事情:
我的gml FeatureReader的问题是,这些错误是由FME自动修复。删除连续的点,使用点元素的最后一个坐标,并通过添加第一个顶点作为最后一个坐标自动关闭多边形。当我想毫无麻烦地处理数据时,这很方便,但是在这种情况下,我想知道这些问题是什么,这样我就可以纠正源数据或报告错误。
有什么方法可以显示FME阅读器改正的错误或阻止阅读器这样做吗?
好的,我一直在研究这个问题,并从我们的开发人员那里得到反馈。
它是按设计工作的,因为它被设计成自动处理这些问题——正确或错误。然而,有一些“设置”我们可以微调,将有助于一点。
因此,要解释......我的理解是,当FME读GML数据它对于GML规范,并读入翻译。在我的工作区中它表示与此日志消息:
使用XSD语义配置文件'file:///C:/Program Files/FME2019/xml/gml_v3.2/gml_config.xml'。
这是普通的GML。如果我转而阅读CityGML,它将使用一个不同的文件。无论如何,该规范告诉FME如何处理每种类型的几何图形。有一些应用的设置,其中一个被调用keep-duplicate-coordinates!
在CityGML规范中,该选项在默认情况下是打开的。在常规GML规范中,它是关闭的。因此,我可以在文本编辑器中打开该文件(gml_config.xml)并进行一些编辑。
首先我找到了这个部分(查找gml:pos):
<映射匹配= “GML:POS”> <签名名称= “xfmap-POS-集电极”/> <引用> <宏:使用名称= “几何引用”/> 引用> <几何> <宏:使用名称=“几何助洗剂坐标系统数据” /> <数据名称=“轴分离器”> <字面EXPR =“空白” /> 数据> <数据名称=“坐标的隔膜”> <字面EXPR = “|”/> 数据>
它开始在我的版本线1804。然后,添加三行打开选项,以防止重复的坐标...
<映射匹配= " gml: pos " > <签名name = " xfmap-pos-collector " / > <引用> <宏:使用name = " geometry-references " / > < /引用> <几何学> <宏:使用name = " geometry-builder-coordinate-system-data " / > <数据name = " axis-separator " > <文字expr = "空格" / > < /数据> <数据name = " keep-duplicate-coordinates " > <文字expr = " true " / > < /数据> <数据name = " coord-separator " > <文字expr = " | " / > < /数据>
现在我在大约40行之后找到了另一个部分(查找gml:posList)……
<映射匹配= “GML:posList gmlcov:位置”> <签名名称= “xfmap-posList集电极”/> <引用> <宏:使用名称= “几何引用”/> 引用> <几何> <宏:使用名称=“几何助洗剂坐标系统数据” /> <数据名称=“轴分离器”> <字面EXPR =“空白” /> 数据> <数据名称=“坐标的隔膜”> <字面EXPR = “空白”/> 数据>
...并添加相同的设置有:
<映射匹配= " gml: posList gmlcov:立场”> <签名name = " xfmap-posList-collector " / > <引用> <宏:使用name = " geometry-references " / > < /引用> <几何学> <宏:使用name = " geometry-builder-coordinate-system-data " / > <数据name = " axis-separator " > <文字expr = "空格" / > < /数据> <数据name = " keep-duplicate-coordinates " > <文字expr = " true " / > < /数据> <数据name = " coord-separator " > <文字expr = "空格" / > < /数据>
现在,当我再次运行工作区,重复的坐标都保存在数据。
该设置 -keep-duplicate-coordinates-记录在此:http://docs.亚搏在线safe.com/fme/2021.0/html/FME_Desktop_Documentation/FME_ReadersWriters/xml/xml_line.htm
你会注意到还有两个类似的设置:降级不完全几何和allow-incomplete-geometry。它们在默认情况下都是假的,所以通过添加/应用这些设置,您可以设置FME来停止自动处理其他违规操作。
还有其他几何形状相似的设置 - 例如多边形。
现在,我不知道这是否会占所有你的问题。我没有看到多个坐标的特定设置在一个点特征,和不完整的几何设置多边形仍将接近而没有匹配的多边形结束坐标(它只会改变传递一个多边形有两个或更少的坐标)。
因此,这不是在这里的整体解决方案,以及将每一个这些设置不会涉及这些安装文件的手工编辑,而不是仅仅在FME本身的参数转弯。有一些努力和参与测试。
另一种选择是:
显然,我提交的请求是否会得到执行,或者不一定能保证。所以这更是一个长期的战略。
我希望这是一些使用的。让我知道如果你需要与上面的设置的进一步帮助,或者替代性解决方案的努力之一。我还会建议您联系我的同事院长通过支持团队(亚搏在线safe.com/support)如果你真的卡住了。他是我们的XML专家,他可能有我没有的其他见解。
问候
标记你有样本数据集吗?我有点惊讶它发生在阅读上。通常(我认为)我们只在写入数据时进行这样的修复,并且只有在输出无效的情况下才会这样做。我个人认为我们不应该对输入的数据进行更改。
如果数据是保密的,那么请提交给我们的支持团队(亚搏在线safe.com/support),他们可以与我们的开发商查询此。
我不能上传文件GML所以我保存为文本:
文件中有3个不同的数据特征:
1.坐标过多的点特征。它通过丢弃第一个坐标来纠正。
2.最后一个坐标与第一个坐标不匹配的多边形。它由fme自动关闭(添加第一个坐标作为最后一个坐标)。
3.包含重复的连续坐标的多边形。它是通过删除重复来纠正的。
也许这将工作:它读成XML来代替,然后使用GeometryReplacer构建几何
谢谢你的建议。
这可以用于单个的gm -file。但是我有很多gml文件,它们都可以有不同的元素树来存储几何图形。映射所有不同的gmp文件的结构将花费大量的工作。
OS (GB) MasterMap阅读器会更新以反映模式v9中的更改吗?3答案
OGR无效元素读GML0回答
只读从GML文件中的某些功能?1个回答
保持整个工作台4个回答
删除并重新添加重命名的阅读器1个回答
©2020安全亚搏在线软件公司|法律