Articulo de referencia

NetCDF

application/x-netcdf"},"type code":{"wt":""},"uniform_type":{"wt":""},"conforms_to":{"wt":""},"magic":{"wt":"CDF\\001 \\211HDF\\r\\n\\032\\n"},"developer":{"wt":"[[University Co...

NetCDF ( Network Common Data Form ) es un conjunto de bibliotecas de software y formatos de datos autodescriptivos e independientes de la máquina que permiten la creación, el acceso y el intercambio de datos científicos orientados a matrices . La página principal del proyecto [ 2 ] está alojada por el programa Unidata de la University Corporation for Atmospheric Research (UCAR). También son la principal fuente de software, desarrollo de estándares y actualizaciones de NetCDF. El formato es un estándar abierto . NetCDF Classic y 64-bit Offset Format son estándares internacionales del Open Geospatial Consortium . [ 3 ]

Historia

El proyecto comenzó en 1988 y UCAR aún lo apoya activamente. El formato binario original de netCDF (lanzado en 1990, ahora conocido como "formato clásico de netCDF") todavía se usa ampliamente en todo el mundo y continúa siendo totalmente compatible con todas las versiones de netCDF. La versión 4.0 (lanzada en 2008) permitió el uso del formato de archivo de datos HDF5 . La versión 4.1 (2010) agregó soporte para el acceso de clientes C y Fortran a subconjuntos específicos de datos remotos a través de OPeNDAP . La versión 4.3.0 (2012) agregó un sistema de compilación CMake para compilaciones de Windows . La versión 4.7.0 (2019) agregó soporte para la lectura de objetos de Amazon S3 . La versión 4.8.0 (2021) agregó soporte adicional para Zarr . La versión 4.9.0 (2022) agregó soporte para la compresión Zstandard . Se planean nuevas versiones para mejorar el rendimiento, agregar funciones y corregir errores.

El formato se basó originalmente en el modelo conceptual del Formato de Datos Comunes desarrollado por la NASA , pero desde entonces ha divergido y no es compatible con él. [ 4 ] [ 5 ]

Descripción del formato

Las bibliotecas netCDF admiten varios formatos binarios diferentes para archivos netCDF:

  • El formato clásico se utilizó en la primera versión de netCDF y sigue siendo el formato predeterminado para la creación de archivos.
  • El formato de desplazamiento de 64 bits se introdujo en la versión 3.6.0 y admite tamaños de archivo y variables mayores.
  • El formato netCDF-4/HDF5 se introdujo en la versión 4.0; se trata del formato de datos HDF5, con algunas restricciones.
  • Se admite el formato HDF4 SD para acceso de solo lectura.
  • Se admite el formato CDF5, en coordinación con el proyecto parallel-netcdf.

Todos los formatos son autodescriptivos . Esto significa que incluyen una cabecera que describe la estructura del resto del archivo, en particular las matrices de datos , así como metadatos arbitrarios en forma de atributos nombre/valor . El formato es independiente de la plataforma , y ​​las bibliotecas de software se encargan de gestionar aspectos como el orden de bytes . Los datos se almacenan de forma que permiten una selección eficiente de subconjuntos.

A partir de la versión 4.0, la API netCDF [ 6 ] permite el uso del formato de datos HDF5 . Los usuarios de NetCDF pueden crear archivos HDF5 con ventajas que no ofrece el formato netCDF, como archivos mucho más grandes y múltiples dimensiones ilimitadas.

Se admite la compatibilidad total con versiones anteriores para acceder a archivos netCDF antiguos y utilizar versiones anteriores de las API de C y Fortran.

Software

Acceso a las bibliotecas

Las bibliotecas de software proporcionadas por UCAR ofrecen acceso de lectura y escritura a archivos netCDF, codificando y decodificando los arrays y metadatos necesarios. La biblioteca principal está escrita en C y proporciona una interfaz de programación de aplicaciones (API) para C, C++ y dos API para aplicaciones Fortran , una para Fortran 77 y otra para Fortran 90. Una implementación independiente, también desarrollada y mantenida por Unidata, está escrita completamente en Java , que extiende el modelo de datos principal y añade funcionalidad adicional. También hay interfaces para netCDF basadas en la biblioteca C disponibles en otros lenguajes, como R , Perl Data Language , Python , Ruby , Haskell , [ 7 ] Mathematica , MATLAB , Interactive Data Language (IDL), Julia y Octave . La especificación de las llamadas a la API es muy similar en los distintos lenguajes, salvo las inevitables diferencias de sintaxis. Las llamadas a la API de la versión 2 eran bastante diferentes de las de la versión 3, pero también son compatibles con las versiones 3 y 4 para garantizar la retrocompatibilidad. Los programadores de aplicaciones que utilizan lenguajes compatibles normalmente no tienen que preocuparse por la estructura del archivo en sí, aunque esté disponible en formatos abiertos.

Aplicaciones

Se ha desarrollado una amplia gama de software de aplicación que utiliza archivos netCDF. Estos abarcan desde utilidades de línea de comandos hasta paquetes de visualización gráfica . A continuación se enumeran algunos ejemplos, y una lista más extensa [ 8 ] se encuentra en el sitio web de UCAR.

  • Un conjunto de utilidades de línea de comandos de Unix de uso común para archivos netCDF es el conjunto de operadores NetCDF (NCO), que proporciona una gama de comandos para la manipulación y el análisis de archivos netCDF, incluyendo la concatenación básica de registros , el seccionamiento de matrices y el cálculo de promedios .
  • ncBrowse [ 9 ] es un visor genérico de archivos netCDF que incluye gráficos Java, animaciones y visualizaciones 3D para una amplia gama de convenciones de archivos netCDF.
  • ncview [ 10 ] es un explorador visual para archivos en formato netCDF. Este programa es una herramienta sencilla, rápida y con interfaz gráfica de usuario (GUI) para visualizar campos en un archivo netCDF. Permite explorar las distintas dimensiones de una matriz de datos y observar los valores de los datos sin procesar. También es posible cambiar los mapas de color, invertir los datos, etc.
  • Panoply [ 11 ] es un visor de archivos netCDF desarrollado en el Instituto Goddard de Estudios Espaciales de la NASA , enfocado en la presentación de datos georreferenciados. Está escrito en Java , por lo que es independiente de la plataforma. Si bien sus funcionalidades se superponen con las de ncBrowse y ncview, Panoply se distingue por ofrecer una amplia variedad de proyecciones cartográficas y la capacidad de trabajar con tablas de colores de diferentes escalas.
  • El lenguaje de comandos NCAR (NCL) se utiliza para analizar y visualizar datos en archivos netCDF (entre otros formatos).
  • El lenguaje de programación Python puede acceder a archivos netCDF con el módulo PyNIO [ 12 ] (que también facilita el acceso a una variedad de otros formatos de datos). Los archivos netCDF también se pueden leer con el módulo de Python netCDF4-python[ 13 ] y en un formato similar a pandasDataFrame con el módulo [ 14 ]xarray .
  • Ferret es un entorno interactivo de visualización y análisis informático diseñado para satisfacer las necesidades de oceanógrafos y meteorólogos que analizan conjuntos de datos complejos y extensos. Ferret ofrece un enfoque de análisis similar al de Mathematica; se pueden definir nuevas variables de forma interactiva mediante expresiones matemáticas que involucren las variables del conjunto de datos. Los cálculos se pueden aplicar a regiones de forma arbitraria. Se generan gráficos completamente documentados con un solo comando.
  • GrADS (Grid Analysis and Display System) [ 15 ] es una herramienta interactiva de escritorio que se utiliza para acceder, manipular y visualizar fácilmente datos de ciencias de la Tierra. GrADS se ha implementado en todo el mundo en diversos sistemas operativos de uso común y se distribuye gratuitamente a través de Internet.
  • nCDF_Browser [ 16 ] es un navegador visual de nCDF, escrito en el lenguaje de programación IDL . Las variables, los atributos y las dimensiones se pueden descargar inmediatamente a la línea de comandos de IDL para su posterior procesamiento. Todos los archivos de la biblioteca Coyote [ 17 ] necesarios para ejecutar nCDF_Browser están disponibles en el archivo zip.
  • Las versiones de ArcGIS posteriores a la 9.2 [ 18 ] admiten archivos netCDF que siguen las Convenciones de Metadatos de Clima y Pronóstico y contienen cuadrículas rectilíneas con coordenadas igualmente espaciadas. La caja de herramientas Herramientas Multidimensionales se puede usar para crear capas ráster, capas de entidades y vistas de tabla a partir de datos netCDF en ArcMap, o para convertir datos de entidades, ráster y tablas a netCDF.
  • OriginPro versión 2021b admite [ 19 ] la convención netCDF CF. Se puede realizar un promedio durante la importación para permitir el manejo de grandes conjuntos de datos en un software con interfaz gráfica de usuario.
  • La GDAL (Geospatial Data Abstraction Library) proporciona soporte [ 20 ] para el acceso de lectura y escritura a datos netCDF.
  • netCDF Explorer es un navegador gráfico multiplataforma para archivos netCDF. netCDF Explorer puede explorar archivos localmente o de forma remota, mediante OPeNDAP.
  • R admite netCDF a través de paquetes como ncdf4 [ 21 ] y RNetCDF . [ 22 ] El soporte de alto nivel con interpretación de convenciones de metadatos CF, lo que significa que se devuelven al usuario objetos compuestos como una variable de datos con sus ejes asociados, límites, sistema de referencia de coordenadas, etiquetas, atributos, etc., se proporciona a través del paquete ncdfCF . [ 23 ]
  • HDFql permite a los usuarios gestionar archivos netCDF-4/HDF5 a través de un lenguaje de alto nivel (similar a SQL) en C, C++, Java, Python, C#, Fortran y R. [ 24 ]
  • La estación de trabajo y el sistema por lotes Metview del Centro Europeo de Previsiones Meteorológicas a Medio Plazo (ECMWF) pueden procesar NetCDF junto con GRIB y BUFR .
  • OpenChrom incluye un convertidor bajo los términos de la Licencia Pública de Eclipse [ 25 ].

Usos comunes

Se utiliza habitualmente en aplicaciones de climatología , meteorología y oceanografía (por ejemplo, pronóstico del tiempo , cambio climático ) y en aplicaciones SIG ( Sistemas de Información Geográfica) .

Es un formato de entrada/salida para muchas aplicaciones SIG y para el intercambio general de datos científicos. Citando su sitio web: [ 26 ]

NetCDF (Network Common Data Form) es un conjunto de interfaces para el acceso a datos orientado a matrices y una colección de libre distribución de bibliotecas de acceso a datos para C, Fortran, C++, Java y otros lenguajes. Las bibliotecas netCDF admiten un formato independiente de la máquina para representar datos científicos. En conjunto, las interfaces, las bibliotecas y el formato permiten la creación, el acceso y el intercambio de datos científicos.

Convenciones

Las convenciones Climate and Forecast (CF) son convenciones de metadatos para datos de ciencias de la Tierra, diseñadas para facilitar el procesamiento y el intercambio de archivos creados con la interfaz de programación de aplicaciones (API) NetCDF. Estas convenciones definen metadatos que se incluyen en el mismo archivo que los datos (lo que hace que el archivo sea "autodescriptivo"), proporcionando una descripción precisa de lo que representa cada variable y de sus propiedades espaciales y temporales (incluida información sobre cuadrículas, como los límites de las celdas y los métodos de promedio). Esto permite a los usuarios de datos de diferentes fuentes determinar qué datos son comparables y facilita la creación de aplicaciones con potentes capacidades de extracción, remuestreo y visualización.

Red paralelaCDF

El Laboratorio Nacional Argonne y la Universidad Northwestern desarrollaron una extensión de netCDF para computación paralela llamada Parallel-NetCDF (o PnetCDF) . [ 27 ] Esta se basa en MPI-IO , la extensión de E/S para comunicaciones MPI . Utilizando las estructuras de datos netCDF de alto nivel, las bibliotecas Parallel-NetCDF pueden aprovechar las optimizaciones para distribuir eficientemente las aplicaciones de lectura y escritura de archivos entre múltiples procesadores. El paquete Parallel-NetCDF solo puede leer/escribir formatos clásicos y de desplazamiento de 64 bits. Parallel-NetCDF no puede leer ni escribir el formato basado en HDF5 disponible con netCDF-4.0. El paquete Parallel-NetCDF utiliza API diferentes, pero similares, en Fortran y C.

La E/S paralela en la biblioteca Unidata netCDF es compatible desde la versión 4.0 para archivos de datos HDF5. Desde la versión 4.1.1, la biblioteca Unidata NetCDF C admite E/S paralela para archivos clásicos y con desplazamiento de 64 bits mediante la biblioteca Parallel-NetCDF, pero con la API NetCDF.

Interoperabilidad de las bibliotecas C/Fortran/C++ con otros formatos.

La biblioteca netCDF para C, y las bibliotecas basadas en ella (Fortran 77 y Fortran 90, C++ y todas las bibliotecas de terceros), pueden, a partir de la versión 4.1.1, leer algunos datos en otros formatos. Se pueden leer datos en formato HDF5 , con algunas restricciones. Los datos en formato HDF4 pueden ser leídos por la biblioteca netCDF para C si se crearon utilizando la API de datos científicos (SD) de HDF4.

Modelo de datos común NetCDF-Java

La biblioteca NetCDF-Java actualmente lee los siguientes formatos de archivo y protocolos de acceso remoto:

Existen otros formatos en desarrollo. Dado que se accede a cada uno de ellos de forma transparente a través de la API de NetCDF, se dice que la biblioteca NetCDF-Java implementa un modelo de datos común para conjuntos de datos científicos.

El modelo de datos común de Java tiene tres capas, que se construyen unas sobre otras para añadir una semántica cada vez más rica:

  1. La capa de acceso a datos , también conocida como capa sintáctica, se encarga de la lectura de datos.
  2. La capa del sistema de coordenadas identifica las coordenadas de las matrices de datos. Las coordenadas son un concepto completamente general para los datos científicos; los sistemas de coordenadas de georreferenciación especializados , importantes para la comunidad de Ciencias de la Tierra, se anotan de forma especial.
  3. La capa de tipos de datos científicos identifica tipos de datos específicos, como cuadrículas, imágenes y datos puntuales, y añade métodos especializados para cada tipo de dato.

El modelo de datos de la capa de acceso a datos es una generalización del modelo de datos NetCDF-3 y prácticamente idéntico al modelo de datos NetCDF-4. La capa del sistema de coordenadas implementa y amplía los conceptos de las Convenciones de Metadatos de Clima y Pronóstico . La capa de tipos de datos científicos permite manipular los datos en el espacio de coordenadas, de forma análoga a las especificaciones del Open Geospatial Consortium . La identificación de los sistemas de coordenadas y la tipificación de datos está en desarrollo, pero los usuarios pueden incorporar sus propias clases en tiempo de ejecución para un procesamiento especializado.

Véase también

  • CGNS (Sistema de Notación General para Dinámica de Fluidos Computacional)
  • EAS3 (Sistema de publicación única)
  • FITS (Sistema de transporte de imágenes flexible)
  • Archivos binarios de Tecplot
  • XDMF (Formato de modelo de datos extensible)
  • XMDF (Formato de datos de modelo extensible)

Referencias

  1. "Notas de la versión" . 7 de febrero de 2025.
  2. "Página principal de NetCDF" . Unidata/UCAR. Archivado del original el 6 de diciembre de 2017. Consultado el 5 de diciembre de 2017 .
  3. "Estándar OGC netCDF Clásico y Desplazamiento de 64 bits" . Opengeospatial.org. Archivado del original el 30/11/2017 . Consultado el 05/12/2017 .
  4. "Antecedentes - Guía del usuario de NetCDF" . Unidata.ucar.edu. Archivado del original el 2 de noviembre de 2018. Consultado el 27 de noviembre de 2013 .
  5. "CDF - Preguntas frecuentes" . NASA . Archivado del original el 19 de junio de 2018. Consultado el 2 de noviembre de 2018 .
  6. "Versión 4.0 de la API netCDF" . Unidata.ucar.edu. Archivado del original el 17 de junio de 2015. Consultado el 27 de noviembre de 2013 .
  7. "hnetcdf: Biblioteca NetCDF de Haskell" . hackage.haskell.org. 10 de julio de 2014. Archivado del original el 9 de julio de 2014. Consultado el 10 de julio de 2014 .
  8. "Software para manipular o mostrar datos NetCDF" . Unidata.ucar.edu . Consultado el 23 de octubre de 2020 .
  9. "ncBrowse" . Epic.noaa.gov. Archivado del original el 3 de diciembre de 2013. Consultado el 27 de noviembre de 2013 .
  10. "ncview" . Meteora.ucsd.edu. Archivado del original el 12 de febrero de 2014. Consultado el 27 de noviembre de 2013 .
  11. "Panoply" . Giss.nasa.gov . Instituto Goddard de Estudios Espaciales . Archivado del original el 20 de junio de 2014. Consultado el 27 de noviembre de 2013 .
  12. "PyNIO" . Pyngl.ucar.edu. 28-07-2011. Archivado del original el 25-11-2013 . Consultado el 27-11-2013 .
  13. "netCDF4" . Archivado del original el 29/11/2017 . Consultado el 04/12/2017 .
  14. "xarray: Matrices y conjuntos de datos etiquetados ND en Python" . Archivado del original el 1 de septiembre de 2016. Consultado el 7 de septiembre de 2016 .
  15. "Página principal de GrADS" . Archivado del original el 13 de febrero de 2016. Consultado el 10 de abril de 2018 .
  16. "Guía de Coyote para la programación IDL" . Dfanning.com. 23 de noviembre de 2013. Archivado del original el 23 de septiembre de 2015. Consultado el 27 de noviembre de 2013 .
  17. "Biblioteca Coyote" . Dfanning.com. 23 de noviembre de 2013. Archivado del original el 23 de septiembre de 2015. Consultado el 27 de noviembre de 2013 .
  18. "ArcGIS versión 9.2" . Esri.com. Archivado del original el 22/11/2013 . Consultado el 27/11/2013 .
  19. "Importación y procesamiento de NetCDF" . originlab.com . Consultado el 11 de mayo de 2021 .
  20. "Formato de datos comunes de red NetCDF" . Gdal.org. Archivado del original el 6 de junio de 2013. Consultado el 27 de noviembre de 2013 .
  21. David Pierce (2014). ncdf4: Interfaz para archivos de datos en formato Unidata netCDF (versión 4 o anterior). Paquete R versión 1.13. https://cran.r-project.org/package=ncdf4
  22. Pavel Michna y con contribuciones de Milton Woods (2015). RNetCDF: Interfaz para conjuntos de datos NetCDF. Paquete R versión 1.7-3. https://cran.r-project.org/package=RNetCDF
  23. https://cran.r-project.org/package=ncdfCF
  24. http://www.hdfql.com
  25. OpenChrom: un software de código abierto multiplataforma para el análisis espectrométrico de masas de datos cromatográficos , Philip Wenig, Juergen Odermatt, BMC Bioinformatics ; 2010 ; doi : 10.1186/1471-2105-11-405
  26. "¿Qué es netCDF?" . Centro de Programas Unidata. Archivado del original el 15 de marzo de 2013. Consultado el 26 de noviembre de 2012 .
  27. "parallel-netcdf" . Mcs.anl.gov. 17 de noviembre de 2013. Archivado del original el 1 de diciembre de 2008. Consultado el 27 de noviembre de 2013 .
  28. "DOCUMENTACIÓN DEL FORMATO BUFR" . Archivado del original el 9 de octubre de 2007. Consultado el 2 de febrero de 2008 .
  29. Archivado el 5 de septiembre de 2008 en Wayback Machine .
  30. Archivado el 21 de mayo de 2008 en Wayback Machine .
  31. "Formato de satélite GINI" . Weather.unisys.com. Archivado del original el 2 de diciembre de 2013. Consultado el 27 de noviembre de 2013 .
  32. "Unidata | GEMPAK" . Unidata.ucar.edu. Archivado del original el 4 de noviembre de 2013. Consultado el 27 de noviembre de 2013 .
  33. Archivado el 12 de febrero de 2008 en Wayback Machine .
  34. "NetCDF" . Unidata.ucar.edu. Archivado del original el 29/11/2013 . Consultado el 27/11/2013 .
  35. "NetCDF-4" . Unidata.ucar.edu. Archivado del original el 17 de junio de 2015. Consultado el 27 de noviembre de 2013 .
  36. Steve Ansari. "NCDC: Recursos de radar" . Ncdc.noaa.gov. Archivado del original el 2 de diciembre de 2013. Consultado el 27 de noviembre de 2013 .
  • Sitio web oficialEdita esto en Wikidata
    • Guía del usuario de NetCDF : describe el formato del archivo.
  • "Introducción a la visualización distribuida"La sección 4.2 contiene una comparación de CDF, HDF y netCDF.
  • Animación de datos NetCDF en ArcMap
  • Lista de utilidades de software que utilizan archivos netCDF