我们付出一些成本,时间的或者其他,最终总能收获一些什么。
学习的视频资料主要来源于b站基础培训营03
首先是了解一下常用的转换器
属性处理转换器
任务 | 转换器 |
创建属性 | AttributeCreator,AttributeManager |
设置属性 | AttributeCopier,AttributeCreator, AttributeManager,AttributeRenamer |
删除属性 | AttributeKeeper,AttributeManager, AttributeRemover,BulkAttributeRemover |
属性重命名 | AttributeManager,AttributeRenamer,BulkAttributeRenamer |
属性复制 | AttributeCopier,AttributeCreator,AttributeManager |
属性分离 | AttributeSplitter |
属性排序 | AttributeManager |
属性添加前/后缀 | BulkAttributeRenamer |
属性名称大小写设置 | BulkAttributeRenamer |
属性验证 | AttributeValidator |
手敲一下,发现AttributeManager出现的频率非常之高
几何处理转换器
任务 | 转换器 |
叠加分析 | PointOnPointOverlayer,PointOnLineOverlayer, PointOnAreaOverlayer,LineOnLineOverlayer, LineOnAreaOverlayer,AreaOnAreaOverlayer |
空间关系判断 | SpatialRelactor,SpatialFiter |
裁剪 | Clipper |
捕捉 | Snapper |
缓冲 | Bufferer |
点连接 | LineBuilder(PointConnector) |
线连接 | LineCombiner(LineJoiner) |
几何验证 | GeometryValidator |
条件过滤转换器
任务 | 转换器 |
单一条件过滤,输出Yes或No两种结果 | Tester |
多个条件过滤,把多个条件的结果分别输出 | TestFilter |
属性过滤 | AttributeFilter |
几何过滤 | GeometryFilter |
数据连接转换器
任务 | 转换器 |
属性挂接 | FeatureMerger |
空间连接 | FeatureReader,NeighborFinder |
练习一:关于创建字段和属性值,修改字段名以及移除字段的操作
要求:①创建一个Name字段,属性值为FME;在所有的原字段名前增加my字符;③将带有下划线_的字段进行删除
使用到的转换器
Creator
转换器说明:用提供的参数来创建要素,并将这些要素发送到工作空间中进行处理。
AttributeCreator
转换器说明:给要素添加若干属性,并通过常量、属性值、表达式为属性赋值。属性值可以参考相邻的要素。
BulkAttributeRenamer
转换器说明:通过添加、删除前缀或者后缀、正则表达式替换、字符串替换等方式对属性重命名。
BulkAttributeRemover
转换器说明:删除输入要素上符合特定正则表达式的所有属性。它同样可以用来移除大批量的具有共同名称的属性。
练习二:创建一个自定义转换器,主要功能为对输入的要素中的面要素缓冲50m,转换器名称为Area_Buffer
创建自定义转换器的方式
①通过工具条中的“Transformers”-“Create Custom Transformer”来创建自定义转换器
②在画布空白处右键选择创建自定义转换器
③使用快捷方式Ctrl+T的方式创建自定义转换器
使用的转换器:
GeometryFilter
转换器说明:根据几何类型分类输出要素。
Bufferer
转换器说明:对输入的几何要素的边界线扩展或者收缩指定的距离,必要时,用弧段连接他们。聚合的几何体或者组在缓冲区操作后被分离。
右键选择Export as Custom Transformer,可根据需要添加密码或修改到处路径,输出的文件格式为fmx
练习三:数据连接操作
把地类图斑数据挂接属性后,输入到Geodatabase(GDB)数据库中
(添加注释Ctrl+K,Attach Annotation)
转换器FeatureMerger
在写入gdb的时候,选择的动态模式,字段存在输出不全的问题,此处经过多次设置,还会存在字段完全,但记录写出为空的情况,具体还需要后续学习排查,当前未能解决,视频中写出的为shp,但练习要求是要写入到gdb中。
练习四:空间关系
数据生产过程中,难免会对数据进行空间叠加分析,例如进行空间点、面叠加分析,以关联属性信息或者统计空间包含数量
方法一:使用PointOnAreaOverlayer
转换器说明:执行点面叠加操作。
勾选Attribute Accumulation中的Merge Attributes,主要是为了将点的属性合并到面属性中
方法二:使用转换器SpatialRelator
转换器说明:判定要素集之间的拓扑(空间)关系,当要素集存在诸如相接、重叠、相交等关系的时候,转换器将标记,但并不改变要素。
进阶问题:一个面与多个点叠加的情况,默认情况只会挂接第一个点的属性,面想要获得所包含所有点的属性,如何实现?
ListExploder能将列表属性炸开,但是会存在图形重复的情况
转换器说明:暴露输入要素的列表中的每个成员到各自的要素中
ListConcatenator
转换器说明:将列表中的所有值连接成一个属性。
练习五:属性处理
降雨量数据为累计数据,如2月是1-2月的累计数据,需要得到单月的数据
涉及的转换器:
AttributeCreator
转换器说明:给要素添加若干属性,并通过常量、属性值、表达式为属性赋值。属性值可以参考相邻的要素。
在高级中可以获取相邻的要素属性
NullAttributeMapper
转换器说明:在要素上映射指定属性到指定值。这一转换器能够从null值、空字符串和缺失属性映射到属性值,或者从属性值映射到null值、空字符串和缺失属性。
将属性值缺失,空值和Null得值设为0
最后,再使用AttributeCreator创建单月降雨量,使用Arithmetic Editor求差