班长欣欣

一、题目说明

对面进行遮挡处理,处理要求如下:

多个面之间存在压盖,要求压盖区域用Level高的遮挡Level低的,并将压盖区域从Level低的面中擦除。如下图所示:

面1、面2、面3 的Level分别是 80、90、100。

面1和面3的压盖区域为面4,则面4的Level为100,面4应从面1中擦除;

面2和面3的压盖区域为面5,则面5的Level为100,面5应从面2擦出;

最终得到的面1、2、3结果如下:

二、题目分析

按照本题目的要求,对数据进行遮挡处理时,重点在于两个方面:

1)当面有压盖时,要判断面重叠部分最大的Level级别,并将该级别作为重叠部分的Level;

2)将重叠部分从Level级别低的面中擦除,只保留在Level级别最高的面中。

三、作业情况

本次一共收到26份作业,作业概括和分析如下:

序号

作者

主要方法

小结

转换器个数

推荐

1

刘足建

  1. 读入要素AreaOnAreaOverlayer进行面面压盖分析,并设置列表保存重叠面的所有属性;
  2. 用ListRangeExtractor提取列表中的最大Level值,将最大Level值作为重叠面的Level
  3. 使用Dissolver对Level相同的进行融合

ListRangeExtractor只取最大的Level值,重叠部分的其他属性无法确保跟Level最大的面相同。Dissolver后得到的面属性可能有误。

4

2

努力的和尚哥

  1. 先用Sorter对所有要素按照Level级别升序排序;
  2. 使用AreaOnAreaOverlayer进行面面压盖分析;
  3. 使用Dissolver对Level相同的进行融合

1)没有写模块,注意模板完整性。

2)利用FME要素处理机制,排序后让要素按照Level级别从低到高进入面面压盖,在面面压盖的时候直接让重叠部分带上最后一个要素的属性。即Level级别最高的面的属性。然后通过Dissolver

3

★推荐有一定FME基础的人学习

3

伸手摘星

  1. 使用AreaOnAreaOverlayer进行面面压盖分析,并设置列表保存重叠面的所有属性;
  2. 用TestFilter分析了list列表中0-2的三个要素分别最大的情况,再根据不同的情况使用AttributeCreator进行Level赋值;
  3. 使用Dissolver对Level相同的进行融合

用TestFilter分析列表具有特殊性,如果重叠面的压盖计数超过3,则不再适用。做模板的时候要考虑一下通用性。

可以了解一下List相关的转换器进行操作。

7

4

向左向右

  1. 使用AreaOnAreaOverlayer进行面面压盖分析,并设置列表保存重叠面的所有属性;
  2. 使用ListSorter按照Level最高进行排序,确保Level最大的为列表中的第1个元素
  3. 使用Dissolver对Level相同的进行融合。Level值取列表第1个元素。

Dissolver合并分组的时候只需要考虑Level属性即可。其他属性可以不用选择

ListSorter之后对重叠面的用户属性进行重新赋值,无法确保Dissolver时候的属性。

3

5

刘振东

运算的结果正确,但是过程太复杂,而且没有注释,不太明白具体思路。

建议学习一下1、4的作业思路

17

6

徐文彬

  1. 读入要素AreaOnAreaOverlayer进行面面压盖分析,并设置列表保存重叠面的所有属性;
  2. 用ListRangeExtractor提取列表中的最大Level值,将最大Level值作为重叠面的Level
  3. 使用Dissolver对Level相同的进行融合

ListRangeExtractor后的AttributeManager应该把所有用户属性赋值。

4

7

箜竹

  1. 使用Counter给每个要素赋BSM,再AreaOnAreaOverlayer通过overlap判断重叠部分的面,对重叠部分的面通过Tester判断列表中元素的Level值大小
  2. 保留Level值大的元素的BSM,通过Dissolver按照BSM分组合并

对重叠部分的面通过Tester判断列表中元素的Level值大小不够严谨,也只考虑了列表元素最多为3的情况。

而且Tester_2中的判断条件不够严谨。

9

8

森林木

  1. 对面进行压盖分析的步骤使用面转线、线相交打断、重构面、再与原始面进行裁剪完成;
  2. 使用统计和Tester提取Level最大的重叠面后,通过Dissovlver合并

面面分析的步骤用AreaOnAreaOverlayer即可完成,可以节省很多步骤。

