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)