你好,我需要使用FME对不同的光栅进行一些自定义的细胞操作。
我对FME很陌生,但到目前为止,我的计划是使用geotiff阅读器导入光栅,然后在pythoncreator转换器中执行自定义操作。理想情况下,我希望能够执行相当于操作一个numpy数组的操作,但我很明显地意识到,这些行动确实有所不同。
到目前为止,我已经收集到您可以使用getBand()访问RasterData中的不同频段,但是,我不确定您如何访问数据本身以及进一步访问数据,如何更改单个值等等。我也读过瓦片,例如“prevdata=prevgraster.getband(0).gettile(0,0,tile).getdata()“(由高桥)但我对如何更改光栅中的单个数据点不太确定。
作为附带问题,在Pythoncreator中,排除代码故障的最佳/首选方法是什么?
任何帮助都是非常宝贵的!
所以我今天有一些时间来做故障模式分析。我记得我在2008年被介绍给巨蟒时学过一些龟图。我想知道我是否可以转换现实世界的几何图形,以适合乌龟图形模块。
看着小乌龟箭飞来飞去,画出它的特征,真的很让人安心。
要求FME 2018.1,python在2.7.14和3.7.1中测试
这只是为了好玩,对一些人来说,也许是教育性的。
你好,下面的python代码在python 3中不起作用,我收到一条“unicode对象必须在哈希前编码”的错误消息。有什么小窍门吗?
导入系统盖特哈什利布操作系统
从hashlib导入sha1
进口HMAC
导入Base64
导入时间
导入请求
导入子进程
导入JSON
进口FME
导入FmeObjects
导入日期时间
def calculate_签名(功能):
#从功能属性获取输入值
api_key=fme_macrovalues['api']
host=feature.getattribute('host')
method=feature.getattribute('method')
shared_secret=fme_macrovalues['shared secret']
timestamp=feature.getattribute('时间戳')
#timestamp=datetime.datetime.utcnow()。
url=feature.getattribute('url')
#设置访问键
#access_key=fme_macrovalues['access key']
访问“a0f66a0e-0cc9-7abe-24cc-f807e2829ab”
#从Calculate_签名复制的代码
sig_block=“\r\n \r\n \r\n \r\n \r\n \r\n”.格式(
方法。
主机,
()
时间戳,
APIIKIKE,
访问密钥
print(“\n \n--sig block--\n”+sig \u block+“\n \n”)
解码后的_secret=base64.b64解码(共享的_secret)
hashed=hmac.new(解码后的密码,西格布洛克,沙哈)
sig=hashed.digest().encode(“base64”).rstrip('\n')
#将sig值作为属性添加到feature中
feature.setattribute('sig',sig)
#feature.setattribute('timestamp',str(timestamp))。
嗨,大家好,
我有一个2.7(我们以前的默认值)的脚本,现在已经切换到3.6以保持最新。
我在第18行收到一个语法错误,但我不明白为什么,很明显我错过了…
另外,对脚本的任何反馈都很酷,我对巨蟒还是个新手,所以会很感激的!
提前谢谢
#导入我们可能需要的库import difflibimport fmeimport fmeobjects创建要执行的类,根据FME规范:https://docs.safe.com/fme/亚搏在线html/fme_desktop_documentation/fme_transformers/transformers/pythoncaller.htmclass addressmatch(object):def_u init_uuu(self):self.datad=[]self.pread='self.outputindex=0 self.tmp=0 self.matchrate=0 def input(self,feature):if self.pread<>feature.getattribute('current_address')和self.pread<>枚举中的项(self.datad):self.tmp=difflib.sequencematcher(none,item.getattribute('current_address'),item.getattribute('full_address')。如果self.tmp>self.matchRate:self.matchRate=self.tmp self.outputindex=index,如果self.tmp>=0.95:break self.datad[self.outputindex].setattribute(“matchrating”,self.matchRate)self.pyoutput(self.datad[self.outputindex])self.datad=[]self.datad.append(feature)self.pread=feature.getattribute(“current_address”)def close(self):self.outputindex=0 se对于idx,lf.tmp=0 self.matchrate=0,枚举中的项(self.datad):self.tmp=difflib.sequencematcher(none,item.getattribute('current_address'),item.getattribute('full_address')。如果self.tmp>self.matchRate:self.matchRate=self.tmp self.outputindex=idx如果self.tmp>=0.95:break self.datad[self.outputindex].setattribute(“matchRating”,self.matchRate)self.pyoutput(self.datad[self.outputindex])
当我调用我编写的函数convert时,我得到错误“pythonnameerrror:全局名称'convert'未定义”
我有一个奇特的python脚本在我的pythoncaller中运行,但我想使用“分组依据”逻辑来处理我的特性。我不想手动拆分我的特性,为每个单独的流绘制一个pythoncaller。在python脚本中有一种简单的方法可以做到这一点吗?或者是什么??
你好,
问题是,我有一个shutdown python脚本,但我需要一个输出参数的值,有什么方法可以用python知道参数“division”的值吗?
我正在尝试创建一个简单的脚本化参数,该参数创建一个唯一的随机ID,以便插入到数据库中进行报告。
我将逐步遵循FME帮助页面中的示例:
https://knowledge.亚搏在线safe.com/articles/60080/python-scripted-parameters.html
我创建一个变量,并使用python模块(解释器3.4+)为它分配一个uuid。
https://docs.python.org/3.4/library/uuid.html网站
import uuiimport fmecustom_uuid=str(uuid.uuid4())我尝试了使用和不使用转换为字符串custom_uuid=uuid.uuid4()返回自定义_uuid
由于脚本中返回的结果,FME Workbench不读取参数,但是读取脚本的文本(添加一些自定义的FME标记)。
从记录器中查看:
记录器:uuid为:导入UUID 进口 FME 定制UUID = UUID4 返回 定制UUID
如果FME没有读取脚本返回的结果,我会怎么做?
你好,
我在许多目录中都有一组工作区和一个使用WorkspaceRunner逐个调用所有工作区的工作区。
这是我的等级结构图
在这个结构中,您有一个名为“livraison-transformation globale aixm 51”的目录。在这个里面,您有一个“主”工作区,它在您可以在图片上看到的各种目录中逐个调用所有工作区。
这是“主”工作区的图片
我的问题是:当我在另一个目录中更改名为“livraison aixm 51 v2.0”的主目录时,我丢失了WorkspaceRunner参数的路径(显示图片)。我想使用“fme_mf_dir”,我想进入父目录并进入子文件夹以到达各种工作台,但绝对路径在我的例子中被使用。
是否可以使用python脚本来:
-引入一个属性“livraison aixm 51 v2.0”路径的值
-主工作台位于“Livraison-Transformation Globale AIXM 51”中。所以,fme_mf_dir默认情况下包含此目录的绝对路径。
-引入一个属性fme_mf_dir的父目录
-在每个WorkspaceRunner中,都带有子文件夹的属性,子文件夹中调用了不同的工作台。
提前谢谢
在我们的环境中,工作区开发和发布的服务器位于不同的系统上,因此,工作区必须使用以前不知道的FME网络连接进行通信,尤其是向子工作区提交呼叫。
经过深思熟虑,从配置文件中读取其值的脚本连接参数似乎是获得必要的运行时环境独立性的理想解决方案。
我找到了https://knowledge.safe亚搏在线.com/articles/844/setting-up-a-workspace-to-deploy-in-production-sta.html和https://knowledge.safe.com/questions/4296/set-published-parameters-in-a-python-startup-scrip.html,但无法找出如何将这些技术用于连接参数。
我想知道Aynone是否有在PythonFME中使用Asyncio的经验?
我一直在尝试用asyncio.coroutine和做一些async def来装饰,但我无法理解如何将同步化的FME项目与异步库(如Asyncio)相结合的整个过程。
任何一个愿意分享他们在这个问题上的知识的人都会很讨厌的!
帕尔
在我的工作团队中,我们是几个开发人员,我们需要在不同的变压器中更改相同的工作区。如何像处理sourcetree和其他源代码文件一样合并FME更改?
你好,
我正在尝试将顶点坐标从网格导出到属性,但我得到了这个错误:
类型错误:无法将列表值转换为本机值。
代码如下:
类功能处理器(对象):def输入(self,功能):mesh=feature.getgeometry()vp=mesh.getvertices()feature.setattribute('vertexpool',vp)self.pyoutput(功能)
我是新来的FME。
大家下午好!
我在为一些CAD数据开发QA/QC流程时遇到问题。最终目标是将CAD文件中的图层与电子表格中的基础图层名称(即立面轮廓,房屋,灯,等)。我认为最好的方法是使用python。我尝试过变形金刚,但它们只查看正在运行的数据。我刚接触过fme python,到目前为止我有点迷路了。任何帮助都很好!
谢谢!
戴维