8

9

魏文波

  1. AreaOnAreaOverlayer压盖后,使用Tester选出重叠部分
  2. 重叠部分使用ListSorter对Level值进行排序,获得重叠部分最大的Level
  3. 使用Dissolver进行分组合并

Counter这个转换器貌似多余了,

AttributeCreator获取第0个元素的属性时,应考虑把所有用户属性进行赋值。

另可以更简化,参考序号4的作业,思路基本一致。但是转换器更少。

6

10

东方牛仔

思路与方法与序号9的作业基本一致。排序后使用AttributeCopier获取了元素0的所有属性。

使用AttributeCopier可以确保Dissolver后的属性正确。

6

11

钱小将

  1. 先用Sorter对所有要素按照Level级别升序排序;
  2. 使用AreaOnAreaOverlayer进行面面压盖分析;
  3. 使用Dissolver对Level相同的进行融合

跟序号2的作业方法一样,就不重复说明啦

3

★推荐有一定FME基础的人学习

12

小迷糊

  1. 读入要素AreaOnAreaOverlayer进行面面压盖分析,并设置列表保存重叠面的所有属性;
  2. 用ListRangeExtractor提取列表中的最大Level值,将最大Level值作为重叠面的Level
  3. 使用Dissolver对Level相同的进行融合

ListSorter后没有对重叠部分的其他属性做处理,Dissolver之后的属性可能有问题。

提交的模板中有两条连接线还是禁用状态,下次注意哦。

4

13

Because of you

  1. 使用AreaOnAreaOverlayer进行面面压盖分析,并设置列表保存重叠面的所有属性;
  2. 使用ListSorter按照Level最高进行排序,确保Level最大的为列表中的第1个元素
  3. 使用Dissolver对Level相同的进行融合。Level值取列表第1个元素。

Counter貌似多余了

这样获取的几何图形没问题,但是ListSorter后没有对重叠部分的其他属性做处理,Dissolver之后的属性可能有问题。

模板最整洁,注释最清晰,点赞!

4

14

阿呆

循环的过程我没看明白……下次可以写个注释说明么……

5

15

比巴卜

  1. AreaOnAreaOverlayer压盖后,使用Tester选出重叠部分
  2. 重叠部分使用ListSorter对Level值进行排序,获得重叠部分最大的Level
  3. 使用Dissolver进行分组合并

这样获取的几何图形没问题,但是ListSorter后没有对重叠部分的其他属性做处理,Dissolver之后的属性可能有问题。

4

16

江树

  1. 先用Sorter对所有要素按照Level级别升序排序;
  2. 使用AreaOnAreaOverlayer进行面面压盖分析;
  3. 使用Dissolver对Level相同的进行融合

Counter好像没必要,其他跟序号2的作业方法一样,就不重复说明啦

4

★推荐有一定FME基础的人学习

17

  1. AreaOnAreaOverlayer压盖后,使用Tester选出重叠部分
  2. 重叠部分使用ListSorter对Level值进行排序,获得重叠部分最大的Level
  3. 使用Dissolver进行分组合并

使用ListIndexer可以保证重叠面获取所有属性。

有注释,很好。

18

杨忠智

  1. AreaOnAreaOverlayer通过overlap判断重叠部分的面;
  2. 对重叠部分的面通过ListSorter判断列表中元素的Level值大小,取大的为重叠面的Level
  3. 对所有面按照Level值进行融合

面面叠加后可以直接使用ListSorter;

ListSorter后只取第0个元素的Level还不够严谨,重叠部分的其他属性无法确保跟Level最大的面相同。Dissolver后得到的面属性可能有误。

缺少写模块,下次加上哦。

19

①②③

  1. AreaOnAreaOverlayer压盖后,
  2. 用ListRangeExtractor提取列表中的最大Level值max
  3. Dissolver直接使用max值分组合并

ListRangeExtractor只取最大的Level值,重叠部分的其他属性无法确保跟Level最大的面相同。Dissolver后得到的面属性可能有误。

3

20

D

  1. AreaOnAreaOverlayer压盖后,
  2. 用ListRangeExtractor提取列表中的最大Level值max
  3. ListSearch查找max值元素的index
  4. Dissolver直接使用max值分组合并

如上。

另ListSearch的结果没有用上。

5

21

