span8
span4
突发输入移除进行一个非常有用的功能,但是许多FME相关混乱的来源。
基本上,它会检查,以确保您的数据层在工作区中定义。如果它们没有被定义,然后在这些层(意外输入)的数据被丢弃(删除)。
FME的一个重要部分是能够选择不去阅读某些源特性类型;这可以通过从工作区中删除它们来完成。例如,我不想从我的数据中读取学校图层,所以我删除了学校特征类型。
意外输入移除器是丢弃此类数据的函数。它根据工作台或映射文件中定义的结构(或模式)检查输入数据。如果数据没有匹配的特征类型,它将被丢弃。
意外输入移除器的结果被记录在log窗格中两个不同的地方…
这里的日志报告了测试了多少特性,通过和失败了多少特性:
在日志的底部,FME强调了一些功能确实失败的事实:
如果你不检查日志,有一个(可选的)对话框确认意外的输入移除操作:
简单,是吗?问题是,在许多情况下,这些源特性类型并不是故意丢失的。
最常见的原因不是它们被意外地删除了,而是它们在创建工作区时从未存在过。例如,您名下的数据已经更改,并且添加了新的特性类型。例如,在上面的截图中,学校被故意遗漏了,但是数据集最近发生了变化,添加了特征类型“building”。如果没有“建筑”特征类型,它就不会被阅读。
另一个常见的原因是,对于像Esri shapefile或MapInfo这样的基于文件夹的数据集,您选择的源数据集的名称或结构与您最初为其编写工作区的数据集不同。
为了说明这一点,一些数据格式不能在一个文件中存储多个特性类型。Esri shapefile就是一个例子,MapInfo MIF/MID也是一个例子。在这样的格式下,它不可能在一个文件内区分,例如,公路和铁路,因此为每个单独的文件被创建;例如道路。轴马力和railways.shp
在这种情况下,FME获取文件的名称作为它正在处理的特性类型的名称。
这里一个用户有一组MapInfo mif/mid文件要处理:
当使用parcel_P29创建一个工作区时,特性类型的名称为parcel_P29:
这使得在同一个工作空间中处理多个shapefile变得很困难,因为您为单个形状文件(roads)创建的任何工作空间。shp,特征类型=道路)将不兼容任何不同命名的shapefile(铁路)。轴马力,功能类型=铁路)。
这也意味着,如果文件的名称不同,那么持有相同类型的数据的文件将不会被处理;例如,使用roads-south创建工作空间。shp和它将不兼容的道路向北。尽管两者的特性具有相同的模式。
例如,在上述的工作区如果源更改为使用pacel_P27,那么它不再匹配在工作空间中的源要素类型并将被意外输入移除被丢弃。
当然,这个问题在批处理模式下最常见——第一个数据集可以工作,因为它是用来创建工作空间的数据集,但所有后续数据集在UIR中失败并被丢弃。
Q)为什么FME有意外的输入卸妆 - 为什么不直接读取源数据集中的所有数据?
一)因为不是每个用户都希望从数据集中读取所有数据。通过以这种方式使用特性类型,FME允许用户有选择地选择他希望处理的特性。
Q)有没有一种方法可以绕过意外的输入移除器并读取所有的特性类型?
一)当然;有两种方法。要选择的格式取决于格式类型。
1)如果缺少特性类型,逻辑解决方案是将它们添加到工作区中。使用源数据>从菜单栏导入特性类型定义。系统会提示您选择一个源数据集——当您这样做时,FME会列出该数据集中的所有特性类型,并将它们添加到工作空间中,与最初创建工作空间时的方式非常相似。您需要确保选择了具有不同特性类型的所有数据集。
这种解决方案更适合基于文件的数据集,它能够分配特性类型;例如DGN, DXF, geodatabase, Smallworld。
注意,功能类型定义可以从任何数据集导入——不一定是你想读取的数据集(例如,你可以将DGN功能类型的定义存储在Oracle数据库模式中,或者通过从现有源导入它们来添加目标定义)。
2)如果丢失的功能类型被丢弃,另一个合理的解决方案是告诉FME保留它们。打开单个源特性类型的属性对话框。您将看到一个“合并功能类型”选项-单击它来打开该选项。然后需要为“合并筛选器”输入一个值。合并筛选器是一个标准表达式,它定义允许通过哪些特性类型。将其设置为“*”(星号),所有特性类型都将被允许通过。将其设置为“st*”,只有以st开头的特性类型才允许通过。
这种解决方案更适合基于文件夹的数据集,这些数据集没有能力分配特征类型;例如shapefile, MID/MIF, CSV。
第二种方法的优点是您不需要担心新的数据集是否包含您以前没有遇到过的特性类型,它们将被传递。第一种方法总是需要预先定义特性类型。然而,第二种方法的缺点是,由于所有特性都通过相同的输入通道,因此您失去了对第一种方法所允许的对它们的单独控制。
问:这与“要读取的特性类型”参数有什么不同?
一)要读取的特性类型参数允许您定义应该从源数据读取哪些特性类型(层)。但是,层的列表是在工作区中定义的,而不是在您正在读取的数据集中定义的。
换句话说,要读取的特性类型是打开/关闭层的好方法,但是它们必须已经在工作区中定义好了。它的主要优点是不必禁用/删除不需要的特性类型。
问)为什么意外输入移除者拒绝读取我的微站DGN数据?
一)意外输入移除器将过滤掉与输入特性类型属性(如名称或级别)不匹配的任何特性。
在MicroStation的文件这个有效过滤功能在不同的级别到预计。
注意——这里的主要问题是当您为一个文件创建工作区并试图通过它运行另一个文件时。如果第二个文件有不同的级别,它的数据将被过滤掉!
复杂链是另一种需要注意的情况——在V7文件中,默认级别是1,在V8文件中,默认级别是‘default’或64。
这意味着相同的工作空间不一定适用于两种版本的数据!如果您缺少一些特性,请在工作区中检查它们的级别名称和编号。
©2020安全亚搏在线软件公司法律