斯潘8
斯潘4
条件属性映射简介
条件映射利用模式映射器's“filter features”操作。它是一种根据特定条件定义简单条件子句以执行属性映射的方法。
在本教程中,我们将处理一个包含温哥华市自来水干管数据的单层。该层可分为被遗弃的
和主动的
基于属性的管道,我们将利用这个价值,连同条件条款,以两种方式重新映射层的模式:1)使用属性值作为过滤器,2)使用FME特征类型作为过滤器。
源数据都在一个层上,如下所示:
工作区模板:条件属性映射.fmwt
第1步-水管模式包含名为客体
和生命状态
,这两个都将在我们的条件过滤器中发挥作用。在数据检查器中打开数据集并查看生命状态
一些特征的属性。你会注意到它的价值被遗弃的
或价值主动的
:
对于我们的教程,取决于生命状态
,这个功能类型
属性将映射到被遗弃的
或主动的
和客体
将重命名为遗弃的
或活动标识
.
如果我们的条件属性映射查找表遵循属性映射项目左列包含了我们要开始使用的属性和值,右边的列指示了我们想要的输出,桌子看起来像这样:
1 sourceAttribute,destinationAttribute2 objectid,abandonedid 3 objectid,activeid
这个查阅表格的问题是客体
在sourceAttribute下两次定义为源(因为我们希望以两种不同的方式映射它)。这显然是有问题的;我们需要给出更明确的指示。要纠正这个问题,增加了一个子句,说明何时使用哪个定义。
1 filterattribute、filterattributeValue、sourceAttribute、destinationattribute2 lifecyclestatus、abended、objectid、abandonedid 3 lifecyclestatus、active、objectid、activeid
这里的逻辑工作如下:
如果lifecyclestatus=放弃,则objectid abandoned if lifecyclestatus=活动,然后objectid活动id
第2步-在我们的演示工作区中,打开SchemaMapper Transformer的参数。为您提供了一个查阅表格-请随意检查查阅表格阅读器参数预览面板以了解表格结构。
第3步-单击到“创建操作参数”窗口。注意,我们有两个操作——一个用于过滤特性,一个用于映射属性。
filter features操作定义子句,其中lifecycleStatus属性=lifecycleStatus值
:
“映射属性”操作定义属性映射,其中源属性
变成目标属性
:
同样值得注意的是source属性:keep/remove选项。选择移除的目的是整理数据并聚焦于重新映射的属性值,而不是原始值。使用保留选项将保留原始客体
字段和值以及新的字段和值。
第4步-接受参数并返回工作区。我们的单一供水干管层现在已根据生命状态
属性:我们有用遗弃的
以及带有活动标识
.使用一个属性过滤器,现在,我们可以将这两组功能映射到两个输出功能类型上,并编写我们的AutoCAD文件。
以下是已完成工作区的图像:
因为Workbench不知道SchemaMapper中存在正确的映射,目标属性被标记为“未连接”(在编写器属性下拉列表中显示的红色三角形)。然而,当工作区运行时,输出将正确,因为属性存在,他们只是不暴露。
或者,这个属性ExposerTransformer可用于公开这些新属性并使编写器属性可见地连接起来。
工作区模板:ConditionAlattributeMappingFeatureTypes.fmwt条件属性映射
过滤不限于用户定义的属性,因为也可以按格式属性进行过滤。一个有用的格式属性示例是功能类型
,其中包含功能类型名称。执行此任务的关键是在查找表中提供FME格式属性。在下面的示例中,工作区中存在两种功能类型:配水/控制阀
和配水/W主
.我们希望根据正在读取的功能类型重命名结果架构中的属性。
要创建此工作流,我们需要使用亚搏在线>功能类型
属性。工作区模板中提供了一个查找表,但您可能希望创建自己的,如下所示:
1 filterattribute,filterattribute,source attribute,destinationattribute2 fme_feature_type,water_distribution/wcontrolvalve,objectid,valveid 3 fme_feature_type,water_distribution/wcontrolvalve,diameter,valvediameter 4 fme_feature_type,water_distribution/wmain,objectid,pipeid 5 fme_feature_type,water_distribution/wmain,diameter,pipediameter
与条件属性映射一样,查找表中的每一行都定义了一个模式映射规则。此查阅表格中的第一个规则说明:
如果功能类型名称=水分配/wcontrolvalve,则objectid变为valveid
SchemaMapper Transformer Create Actions对话框反映了上面给出的示例表。例如,在“预设过滤器功能”操作窗口中,指示规则的属性筛选部分的两列将突出显示:
运行工作区并注意到attributeFilter将我们的两个功能类型分隔开,我们已经重新映射了客体
一路上的属性。
这是已完成的工作区:
下载包含以下内容:
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
其他资源
?2019安全亚搏在线软件公司|合法的