Lee.Retin

  1. 先用Sorter对所有要素按照Level级别升序排序;
  2. 使用AreaOnAreaOverlayer进行面面压盖分析;
  3. 使用Dissolver对Level相同的进行融合

跟序号2的作业方法一样,就不重复说明了

3

★推荐有一定FME基础的人学习

22

活力贝贝

  1. 先用Sorter对所有要素按照Level级别升序排序;
  2. 使用AreaOnAreaOverlayer进行面面压盖分析;
  3. 使用Dissolver对Level相同的进行融合

跟序号2的作业方法一样,就不重复说明了。

有注释,更易理解!

3

★推荐有一定FME基础的人学习

23

上来透口气

  1. 使用AreaOnAreaOverlayer进行面面压盖分析;
  2. Tester判断overlap,对重叠部分和非重叠部分分别处理。对重叠部分通过自定义转换器利用Python代码处理,找到Level最大的
  3. 使用Dissolver进行合并

对重叠部分的处理,使用List的转换器即可。

5+1(自定义转换器)

24

桃子

用了两种方法:

Counter赋唯一标示

  1. 方法1:AreaOnAreaoverlayer做面面叠加,然后用对list按Level降序排序后,提取列表第1个元素的值,然后Dissolver进行合并
  2. 方法2:使用了Sorter降序对面排序,然后使用Clipper进行进行裁剪,确保重叠部分带上的属性为Level大的属性值,然后使用Dissolver合并

感谢提供两种思路

10

25

小胖纸

  1. 判断Level是否为数字
  2. AreaOnAreaoverlayer做面面叠加,通过overlap区分重叠部分和非重叠部分
  3. 对重叠部分用ListSorter降序排序后,去第0个元素的Level值作为重叠面的Level
  4. 最后使用Dissolver按Level合并

ListSorter后只取第0个元素的Level还不够严谨,重叠部分的其他属性无法确保跟Level最大的面相同。Dissolver后得到的面属性可能有误。

7

26

熊阿大

  1. AreaOnAreaoverlayer做面面叠加
  2. 用ListRangeExtractor提取列表中的最大Level值,
  3. 使用Dissolver按最大Level值进行合并。

ListRangeExtractor只取最大的Level值,重叠部分的其他属性无法确保跟Level最大的面相同。Dissolver后得到的面属性可能有误。

5

四、小结

  1. 这次是作业最多的一次,感谢大家对FME的热爱。
  2. 这次作业从最后生成的几何图形来说,大家的结果几乎都正确。不过每次作业看得越多,我也会思考越多,考虑多了就会觉得有的方法不够严谨。比如说用AreaOnAreaOverlayer叠加后对List排序,但是排序之后只提取Level属性或者直接用列表Level进行融合。这样的思路乍看起来是OK的,但是如果我们再严谨一点,既然保留最大Level的部分,那如何保证Dissolver之后的属性跟原来一致呢?这个时候需要在Dissolver之前把素有用户属性对重叠部分重新赋值,会更严谨。 (我想大部分原因是因为题目没有强调这个,但是我觉得我们可以多考虑一点)。基于这个原因,所以我只推荐了能同时保证几何和属性的作业。
  3. 序号2、11、16、21、22的作业,先对Sorter按升序排序后叠加,可以保证Level最大的最后进入AreaOnAreaOverlayer,但是关于AreaOnAreaOverlayer属性设置的参数选项(如下):

    Use Attributes From One Feature: 帮助文档的解释说的是“从一个代表性要素中获取所有属性”。这个代表要素是第一个要素还是最后一个要素没有给出答案。谁能帮我答疑解惑一下,有奖!

  4. 最后,我们第十九期任务马上就要发布了,你们期待吗?

点击下载:第十八期模版兴趣班(面遮挡处理)任务说明和共享作业

