FME教程:批量提取面要素图形的拐点坐标到Excel,其他类型图形的坐标提取、输出可参考本文方法

news2024/11/24 22:53:42

目录

一、提取成果

二、实现过程

1.读取数据

2.分离内外边界

3.提取坐标

4.获取边界序号

5.坐标处理

6.数据输出

三、总结


今天给大家介绍使用FME提取几何图形拐点坐标,并输出到Excel中的案例。这里以shapefile格式,且内部存在环洞的面要素为例进行提取坐标演示。

一、提取成果

下面的图1、图2分别为源数据和成果数据,可以看到源数据中有两个普通面以及一个带环洞的面,并且属性表中有一个“BH”字段。而图2的成果数据中可以看到输出的Excel文件以“BH”字段值进行了命名,而在Excel中对于面要素的内外边界坐标分别放在多个工作表,便于使用区分。

图1 源数据

图2 输出成果

二、实现过程

1.读取数据

这里使用shapefile数据进行示例,用shapefile读模块读取数据,如下图所示,如果源数据为其他格式,比如dwg文件,则使用相应的CAD读模块即可。

图3 读取数据

2.分离内外边界

因为这里使用的是面数据,而面数据存在内部有环的情况,所以要将环进行分离,便于输出Excel时,将内外边界分别输出到相应的工作表。提取结果如下图所示。

图4 分离内外边界

3.提取坐标

使用CoordinateExtractor转换器,将图形的坐标提取暴露到列表中,如下图所示。

图5 提取坐标

4.获取边界序号

因为面图形可能存在多个内外边界。为了便于区分输出,因此要对边界进行编号,如下图所示。

图6 获取边界序号

5.坐标处理

对各个图形边界的坐标计算序号,并进行四舍五入到指定位数,如下图所示。

图7 坐标处理

6.数据输出

使用Excel写模块对数据扇出数据集,每个图斑对应输出一个Excel文件,并用“BH”字段进行命名。输出成果如下图所示。

图8 输出成果


☛ FME系列视频教程推荐 ☚


  • 1.FME入门视频教程

  • 2.FME进阶视频教程

  • 3.FME案例实战教程


频讲解及模板下载☛ :【视频教程】4.批量提取面要素的拐点坐标到Excel


三、总结

在本案例中以shapefile格式数据,且带环洞的复杂面进行了示范,那么其他的格式的数据也可以替换读模块,然后参照本案例进行提取。本FME模板的运行选项如下图,只要输入选择源shp、小数位数、输出目录,即可一键批量提取几何图形的坐标到Excel。关注微行公众号:“GIS工具乐园”,持续更新FME开发技巧分享哦。

图9 运行选项


☟ 往期推荐 ☟


  • FME进阶视频教程:一起来深入学习FME软件的使用,轻松搞定通宵爆肝都干不完的工作

  • FME案例实战教程:聚焦实战应用,摆脱思路束缚,您值得拥有

  • FME入门视频教程-带你学习数据转换处理多面手FME软件的使用,让我们的工作事半功倍

  • 利用FME实现DLG数据无损转CAD地形图,实现CAD地物符号完美还原的解决方案

  • dwg数据自动批量计算宗地红线内的建筑面积、附属建筑面积工具

  • 巧用WorkspaceRunner转换器,动态调用dwg模板文件,解决批量处理dwg数据时出现样式丢失问题

  • CAD地形图等高线标高批量取整工具,解决等高线标高出现小数的问题

  • GIS建筑面转CAD格式JMD,还原房屋建筑、层数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/600870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux nohup命令如何使用?

Linux nohup 命令 nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup…

低价乱价问题怎么处理

消费者遇到商品价格混乱的时候,选择不购买即可,但是品牌商遇到线上低价、乱价的局面又怎么办呢,不处理当然是不可以的。品牌放任低价、乱价不管的后果就是,经销商流失、顾客流失、品牌价值受损。那品牌应如何解决低价问题呢。 什么…

《嵌入式存储器架构、电路与应用》----学习记录(二)

第3章 嵌入式动态随机存储器 6T SRAM存储单元由六个晶体管组成,单元面积相对较大。为了增加存储密度,eDRAM是SRAM最具有潜力的替代品,根据存储单元不同分类: 传统的单晶体管单电容的(1T1C)eDRAM,其存储单元由一种特殊…

Redis的缓存过期淘汰策略

Redis的缓存过期淘汰策略 一 面试题引入二 Redis内存满了怎么办?2.1 redis默认内存多少?在哪里查看?如何设置修改?2.2 如果Redis内存使用超出了设置的最大值会怎样? 三 Redis里的数据怎么没的?它如何删除呢…

智能出行 驱动未来|2023 开放原子全球开源峰会 CARSMOS 开源智能出行生态年会即将启幕

由开放原子开源基金会主办,元遨 / CARSMOS 开源智能出行项目组协办,深信科创、Futurewei Technologies、Open Motors、北极雄芯等单位共同承办的 2023 开放原子全球开源峰会 “CARSMOS 开源智能出行生态年会” 将于 6 月 12 日在北京经开区北人亦创国际会…

