斯潘8
斯潘4
下面介绍一些可以使用模式映射器变压器。我们将结合属性映射研究高级过滤,属性设置,和特征类型映射。有了好的模式映射,就有了很大的责任,因此,我们还将提供一些关于常见错误和调试复杂模式映射的提示。
筛选操作设置了一种类型的“if语句”,通过该类型,FME可以将查找表中的映射与应用映射的功能相匹配。在这个例子中,SchemaMapper将使用多个过滤器属性来定义子句。工作区模板中包含在查阅表格中定义的六个项目:
材料类型属性
:定义管道材质的属性的名称。材料类型值
:管道材料的电位值。直径属性
:定义管道直径的属性的名称。直径值
:管道直径的电位值。状态属性
:定义管道状态的属性的名称。状态值
:管道状态的潜在值。在SchemaMapper中的“查阅表格参数”窗口中,预览窗格显示每个条件子句,其中填充了要用作筛选器的属性值:
第1步-为了利用这些,设置多个筛选器操作,在SchemaMapper中。每个filter features操作将处理一对属性和条件值。应按以下方式设置过滤器功能操作:
一起,这些操作创建一个条件子句,其中说明:
如果materialtypeattribute=materialtypevalue和diameterattribute=diametervalue和statusattribute=statusvalue
例如:
如果材料=钢,直径=300,生命周期状态=激活
使用这组逻辑条件,SchemaMapper现在可以基于多个过滤属性采取转换操作。
除了操作模式类型和属性之外,SchemaMapper转换器可用于设置属性值。使用SchemaMapper中的“new attribute”操作,可以将属性及其值添加到数据集中,也可以修改架构中的现有属性。
例如,设置功能符号的值:
AutoCADI颜色
:要在其中定义要素颜色的属性的名称。颜色
:相当于所需颜色的数值AutoCAD线条
:要在其中定义要素线宽的属性的名称重量
:相当于所需线宽的数值。为了简化映射表,每个属性都作为单独的行添加。查找表中将有更多行,但是编辑会更容易。您可以在csv预览窗口中看到:
每种组合类型
,直径
和状态
有两行-每个符号属性一行。这是因为FME在发现第一个匹配时不会停止,但继续执行并执行它找到的所有映射。这种技术使得映射字段对话框变得简单,定义一个映射将设置多个属性。
第2步-在SchemaMapper参数中添加“新属性”操作。
与“过滤器功能”操作一起使用时,对话框将如下所示:
最后,当工作区运行时配水/W主
,这将是以下输出:
输出数据集中的功能已根据其管道属性(大小,状态,材料)。所有这些都是使用三个过滤器操作和SchemaMapper中的一个新属性操作完成的。
功能类型映射也可以包括在查找表中。使用格式属性功能类型
,此示例显示如何将要素类型映射添加为新行,与上面创建符号学的方式类似。
例如,已将功能类型映射添加到行:
材料,ST,直径,450,生命周期状态,活跃,FME特征,小型钢管
在SchemaMapper预览中如下所示:
然后,可以在工作区中使用扇出或类似的方法来处理功能类型。
以下主题讨论如何解决使用此变压器时的问题。它包含帮助解决可能出现的任何问题的技巧和提示。
查阅表格中的行顺序很重要。FME将继续应用映射,因为它在查找表中自上而下工作。例如,考虑到查阅表格中的这两行:
材质,钢,直径,450,生命周期状态,活动,autocad_颜色,1(红色)材质,钢,直径,450,生命周期状态,活动,autocad_颜色,2(黄色)
该功能将首先被指定为红色,然后它将被黄色覆盖。
这有助于了解:
1)可能有一组重复的子句导致意外的映射。
2)订单可用于设置“默认值”。例如,将此行放在查阅表格的顶部:
材质,钢,,,,AutoCAD颜色,1
“钢”型的所有特征将与此匹配,并被赋予红色(无论大小或状态)。然后在查找表中,具有匹配的功能直径
和生命状态
将设置为不同的值。因此,输出中仍为红色的所有特征是那些与全滤波器不匹配的特征。这些红色特性可以用作错误检查映射逻辑的方法。换一种说法,在查找表中,应首先放置一些不太具体的筛选器,然后是更具体的过滤器。
使用这种技术的关键是,只有当catch all位于其他映射之上时,它才会工作。如果它在下面,那么它将重置已经映射的任何内容。
3)可以设置辅助映射以简化工作区。
例如,使用此查阅表格:
材料,钢,新材料,所有管道材料,球墨铸铁,新材料,所有管道材料,PVC,新型,所有管道材料,所有管道,AutoCAD颜色,5
在这个例子中,某些功能映射到类型列管式
然后类型列管式
映射到蓝色(5在AutoCAD颜色索引中)。该表将所有功能映射到新的功能类型,然后将该功能类型映射到新的颜色。只有在特征类型映射出现在颜色映射之前,这才有效。
SchemaMapper Transformer添加属性_架构映射器行ID
到每个映射的功能。这是在映射期间引用的架构表中的行号列表。
在某些情况下,您可能需要减小模式映射表的大小,以便只包含特定功能类型应该引用的行,然后从中恢复。模式表中的行顺序非常重要-请参阅上面的内容。更一般的过滤器应该放在查找表的第一个位置,后面跟着更具体的过滤器。
您不必只使用一个模式映射器。您可以有一个查找表,仅用于域值映射,另一个用于功能类型和属性映射,并在您的工作区中包含两个SchemaMapper转换器。
您知道可以将FME函数调用嵌入到SchemaMapper查找表的值字段中吗?当读取表时,FME将运行它们。例如,值可以设置为:
@大写(@value(a))
更现代的函数需要包装在@evaluate函数中,像这样:
@EvaluateExpression(未使用1,日期时间 UnEdED2)
这不太可能是一种常见的用法,但这是可以做到的。
下载包含以下内容:
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|合法的