Extrayendo la dimensión de una variable netcdf en python.
Teniendo en cuenta un conjunto de datos dado “data”, extraído de un archivo netcdf4 que contiene una variable llamada clcalispo2. Estoy trabajando con Python y si hago:
print(data['clcalipso2'].ncattrs())
Obtengo esta salida:
clcalipso2 <class 'netcdf4._netcdf4.variable'="">
float32 clcalipso2(levStat, loc)
long_name: CALIPSO Cloud Fraction Undetected by CloudSat
units: %
standard_name: cloud_area_fraction_in_atmosphere_layer
unlimited dimensions:
current shape = (40, 153)
filling on, default _FillValue of 9.969209968386869e+36 used
Puedo extraer fácilmente el atributo del campo haciendo:
print(data['clcalipso2'].ncattrs())
lo que produce:
['long_name', 'units', 'standard_name']
Pero en realidad, estoy interesado en extraer el nombre de la dimensión de la variable, en este ejemplo: (levStat, loc). ¿Existe una manera simple de hacerlo (aparte de usar la salida como una cadena y hacer algunas manipulaciones de cadenas)?
Gracias de antemano por la ayuda.
davy.ai
Sí, hay una manera simple de extraer los nombres de las dimensiones de una variable usando el atributo
dimensions
de la variable. Así es como puedes hacerlo:Esto debería imprimir:
Esto significa que la variable
clcalipso2
tiene dos dimensiones llamadaslevStat
yloc
. Puedes usar esta información para acceder a subconjuntos de los datos a lo largo de estas dimensiones. Por ejemplo, puedes extraer todos los valores declcalipso2
para unlevStat
dado y todos losloc
usando el siguiente código:¡Espero que esto ayude!