首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈最近学习的fme

最近一个月接触了fme,边学边做模型,对fme逐渐有了了解,fme在数据格式扩展非常强大,支持几百种数据格式,有支持不同的gis软件的数据格式的读取,还有常见的Excel,dbf表格,还可以连接sde,oracle,sql sever,postgrest等常见的商业、开源数据库。如此丰富的数据格式读取对于数据处理十分方便。fme desktop可以做常见的属性,空间几何等处理。目前在做一个项目,检查数据用到了增删改属性,几何拓扑检查,提取几何属性,如:坐标串,wkt。

fmeworkbech主要是desktop的构建模型模块,就像arcmap里的模型构建器。用过不少的arcmap模型构建器以及arcpy,也了解到一些不足之处,比如:arcmap的连接比较令我头疼,建立图层上的临时链接,这样如果执行大量的连接有非常大的问题,字段名会有非常长,每一次连接赋属性后移除连接比较麻烦,而且图层的概念是要把feature添加到map里,不支持直接feature连接。fme里有一个fearturemerger转换器可以要素连接,再用attributecreator赋属性很方便。fme里也有自己的python api,如fmeobject、fme

可以创建python script 执行读写功能,执行类似如fmeworkbech制作的模板的效果,如果模板支持转成python执行脚本就好了,它不像arcmap的模型可以生成python,对于几何,属性处理的函数也不多。可以在模板执行前,过程中,完成后执行置入的python脚本,这个感觉也很厉害的,我试过在执行前放入arcpy脚本,对执行前添加两个字段,并生成几何中心坐标,速度很快的。这里配置环境设置python dll为c盘 system下。但是在执行过程中使用arcpy,速度非常慢不建议使用,之前直接试用过fme自带的函数生成wkt,速度毫不夸张地说快arcpy好几倍,当数据量比较大时,10倍以上,这里我觉得是环境的引用问题吧,不是很了解里边的机制。pythoncaller是过程执行的,生成的wkt格式和oracle sde 函数生成的不一样,空格出现的地方不同,(后是一个空,而oracle是两个,这就比较麻烦了,还没想出来如何解决。

这两天还研究了feature的增删改,对于一个要素同时进行删除,更新,之前以为在参数那里才能设置为更新,插入和删除模式,而且只能设置一个模式。还有动态执行机制,数据库需要隔一定时间进行检查更新(直接就包括了删除,插入,改原有的字段属性),fme server提供了定制任务的功能,可以设置每隔多长时间执行一次更新任务,数据库是要不断的有进有出操作,“它可以在我睡觉的时候完成我的任务”这貌似是fme软件公司一位大佬给fme server打的广告。在大三的研究过arcpy自动化处理,把一切过程处理全部写成一个界面执行操作。在学习fme中,更进一步了解!

以下是fme srever动态执行环境的简单说明,从desktop到server的安装环境文字说明。写下来一些经验,希望能够避免走一些弯路吧。

FME desktop与fme server 执行动态更新简易教程

安装desktop 、license(用2012的破解文件或者2015的破解,Keygen生成的license复制到flexserver安装目录下,改27000为27001-9任意,不与arcgis license冲突)

一般生成的license包括了desktop与server(fme engine)等,因为执行动态更新需要同时具备两个license权限。

安装server,如果server和desktop同在一个计算机里,输入计算机名即可,如果是远程服务器则要输入IP,端口默认的,80或8080,设置server登录用户名和密码。

desktop和server安装完成后则可以,制作.fmw模型了,写好了更新字段的流程,这个源数据和目标数据最好是数据库(sde连接oracle)

写完后执行一次,运行完毕,点击工具栏的发布图标发布到fme server,输入地址,用户名及密码。fmw模型可以发布到现有的空间里,也可以新建,发布到新建空间里,勾上job submit点击完成发布成功。然后登陆fme server ,用户名,密码登陆。点击manager,目录,新建任务,前几个输入名称(自己随便填),然后到空间选择,选择刚发布的空间下的模型,设置开始执行时间,执行的间隔(频率),结束时间,也可以勾选never,就会一直执行此任务。

注意:fme的license必须具备desktop和server的权限;执行schedule或run workspace时,一定要把arcgis关闭,如出现提示arcgis的license已被占用,则把arcgis的license停止后再次启动,问题就可以解决了,同样fme server执行完毕后想要打开arcmap,必须把fme server的服务停止,才能打开arcmap。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G02B4900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券