chatgpt赋能python:Python函数:降低编程复杂度的利器

Python函数:降低编程复杂度的利器 编写高效且易于维护的代码,是每个开发者都追求的目标。Python函数在实现这个目标中起着至关重要的作用。通过函数,我们可以将程序分解为更小的代码块,以简化代码逻辑和降低复杂度。本文将介绍Py…

C++服务器框架开发7——日志系统LogFormatter_2

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C高级教程]从零开始开发服务器框架(sylar) 上一篇:C服务器框架开发6——日志系统logFormatter/size_t学习 C服务器框架开发7——日志系统LogFormatter_2 目前进度 目前进度 学…

Java程序设计入门教程--随机类Random

随机数的类 在程序设计中,经常都需要产生一些随机数,比如模拟随机抽奖、抽样等。 Random类在java.util包中,是专门用于提供生成一个随机数的类,随机数的生成相关方法都在该内中。比如Random类的nextInt方法需要一int型值作为参数&…

【生信】R语言在RNA-seq中的应用

R语言在RNA-seq中的应用 文章目录 R语言在RNA-seq中的应用生成工作流环境读取和处理数据由targets文件提供实验定义对实验数据进行质量过滤和修剪生成FASTQ质量报告 比对建立HISAT2索引并比对 读长量化读段计数样本间的相关性分析 差异表达分析运行edgeR可视化差异表达结果计算…

11.Ansible Roles介绍

什么是Ansible角色? 就像在现实世界中给不同的人分配角色一样,让他们成为医生工程师, 宇航员, 警察,或者厨师。在Ansible的世界里, 你可以给服务器分配角色,让它们成为数据库服务器、 Web服务器、 Redis消息服务器或备份服务器&#…

LCUSB-13xB/M 系列高性能 USB 接口 CAN 卡在医疗体外诊断仪上的应用

1,LCUSB -13xB/M 系列高性能 USB 接口 CAN 卡的功能介绍 LCUSB -13xB/M 系列高性能 USB 接口 CAN 卡,坚固 金属外壳,具有更佳 EMC 性能,插到用户设备 USB 接口 上,快速扩展出 1~2 路 CAN 通道,可作为组件集…

java基础学习

一、注释 1)当行注释 // 2)多行注释 /* ... */ 3)文档注释 (java特有) /** author 张三 version v1.0 这是文档注释,需要将class用public修饰 */ 二、关键字 (1)48个关键…

tinker CAD入门操作

入门 - 导航和菜单 欢迎来到设计世界! 设计是发现所有尚未完成的东西的艺术。它是学习和教学,打破和制造,看到和展示的平等部分。 设计就是分享! Tinkercad是一款功能强大且易于使用的工具,用于创建数字设计&#xff0…

CVE-2023-33246 Apache RocketMQ RCE

0x01 漏洞介绍 Apache RocketMQ是一款开源的分布式消息和流处理平台,提供了高效、可靠、可扩展的低延迟消息和流数据处理能力,广泛用于异步通信、应用解耦、系统集成以及大数据、实时计算等场景。 漏洞的官方描述为当RocketMQ多个组件,包括N…

chatgpt赋能python:Python分三行输入:提高编程效率的绝佳方法

Python分三行输入:提高编程效率的绝佳方法 Python是一种高级编程语言,以简洁、易读的代码著称。Python分三行输入是一种旨在提高编程效率的技术,它可以减少代码阅读时间、降低语法错误率,并且让代码更加易于维护。在本文中&#…

0501源码分析-启动过程-springboot2.7.x系列

文章目录 1前言2 启动第一阶段2.1 deduceFromClasspath 推断应用类型2.2 getSpringFactoriesInstances(Class)2.3 ApplicationContextInitializer2.4 ApplicationListener2.5 自定义接口实现配置示例 3 启动第二阶段3.1 SpringApplicationRunListener3.2 容器创建和准备 4 总结…

11. 数据结构之二叉树

前言 上一节,简单概述了树这种数据结构,以及树结构向下,具有某些一些特征的树,比如二叉树,B树,B树,堆等。其中,二叉树是一个很重要的模块。也是在一些技术面试中,可能会…

【Vue】学习笔记-Vuex

Vuex 理解VuexVuex是什么什么时候使用VuexVuex 工作原理图求和案例使用纯vue编写 搭建Vuex环境使用Vuex编写求和案例getters配置项四个map方法的使用多组件共享数据案例模块化命名空间 理解Vuex Vuex是什么 概念:专门在vue中实现集中式状态(数据) 管理的一个vue插…

基于P-Tuningv2轻量微调和推理chatglm

类ChatGPT的部署与微调(下):从GLM、ChatGLM到MOSS、ChatDoctor、可商用_v_JULY_v的博客-CSDN博客随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革…

【CMake 入门与进阶(2)】CMake编译设置——多个源文件编译及生成库文件(附代码)

多个源文件 上篇我们学习了单个源文件的cmake 的编译,不过一个源文件的例子似乎没什么意思,我们再加入一个hello.h 头文件和 hello.c 源文件。在 hello.c 文件中 定义了一个函数 hello,然后在 main.c 源文件中将会调用该函数&#xff…