西班牙
斯潘4
条件属性映射简介
条件映射使用SchemaMapper的“筛选功能”操作。它是一种定义简单条件子句的方法,用于根据特定条件执行属性映射。
在本教程中,我们将操作一个包含温哥华市主要供水数据的单层。这一层可分为被遗弃的
和活跃的
基于属性的管道,我们将使用此值和条件子句以两种方式重新映射层的架构:1)使用属性值作为筛选器,2)使用FME功能类型作为筛选器。
源数据都在一个层上,如下所示:
工作区模板:条件属性应用.fmwt
步骤1-水管模式包含名为对象
和生命周期状态
,这两者都将在我们的条件筛选中发挥作用。在数据检查器中打开数据集并查看生命周期状态
一些特征的属性。你会注意到它的价值被遗弃的
或价值活跃的
:
对于我们的教程,取决于生命周期状态
,和功能类型
属性将映射到被遗弃的
或活跃的
和对象
将重命名为废弃的
或活动ID
.
如果我们的条件属性映射查找表遵循属性映射文章如果左列包含我们开始使用的属性和值,右列指定我们想要的输出,则该表将如下所示:
1 SourceAttribute,DestinationAttribute 2 OBJECTID,放弃edid 3 OBJECTID,ActiveID
这个查找表的问题是对象
在SourceAttribute下两次定义为源(因为我们希望以两种不同的方式映射它)。这显然是有问题的;我们需要给出更明确的指示。为了纠正这一点,添加了一个子句,说明何时使用哪个定义。
1 FilterAttribute、FilterAttributeValue、SourceAttribute、DestinationAttribute2生命周期状态、已放弃、OBJECTID、已放弃ID 3生命周期状态、活动、OBJECTID、活动ID
这里的逻辑如下:
如果LifecycleStatus=已放弃,则OBJECTID➜已放弃id如果LifecycleStatus=活动,则OBJECTID➜活动id
步骤2-在我们的演示工作区中,打开SchemaMapper transformer的参数。提供了一个查找表,您可以随时查看“查找表读取器参数预览”面板以了解表结构。
步骤3-单击“创建操作参数”窗口。请注意,我们有两个操作—一个用于筛选功能,另一个用于映射属性。
Filter Features动作定义了LifecycleStatus属性=LifecycleStatus值
:
Map Attributes操作定义属性映射,其中源属性
变成目的地贡品
:
同样值得注意的是Source属性:Keep/Remove选项。选择“移除”的目的是整理数据并集中于重新映射的属性值而不是原始值。使用Keep选项将保留原始的对象
字段和值以及新的字段和值。
步骤4-接受参数并返回工作区。我们的单一水管层现在已经按照逻辑分成了两层生命周期状态
属性:我们有标记为废弃的
以及带有活动ID
.使用属性筛选器,我们现在可以将这两组要素映射到两个传出要素类型上,并编写AutoCAD文件。
以下是已完成工作区的图像:
由于Workbench不知道在StimaMAMPER中存在正确的映射,所以目标属性被标记为未连接(在我们的写入属性下拉中出现的红色三角形)。但是,当工作空间运行时,输出将是正确的,因为属性存在,它们不被暴露。
或者属性Exposertransformer可用于公开这些新属性并使writer属性可见地连接起来。
工作区模板:条件属性应用程序特性类型.fmwt
过滤不限于用户定义的属性,因为也可以按格式属性过滤。一个有用的Format属性示例如下功能类型
,其中包含要素类型名称。执行此任务的关键是在查找表中提供FME Format属性。在下面的示例中,工作区中存在两种特征类型:配水/控制阀
和水分配/wMain
.我们希望根据读取的要素类型重命名结果模式中的属性。
要创建此工作流,我们需要使用亚搏在线>功能类型
属性。工作区模板中提供了一个查找表,但您可能希望创建自己的查找表,如下所示:
1过滤器属性,过滤器属性值,源属性,目标属性2 fme_特征_类型,水_分布/wControlValve,OBJECTID,ValveID 3 fme_特征_类型,水_分布/wControlValve,直径,阀门参数4 fme_特征_类型,水_分布/wMain,OBJECTID,管道id 5 fme_特征_类型,水_分布/wMain,直径,管道直径
与条件属性映射一样,查找表中的每一行都定义一个模式映射规则。此查找表中的第一条规则声明:
如果特征类型名称=水分配/wControlValve,则OBJECTID变为ValveID
SchemaMapper transformer Create Actions对话框镜像了上面给出的示例表。例如,在“预设过滤器功能”操作窗口中,指示规则的属性过滤器部分的两列将亮显:
运行工作区并注意AttributeFilter分离了我们的两个特性类型,并且我们重新映射了对象
一路上的属性。
这是完成的工作区:
下载内容如下:
此处使用的数据源于温哥华的城市,不列颠哥伦比亚省。它包含根据开放的政府许可证-温哥华许可的信息。
额外资源
?2019安全亚搏在线软件公司|合法的