Estoy intentando utilizar GDAL en python para seleccionar condicionalmente bandas raster de un archivo grib en función de la hora en la que se midió la característica meteorológica (piensa en la temperatura).
Si corro GetMetadata()
en el conjunto de datos, no obtengo ninguna información.
path = r'...\ds.snow.bin'
dataset = gdal.Open(path)
dataset.GetMetadata()
{}
Sin embargo, obtengo información si ejecuto GetMetadata() en una banda específica:
dataset.GetRasterBand(1).GetMetadata()
{'GRIB_COMMENT': 'Nieve total [m]', 'GRIB_DISCIPLINE':
0(Meteorológico)', 'GRIB_ELEMENT': 'SnowAmt',
GRIB_FORECAST_SECONDS': '0 sec', 'GRIB_IDS': 'CENTER=8(US-NWSTG)
MASTER_TABLE=1 LOCAL_TABLE=0 SIGNF_REF_TIME=1(Start_of_Forecast)
REF_TIME=2019-05-29T15:00:00Z PROD_STATUS=1(Operational_test)
TYPE=1(Forecast)', 'GRIB_PDS_PDTN': '8',
GRIB_PDS_TEMPLATE_ASSEMBLED_VALUES': '1 29 2 0 0 255 1 0 1 0 0
255 -1 -2147483647 2019 5 29 18 0 0 1 0 1 2 1 6 1 0',
GRIB_PDS_TEMPLATE_NUMBERS': '1 29 2 0 0 255 1 0 0 0 1 0 0 0
0 255 129 255 255 255 255 7 227 5 29 18 0 0 1 0 0 0 0 1 2 1 0 0 0 6 1
0 0 0 0', 'GRIB_REF_TIME': ' 1559142000 sec UTC',
GRIB_SHORT_NAME': '0-SFC', 'GRIB_UNIT': '[m]', 'GRIB_VALID_TIME': '
1559152800 sec UTC'}
¿Hay alguna manera de obtener estos metadatos para todo el archivo grib a la vez para poder analizarlo y seleccionar sólo las bandas que caen dentro de un tiempo especificado?
Sé que cfgrib usando XAarray puede hacer esto, pero preferiría usar GDAL.