前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在FME中使用Python做缓冲并转换为WKT

在FME中使用Python做缓冲并转换为WKT

作者头像
数据处理与分析
发布2019-07-31 16:30:30
1.2K0
发布2019-07-31 16:30:30
举报
文章被收录于专栏:数据处理与分析

WKT

WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。使用FME的函数可以方便的在要素与WKT之间进行转换。而WKT可以作为一种格式在各平台中进行传递,比如说ArcGIS与FME。

PythonCaller

在FME中使用Python可以有多种方式,本文介绍的是使用PythonCaller这个转换器。关于Python的函数可以查看safe官方文档,链接:http://docs.safe.com/fme/html/fmepython/。

魔板截图及数据预览

点在魔版中经过转换器的处理被转换成了线,线经过处理又变成了面。对面不做处理,对点和线做缓冲,并将缓冲后的几何转换为WKT。

魔板思路

首先创建一个点,然后使用Cloner转换器复制为100个点,然后将点移动,移动后的点分以下两条数据流:

  • 连接成线
  • 直接到Pycaller连接成线的

数据也分为两条数据流:

  • 闭合形成面
  • 直接到Pycaller

Pycaller中的代码

代码语言:javascript
复制
import fme
import fmeobjects

class FeatureProcessor(object):
   def __init__(self):
       pass
   def input(self,feature):
       feature.buffer(1,0)
       wkt = feature.exportGeometryToOGCWKT()
       feature.setAttribute('wkt',wkt)
       self.pyoutput(feature)
    def close(self):
       pass

关于魔板

魔板已上传到百度云盘,感兴趣的小伙伴可以在本公众号点击FME资料,获取下载链接。本魔板名称为 转wkt并做缓冲

题外话

本文通过一个小例子展示了可以使用Py来完成转换器能做到的事情。虽然能在FME中使用Python做到很多事情,但我还是建议,能使用转换器完成的工作尽量不要去使用Py(这个要看个人喜好了),因为跟代码比较起来,转换器不仅易用,而且更便于维护。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WKT
  • PythonCaller
  • 魔板截图及数据预览
  • 魔板思路
    • Pycaller中的代码
    • 关于魔板
    • 题外话
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档