为什么gdal.translate不接受第三个参数?

时间:2019-07-09 10:32:02

标签: python gdal

根据文档,gdal.Translate应该接受三个参数。下面的代码段直接从定义文件gdal.py

复制而来
 def Translate(destName, srcDS, **kwargs):

我的函数调用如下:

 gdal.Translate(tileName, rasterfile, options)

我的IDE(VScode)立即注意到发生了问题,并告诉我有太多争论了。运行代码会导致以下错误消息:

  

回溯(最近通话最近):文件   “ c:/Users/parejo/Desktop/tile_gen.py”,第24行,在       gdal.Translate(tileName,rasterfile,options)TypeError:Translate()接受2个位置参数,但给出了3个

我在这里想念什么?

代码本身很好,如果我删除了options参数,一切都会顺利进行,但是由于我错过了选项,所以无法获得想要的结果。

3 个答案:

答案 0 :(得分:1)

def Translate(destName, srcDS, **kwargs):

表示该函数接受可变数量的keyword arguments,它可以在闲暇时解释。

如果您有字典,例如

options = {"something": true}

或更动态地生成的东西,并且希望传递它,可以在调用函数时使用相同的**语法将其解压缩为关键字参数:

gdal.Translate(tileName, rasterfile, **options)

当您不需要动态调整关键字参数时,只需将它们传递进来就更像Python了:

gdal.Translate(tileName, rasterfile, something=True)

答案 1 :(得分:0)

尝试使用此代码(经过身份验证的代码)

gdal.Translate(tileName, rasterfile, *options)

答案 2 :(得分:0)

类似的事情应该起作用:

options = {
    'destName': tileName,
    'srcDS': rasterfile,
    # kwargs options
}
gdal.Translate(**options)