¿Por qué usar netCDF?

Por Kiko Correoso

Primero de todo empezaremos por el principio

¿Qué es netCDF?

Es un conjunto de librerías (o bibliotecas) y un formato de datos que son:

  • auto-descriptivo ya que incluye información acerca de los datos contenidos en el fichero netCDF
  • independiente de la plataforma
  • podemos acceder a un subconjunto de datos del fichero de forma eficiente
  • permite agregar datos a un fichero ya existente sin necesidad de copiar los datos ya existentes en el fichero
  • puede ser fácilmente compartido ya que una persona puede escribir mientras varias personas pueden leer el mismo fichero.
  • puede ser archivado ya que las versiones previas siempre estarán soportadas por las nuevas versiones

Su actual versión es la 4 y permite leer los ficheros creados con versiones anteriores de netCDF, como se ha comentado anteriormente.

Además es compatible con un subconjunto de HDF5 (del que hablaremos otro día, Francesc, ¿te animas como firma invitada?) pudiendo leer gran cantidad de ficheros en formato HDF5 pero no todos. HDF5 es capaz de abrir cualquier fichero creado con netCDF-4 (que es el modelo mejorado de datos que veremos a continuación). Es decir, un fichero netCDF-4 es un fichero HDF5 pero no a la inversa.

Es, además, un estándar para varias instituciones como la Open Geospatial Consortium.

¿Cuál es el formato de un fichero netCDF?

El formato no es único, existe un modelo clásico, más sencillo, y el modelo mejorado (llamado netCDF4), más complejo y completo.

El modelo clásico consta de un cabecero, que contiene toda la información sobre las dimensiones, atributos y nombres de las variables contenidas y la parte de los datos, comprendiendo los datos de las variables de tamaño fijo, y los datos de tamaño variable, conteniendo los datos de las variables que tienen dimensión ilimitada.

El modelo mejorado (netCDF-4) permite estructuras más complejas de datos con tipos de datos definidos por el usuario, permitiendo almacenarlos de forma jerárquica mediante grupos (que serían como carpetas en un sistema de ficheros),...

Acceso a ficheros

Se puede acceder a ficheros en disco, a ficheros en red de forma eficiente mediante OPenDAP o THREDDS, se puede acceder o escribir ficheros netCDF-4 de forma paralela,...

Cómo podemos acceder o crear/modificar ficheros netCDF desde python

En python, como siempre, disponemos de múltiples opciones. Si solo queréis leer un fichero netcdf puntualmente podéis usar scipy.io y, suponiendo que scipy es un paquete que tendrás instalado, no necesitas nada más. Si vas a trabajar más a menudo con ficheros de este tipo, mi recomendación es usar netcdf4-python puesto que os resolverá la vida y además de leer os permitirá crear ficheros netcdf. Existe algún paquete más pero no los voy a citar porque creo que el anterior es el mejor con diferencia.

¿Vamos a ver un poquito de python?

Pues hoy no, que tengo otros quehaceres :-), pero voy a enlazar a artículos donde ya se ha visto como acceder a estos datos y a la documentación de netcdf4-python:

¿Y ahora qué?

Contadnos si ya lo usáis y cómo, si no lo usáis pero pensáis que os puede resultar útil, si después de usarlo habéis encontrado otras alternativas (que no sea HDF) que os resulta mejor,... Además, como siempre, podéis usar los comentarios para pedir dudas y, si podemos, las resolvemos.

Saludos.


photo

Kiko es doctor en ciencias físicas y esta especializado en física de la atmósfera, meteorología y climatología. Además de estar en las nubes es especialista en temas de energías renovables en Iberdrola. Ávido de seguir mejorando siempre está abierto a participar en nuevos proyectos y retos por lo que no dudes en contactarle si necesitas servicios especializados de Python o meteorología.

Comentarios