根据文档,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
参数,一切都会顺利进行,但是由于我错过了选项,所以无法获得想要的结果。
答案 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)