我在编码方面是新手,并尝试使用gdal库和qgis python控制台将SEVIRI原生图像转换为tif格式。 问题是,当我想添加GCP时,我遇到了一个错误,我不知道如何解决这个问题。我知道我添加GCP的方式错误,但我不知道正确的方法是什么! 我搜索了很多,但没有找到任何关于在qgis python控制台中使用gdaltranslate时添加GCP的信息。任何建议都会有帮助。 以下是我在qgis python控制台中的代码:
import gdal
src='E:/data/MSG1-SEVI-MSG15-0100-NA-20190331061240.466000000Z-20190331061258-1408742.nat'
dst='E:/data/trans.tif'
ds=gdal.Open(src)
gdal.Translate(dst,ds,format='GTiff',outputType=gdal.GDT_UInt16,GCPs=(3227050.38610344,1303713.87878049,50.2665350843959,29.244462081302))
error is
Traceback (most recent call last):
File "C:\PROGRA~1\QGIS3~1.14\apps\Python37\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
File "<string>", line 6, in <module>
File "C:\PROGRA~1\QGIS3~1.14\apps\Python37\lib\site-packages\osgeo\gdal.py", line 422, in Translate
(opts, callback, callback_data) = TranslateOptions(**kwargs)
File "C:\PROGRA~1\QGIS3~1.14\apps\Python37\lib\site-packages\osgeo\gdal.py", line 376, in TranslateOptions
new_options += ['-gcp', _strHighPrec(gcp.GCPPixel), _strHighPrec(gcp.GCPLine), _strHighPrec(gcp.GCPX), str(gcp.GCPY), _strHighPrec(gcp.GCPZ)]
AttributeError: 'float' object has no attribute 'GCPPixel'
您的问题是将什么作为
GCPs
参数传递给gDal.Translate
函数。您正在传递一个浮点值列表(元组),而该参数需要的是gdal.GCP()
对象列表因为库认为它有
gdal.GCP()
个对象,所以它试图对其中一个对象调用GCPPixel
方法,如果是这样的话,这个方法就可以工作了。但是它是一个浮点数,当然,浮点数没有GCPPixel
方法,因此会出现错误相关问题 更多 >
编程相关推荐