AttributeManager
典型的使用
- 创建一个新属性,并以各种方式设置默认值或新值
- 通过重命名和删除现有属性,并为它们设置或清除值来修改它们
- 重新订购属性
- 根据当前特性之前或之后的特性设置属性值
- 通过将多个属性操作转换器合并到一个地方来简化工作空间
它是如何工作的?
输入特性的属性显示在一个行和列的矩阵中,您可以在其中执行多个任务。通过attributemmanager传递的所有特性都根据参数中的选择进行修改。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
在这个例子中,输入特性的几个属性被修改了:
- GlobalID被重命名,更改属性名的大小写。几个地址属性也被重命名。
- 创建了一个新属性“FULLNAME”,将其他两个属性的值连接起来
- 删除了几个不需要的属性
- X和Y属性是通过FME函数提取几何来创建和赋值的
- “UPDATEDBY”被创建并设置为固定值“Smith”。
- 所有其他属性都保持不变
更改的属性反映在转换器中。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
在高级:属性值处理下访问相邻的特征属性。打开后,您可以指定在计算新值时引用当前特性前面和后面的一些特性。
假设我们有以下数据集:
ID |
纬度 |
经度 |
---|---|---|
0 |
49.1640 |
-123.061 |
1 |
49.1643 |
-123.063 |
2 |
49.1642 |
-123.062 |
3. |
49.1642 |
-123.064 |
如果是先验特征数和后续功能的数量参数均设置为2,然后读取第一个功能时,AttributeManager可以访问以下功能:
功能参考 |
ID |
纬度 |
经度 |
---|---|---|---|
功能[2] |
<缺失> |
<缺失> |
<缺失> |
特征[-1] |
<缺失> |
<缺失> |
<缺失> |
电流特性 |
0 |
49.1640 |
-123.061 |
特征[+1] |
1 |
49.1643 |
-123.063 |
功能(+ 2) |
2 |
49.1642 |
-123.062 |
注意,一些属性丢失了,因为在第一个特性之前不存在任何特性。
读取第二个功能后,可用于AttributeManager可用的先前和后续功能的窗口以产生以下内容:
功能参考 |
ID |
纬度 |
经度 |
---|---|---|---|
功能[2] |
<缺失> |
<缺失> |
<缺失> |
特征[-1] |
0 |
49.1640 |
-123.061 |
电流特性 |
1 |
49.1643 |
-123.063 |
特征[+1] |
2 |
49.1642 |
-123.062 |
功能(+ 2) |
3. |
49.1642 |
-123.064 |
该语句将计算上述两个特征的平均纬度:
可以在算术编辑器和文本编辑器中创建引用引用相邻功能的计算。这些编辑器将首先列出当前处理的功能的属性,然后是先前的功能,然后是后续功能。
配置
输入端口
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
这个转换器接受任何特性。
输出端口
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
具有已创建和修改属性的特性。
参数
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
当第一次连接并打开AttributeManager变压器时,此矩阵将自动填充包含当前存在的传入功能的属性。它还将动态调整以反映工作空间的上游属性变化。
默认情况下,动作设置为“不做任何事”,并通过功能不变。当您对单个项进行更改时,FME将根据您的输入解释适当的Action。操作可以手动重写,但通常不需要调整它。
输入属性 | 当转换器第一次打开时,将使用发送到输入端口的公开属性的完整列表填充这一列。此字段不可编辑,但将更新以反映在工作区中所做的更改。当创建新属性时,该字段将保持为空。 |
输出属性 | 默认情况下,输出属性匹配输入属性。你可以:
|
属性值 | 默认情况下,属性值为空,留下功能不变。您可以通过单击相应的行和:来设置新值:
看到定义值下面是使用这些选项的详细信息。 |
行动 | 默认情况下,Action被设置为“Do Nothing”,保留功能不变。当您对参数进行更改时,Action将自动调整以反映适当的结果,在某些情况下可以手动重写该结果。可采取的行动有: 设置值:将属性设置为“属性值”列中指定的值。覆盖现有的属性值。 什么都不做:留下属性未置换。 重命名:将输入属性重命名为“输出属性”列中指定的名称。 去掉:完全删除属性,并将其从输出模式中删除。 设置默认值:将属性的指定值赋给缺少属性的特性。不覆盖当前值,包括null。 注意:
|
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
展开Advanced部分提供了对可用于定义值的相邻特性的属性的访问。虽然这个部分可能看起来很复杂,但大多数用户很少需要这个功能。
勾选“启用相邻特性属性”以使用该特性。
您现在可以根据当前功能的特征属性或在当前特征中引用它们如下所示,设置属性值(在属性操作矩阵中):
- 先验特征的属性被引用为feature[-1]。AttrName,功能[2]。AttrName等等。
- 后续功能的属性被称为特征[+1] .attrname,功能[+2] .attrname等。
- 当前处理特性的属性不需要前缀直接访问,比如AttrName。
当检索前一个特性的值时,AttributeManager对该特性所做的任何更改都将生效。
先验特征数
此参数指定AttributeManager可以引用的最大优先特性数量。如果启用了多个功能属性支持,则这必须是0到100的值。由于必须为处理的每个要素读取其他功能,仅定义要检索所需的最大功能数将提高性能。
后续功能的数量
此参数指定可以由AttributManager引用的后续功能的最大数量。如果启用了多个功能属性支持,则这必须是0到100的值。由于必须为处理的每个要素读取其他功能,仅定义要检索所需的最大功能数将提高性能。
替换丢失,无效,空
当引用的属性不存在、具有空值或具有空字符串值时,此参数指定所需的行为。
这些属性可以被认为是无法解决的属性。例如,由于在第一个输入特性之前没有特性,AttributeManager将无法解析特性[-1]的值。第一个输入特性的AttrName。如果此参数设置为没有替代, attributemmanager将用空字符串解析所有未解析的属性。
另一个例子,如果feature[+2]的值是空字符串和默认值,则空字符串将被视为未解析的属性,并将被解析为“默认值”下指定的值。
如果此参数设置为最近的相邻特征,如果最近的特征存在,则将未解析的属性解析为最近特征的对应属性。在寻找最接近的特性时,将跳过具有无法解析属性的特性。如果前一个或后一个特性具有未解析的属性,则可能使用当前特性来解析缺失的属性。
例如,如果feature的值为[-2]。AttrName被解析,然后解析feature[-2]的值。AttrName AttributeManager将查看与特性[-2]最接近的特性,在特性[-2]之前和之后交替使用。它将首先查看特性[-3]。AttrName,然后是feature[-1]。如果需要AttrName,然后特性[-4]。如果需要,请使用AttrName,直到所有先前和随后指定的特性都已用尽为止。
如果该属性在指定的先前和后续功能中仍未解决,则它将被解析为默认值参数中指定的值。
默认值
此参数指定在这些情况下用于解析未解析属性的值:
- “Missing”、“Null”和“Empty by:”设置为默认值
- “Missing”、“Null”和“Empty by:”设置为最近的相邻特征并且在指定的先前和后续特性的数量内没有找到一个值。
对话框选项
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
行重新排序 |
单击Attribute Actions矩阵中的一行后启用。选择包括:
|
过滤器 |
开始输入一个字符串,矩阵将只显示与这些字符匹配的行。搜索所有列。这只会影响转换器内属性的显示—不会改变输出的属性。 |
进口 |
导入按钮将使用从数据集读取的一组输出属性填充矩阵。如果变换器已包含架构,则将附加到现有列表中的这些属性。 |
刷新 |
刷新会将矩阵内容重置为其默认状态,丢弃所做的更改并将所有操作重置为“不做”。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来分配转换器参数。更高级的功能,比如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击除适用的参数旁边。有关更多信息,请参阅变压器参数菜单选项.
定义值
有几种方法可以定义在Transformer中使用的值。最简单的方法是输入一个值或字符串,它可以包含各种类型的函数,如属性引用、数学和字符串函数,以及工作空间参数。有许多工具和快捷方式可以帮助构造值,这些工具和快捷方式通常可以从值字段旁边的下拉上下文菜单中获得。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Transformers/../Skins/Default/Stylesheets/Images/transparent.gif)
使用文本编辑器
文本编辑器提供了一种方便的方法来从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式),其中的结果直接在参数中使用。
使用算术编辑器
算术编辑器提供了一种方便的方法来构建来自各种数据源的数学表达式,例如属性,参数和特征函数,其中结果直接在参数内使用。
有条件的值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包括许多函数,字符,参数等 - 是否直接在参数中输入或使用其中一个编辑器构造。
参考
处理行为 |
基于特征 |
功能持有 |
不 |
依赖关系 | 没有一个 |
FME授权级别 | FME基本版及以上 |
别名 | |
历史 | 发布:FME 2016.0 |
类别 |
FME知识中心
FME知识中心是演示、操作指南、文章、常见问题解答等的地方。获取问题的答案,从其他用户那里学习,对新功能提出建议、投票和评论。
搜索所有结果关于attributemanager在FME知识中心。