python gdal неправильно обрабатывает файл grib в CENTOS linux

Я пытаюсь использовать pythongdal для обработки файла grib2 в файл geotiff на основе следующего примера:

https://geoexamples.com/d3-raster-tools-docs/code_samples/vardah.html

на основе этого у меня есть следующий код:

      import gdal
import osr
ds = gdal.Open(r"/home/test/gfs.t12z.sfluxgrbf000.grib2",1)
gph = ds.GetRasterBand(84).ReadAsArray()
press = ds.GetRasterBand(54).ReadAsArray() / 100
temp = ds.GetRasterBand(52).ReadAsArray()
u = ds.GetRasterBand(50).ReadAsArray()
v = ds.GetRasterBand(51).ReadAsArray()

corr_press = press * (1 - (0.0065*gph/(0.0065*gph + temp  + 273.15)))**-5.257

driver = gdal.GetDriverByName('GTiff')
outRaster = driver.Create("/home/test/vardah2.tiff",     ds.RasterXSize,     ds.RasterYSize, 4, gdal.GDT_Float32)
outRaster.SetGeoTransform(ds.GetGeoTransform())

outband = outRaster.GetRasterBand(1)
outband.WriteArray(corr_press)
outband.SetMetadata({'name': 'press'})

outRasterSRS = osr.SpatialReference()
outRasterSRS.ImportFromEPSG(4326)
outRaster.SetProjection(outRasterSRS.ExportToWkt())
outband.FlushCache()

Я пытаюсь сделать это на Centos 7, и когда я запускаю программу, я получаю следующую ошибку:

      ERROR 6: The GRIB driver does not support update access to existing datasets.

Traceback (most recent call last):
  File "ficky.py", line 4, in <module>
    gph = ds.GetRasterBand(84).ReadAsArray()
 AttributeError: 'NoneType' object has no attribute 'GetRasterBand'

Как устранить эту ошибку, чтобы успешно запустить этот скрипт на интерфейсе Centos?

1 ответ

Изменять

      ds = gdal.Open(r"/home/test/gfs.t12z.sfluxgrbf000.grib2",1)

к

      ds = gdal.Open("/home/test/gfs.t12z.sfluxgrbf000.grib2")

или даже лучше

      ds = gdal.Open("/home/test/gfs.t12z.sfluxgrbf000.grib2", GA_ReadOnly)
Другие вопросы по тегам