问题遇到的现象和发生背景
在利用python进行图像处理的时候,定义了函数,在运用时出现了错误
问题相关代码,请勿粘贴截图
def write(self, image, file_name, bands, format='TIFF'):
ds = gdal.Open(self.band_file_name[0])
projection = ds.GetProjection() ###栅格数据的投影
geotransform = ds.GetGeoTransform() ###获取图像中任意一点地理坐标
x_size = ds.RasterXSize ##宽度
y_size = ds.RasterYSize ##
del ds
band_count = bands
dtype = gdal.GDT_Float32 ##返回32位浮点数值
driver = gdal.GetDriverByName(format) ##读取某一类型的数据,需要先载入数据驱动,初始化一个对象
new_ds = driver.Create(file_name, x_size, y_size, band_count, dtype) ##创建空文件,并确定开辟多大内存;每个像素都有一个对应的值,这个值得类型用数据类型指定。这里的数据类型是gdal数据类型
new_ds.SetGeoTransform(geotransform) #写入仿射变换参数,(左上角x坐标,东西方向上图像的分辨率,地图的旋转角度,左上角y坐标,地图的旋转角度,南北方向上地图的分辨率)
new_ds.SetProjection(projection) #写入投影信息,
for band in range(self.bands):
new_ds.GetRasterBand(band + 1).WriteArray(image[:, :, band])
new_ds.FlushCache() #用FlushCache()把缓存数据写入磁盘
del new_ds
reader.write(cali_image, file_path, reader.bands)
运行结果及报错内容
Traceback (most recent call last):
File "D:/PyCharm/pythonProject1/ENVI_practice/yanshi.py", line 100, in <module>
reader.write(cali_image, file_path, reader.bands, format='dat')
File "D:/PyCharm/pythonProject1/ENVI_practice/yanshi.py", line 53, in write
new_ds = driver.Create(file_name, x_size, y_size, band_count, dtype)
AttributeError: 'NoneType' object has no attribute 'Create'