1 votos

Metadatos Grib con GDAL en Python

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.

1voto

Glenbod Puntos 31

Creo que la respuesta a tu pregunta es "no". No puedes obtener los metadatos de todo el archivo grib "de una vez".

Sin embargo, puedes hacer un bucle sobre todas las bandas en el archivo grib y acceder a los metadatos así, lo que también te permite hacer una selección basada en los metadatos.

por ejemplo, así:

path = r"D:\path\to\somewhere.grib"

import gdal

ds = gdal.Open(path)  

for band in range(1, ds.RasterCount):

    meta = ds.GetRasterBand(band).GetMetadata()

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X