FME模板兴趣班第十八期(面遮挡处理) 任务小结相关推荐

  1. FME模板兴趣班第五期任务小结

    作者:欣欣 现在每次出模板兴趣班题目的时候,其实还蛮费脑筋的,一方面希望题目能够跟大家的工作相结合:其次还要考虑不同技术水平的人都能参与进来:然后还要考虑题目的通用性,是否对大部分人都有帮助.所以很感 ...

  2. COS访谈第十八期:陈天奇

    COS访谈第十八期:陈天奇 [COS编辑部按] 受访者:陈天奇      采访者:何通   编辑:王小宁 简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习.他曾获得KDD CUP 20 ...

  3. 发布 项目_第十八期科创基金项目发布会圆满结束

    第十八期科创基金项目发布会圆满结束 贺电!贺电! 电子信息工程学院发来贺电:第十八届科创基金项目发布会圆满结束啦!感谢导师们的支持.现场同学的热情参与和科协朋友后勤服务! NUAA 即使是寒冷的冬天也 ...

  4. 鲁大师电动车智能化测评报告第十八期:加量降价,九号完成产品破圈?

    鲁大师第十八期智能化电动车测评排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型.截止目前,鲁大师智能化电动车测评的车型高达90余种,且还在不断增加和丰富中. 1. 测评依据 鲁 ...

  5. CSDN 编程竞赛二十八期题解

    竞赛总览 CSDN 编程竞赛二十八期:比赛详情 (csdn.net) 本期竞赛的题目都很简单,但是非常考验读题和编码速度.这一次没有遇到bug,竞赛体验较好. 竞赛题解 题目1.小Q的鲜榨柠檬汁 团建 ...

  6. 第十八期基金定投-全民抗疫

    5请阅读本计划之前,仔细阅读以下内容: 1. 本计划仅供参考,市场有风险,投资需谨慎 2. 此计划的预计年限是2-3年,因此投资的钱是稳定而不用的钱 3. 请打算按此计划购买的朋友,再三考虑,是否熬得 ...

  7. 《区块链改变生活》第十八期 大白话聊井通——井通人

    <区块链改变生活>第十八期 大白话聊井通--井通人https://www.ximalaya.com/thirdparty/player/sound/player.html?id=19477 ...

  8. CSDN 编程竞赛十八期题解

    竞赛总览 CSDN 编程竞赛十八期:比赛详情 (csdn.net) 感觉这次竞赛的题目有点偏数学了,尤其是第三道题,输入+输出就完事了,答案是一个数学公式. 竞赛题解 题目1.单链表排序 单链表的节点 ...

  9. “科技体系如何驱动苏宁智慧零售业务发展” ——1200十八期体系业务交流

    智慧零售,是指运用互联网.物联网.云计算.大数据和人工智能等技术,感知消费习惯,预测消费趋势,引导生产制造,为消费者提供多样化.个性化的产品和服务,推动实体零售和传统电商的转型升级.随着技术的迅猛发展 ...

最新文章

  1. fft 相位谱_信号处理之功率谱原理与python实现
  2. shell截取字符串方法
  3. Oracle数据库链Database links
  4. 自己动手修改龙邱信标灯固件FM频率
  5. 428 Setup MySQL + - 改
  6. hdfs web_ui深入讲解、服务启动日志分析、NN SNN关系
  7. Spring Boot——SpringMVC带URL前缀的静态资源解决方案
  8. dll注入工具_UnmanagedPowerShell工具分析
  9. SQL游标使用方法SQL游标使用方法(转)
  10. ubuntu18重装笔记
  11. lcfirst_PHP lcfirst()函数与示例
  12. “暂时没有对您所在的地区提供下载和试听服务”的解决办法
  13. layui 日期范围选择器_UI设计素材模板|完美日期选择器
  14. Goland的常用快捷键
  15. gridview的表头固定
  16. vscode格式化代码快捷键
  17. android十进制转十六进制算法,十进制转十六进制计算器
  18. OARACLE——创建表空间、用户、权限、删除用户、导入、导出
  19. 02-UI知识+Scen场景搭建
  20. 为什么 securely empty 那么慢?

热门文章

  1. html获得焦点显示边框,input获得焦点时,如何让外边框不变蓝
  2. 网络安全学习笔记1.2.1网络系统面临的安全威胁——恶意代码
  3. on error resume next用法
  4. 输入汉字自动转为拼音(jsp实现方式)
  5. android ios 逆向工程,iOS逆向工程(七):使用Theos逆向项目
  6. 如何给共享文件夹中的图片添加水印
  7. 10进制转2进制,js实现
  8. bert模型可以做文本主题识别吗_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较...
  9. 忘记xp系统超级管理员密码
  10. html5 视频录制上传视频,怎么上传视频(手把手教你怎么在今日头条录制及上传视频)...