问题代码
前段时间写了个小程序,功能是读取工作文件夹下固定年份/月份的tiff文件,其对应年份/月份的参数地图的均值,但是报错'NoneType' object has no attribute 'GetGeoTransform'
driver = gdal.GetDriverByName("GTiff") # 创建驱动
ds = driver.Create(filename, nCols, nRows, 1, gdalType)
ds.SetGeoTransform(geotrans) # 设置影像的显示范围
ds.SetProjection(proj) # 给新建图层赋予投影信息
ds.GetRasterBand(1).SetNoDataValue(noDataValue) # 填充缺失值
ds.GetRasterBand(1).WriteArray(data) # 写入数据
ds = None
报错界面
实际上这几行代码我以前用过好几次,大概率不是这里出的问题,往其他方面找找,最后定位问题可能出现在文件存储路径上;
问题解决
WriteGTiffFile(r"E:\work\result\2010.tif", rows, cols,
average,geotransform,projection, -9999, gdal.GDT_Float32) #写入结果文件
这是我的路径设置,在E盘的"work"文件夹下的"result"文件夹,创建名为2010的tif文件,
但是,我到自己E盘下面看过了,没有叫"result"的文件夹,到这问题就简单了,新创建一个"result"文件夹,或者是修改输出路径。
总结
就出现 'NoneType' object has no attribute 'GetGeoTransform' 报错而言,大概率是文件路径存在问题,用jupyter的同志们还需要特别注意路径中的反斜杠“\”。