FME 2016 先睹为快: 属性管理
原文发布时间:2015-11-19
翻译文章地址:https://blog.safe.com/2015/11/fmeevangelist141/
翻译:切切
本杰明.富兰克林说过: “生命里没有什么是必然的, 除了死亡和缴税”.
当然,1789年的时候还没有FME,否则他可能会说:“生命里没有什么是必然的,除了死亡、缴税和必须管理的属性”
是的,这也许不是最让人振奋的话题,但是属性管理却是FME总会遇到的事情——添加属性、删除属性、改变它们的名称、编辑它们的值,剪切、复制、粘贴、连接等等,还有更多其他处理。
所以在FME2016中有一个可以帮我们完成这全部的转换器,它是FME终极全能选手—AttributeManager!
我们可以做什么?
这里有新转换器可以胜任的一系列任务,特别是:
- 创建属性
- 重命名属性
- 复制属性
- 删除属性
- 设置属性值
- 重排序属性
因此你可以说它几乎取代了:
- AttributeCreator
- AttributeRenamer
- AttributeCopier
- AttributeRemover (和AttributeKeeper)
- ListRenamer
…如果你认为AttributeCreator本身已经取代了很多转换器了, 那么你也可以用AttributeManager 代替:
· StringConcatenator
· ExpressionEvaluator
· AreaCalculator, AttributeRounder, 等等,等等 (有太多事情它都可以做!)
真的,你需要知道的就这些。我这儿没有太多技术性的东西可以添加。重要的是你知道有这么一个转换器。不过我可以展示一部分参数对话框…
AttributeManager参数对话框
这里这个AttributeManager只是简单地连接到一个源数据集 (我们最喜欢的老数据, MapInfo TAB parks数据):
首先注意到所有的输入属性是自动罗列出来了的。当我第一眼看见这一幕时简直喜出望外。因为这表示我不用再另外再添加了。这太棒了!
然后注意到最右列——Action的那列,这里可以定义你对属性做哪种处理
但是,我也可以只作编辑,而Action列将与我所作的改变的自动匹配.例如,如果我将NeighborhoodName重命名为Neighborhood(在Output Attribute那一列输入不同的名称),那么Action行为将为下图所示:
又例如,如果我在属性值的那一列输入了一个值,Action列就会变成“Set Value(设置值)”。这个值——就像AttributeCreator一样——可以是一个固定值,也可以是其他属性的值(相当于复制属性),也可以用文本和数值编辑器,或设为null值,还可以设置为一个用户参数,或使用条件值:
要创建一个新的属性我需要滑动到列表的底部——当然我可以再用上面的任意一种方法去设置一个值。我也可以通过简单的删除属性去移除某个属性。很好的接触,不是从对话框中消失,它依然存在,只是没有罗列在Output Attribute(输出属性)里。
最后,对话框里还有向上/向下箭头,能够对属性重新排序。所以,经过简单的编辑以后,我原来的属性列表现在看起来可能像这样:
注意转换器上的属性列表也更新为与我在参数对话框中的定义保持一致
Oh!还有两个重要的内容差点忘了。第一个,列表。这个转换器没有被定义为单独去暴露和管理列表元素,但是你可以对列表对象本身进行操作。比如,我可以将myList{}.myAttribute重命名为yourList{}.yourAttribute
第二个,这个转换器有一个可以提取邻近要素属性值的参数(就想在AttributeCreator中一样),并插入了缺失, null,或为空属性的替换值功能。
总结
以上就是我所介绍的。可能这是我所写的最短的博文之一,但转换器并不是简单就能理解透的,不过你也不用做现代的本杰明。富兰克林来使用它。我预感在短时间内它将出现在我们的常用转换器榜单前几名的位置,甚至可能超越Tester!