Articulo de referencia

NetCDF

NetCDF ( Network Common Data Form ) es un conjunto de bibliotecas de software y formatos de datos independientes de la máquina que se describen a sí mismos y que respaldan la cr...

NetCDF ( Network Common Data Form ) es un conjunto de bibliotecas de software y formatos de datos independientes de la máquina que se describen a sí mismos y que respaldan la creación, el acceso y el intercambio de datos científicos orientados a matrices . La página de inicio del proyecto [2] está alojada por el programa Unidata en la Corporación Universitaria para la Investigación Atmosférica (UCAR). También son la fuente principal de software netCDF, desarrollo de estándares, actualizaciones, etc. El formato es un estándar abierto . NetCDF Classic y 64-bit Offset Format son un estándar internacional del Open Geospatial Consortium . [3]

Historia

El proyecto comenzó en 1988 y todavía cuenta con el apoyo activo de UCAR. El formato binario original netCDF (publicado en 1990, ahora conocido como "formato clásico 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 (publicada en 2008) permitió el uso del formato de archivo de datos HDF5 . La versión 4.1 (2010) agregó compatibilidad con 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ó compatibilidad con la lectura de objetos de Amazon S3 . La versión 4.8.0 (2021) agregó más compatibilidad con Zarr . La versión 4.9.0 (2022) agregó compatibilidad con la compresión Zstandard . Se planean más versiones para mejorar el rendimiento, agregar funciones y corregir errores.

El formato se basó originalmente en el modelo conceptual del Formato de Datos Común desarrollado por la NASA , pero desde entonces se ha desviado 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 archivos y variables más grandes.
  • El formato netCDF-4/HDF5 se introdujo en la versión 4.0; es el formato de datos HDF5, con algunas restricciones.
  • El formato SD HDF4 es compatible con acceso de solo lectura.
  • Se admite el formato CDF5, en coordinación con el proyecto paralelo-netcdf.

Todos los formatos son " autodescriptivos ". Esto significa que hay un encabezado que describe el diseño del resto del archivo, en particular las matrices de datos , así como metadatos arbitrarios del archivo en forma de atributos de nombre/valor . El formato es independiente de la plataforma , y ​​las cuestiones como el orden de bytes se abordan en las bibliotecas de software . Los datos se almacenan de una manera que permite la creación de subconjuntos de manera eficiente.

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

Se admite compatibilidad total con versiones anteriores en el acceso a archivos netCDF antiguos y en el uso de versiones anteriores de las API de C y Fortran.

Software

Acceso a bibliotecas

Las bibliotecas de software suministradas por UCAR proporcionan acceso de lectura y escritura a archivos netCDF, codificando y decodificando las matrices 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 en 100% Java , que extiende el modelo de datos principal y agrega funcionalidad adicional. Las interfaces para netCDF basadas en la biblioteca C también están disponibles en otros lenguajes, incluidos R ( paquetes ncdf , [7] ncvar y RNetCDF [8] ), Perl Data Language , Python , Ruby , Haskell , [9] Mathematica , MATLAB , Interactive Data Language (IDL), Julia y Octave . La especificación de las llamadas API es muy similar en los diferentes lenguajes, aparte de las inevitables diferencias de sintaxis. Las llamadas a la API de la versión 2 eran bastante diferentes a las de la versión 3, pero también son compatibles con las versiones 3 y 4 por compatibilidad con versiones anteriores. Los programadores de aplicaciones que utilizan lenguajes compatibles normalmente no necesitan preocuparse por la estructura del archivo en sí, aunque esté disponible en formatos abiertos.

Aplicaciones

Se ha escrito una amplia gama de software de aplicación que utiliza archivos netCDF. Estos van desde utilidades de línea de comandos hasta paquetes de visualización gráfica . A continuación se enumeran algunos de ellos y en el sitio web de UCAR se puede encontrar una lista más extensa [10] .

  • Un conjunto de utilidades de línea de comandos de Unix comúnmente utilizado para archivos netCDF es la suite NetCDF Operators (NCO), que proporciona una gama de comandos para la manipulación y el análisis de archivos netCDF, incluyendo concatenación básica de registros , corte de matrices y promedios .
  • ncBrowse [11] es un visor de archivos netCDF genérico que incluye gráficos Java, animaciones y visualizaciones 3D para una amplia gama de convenciones de archivos netCDF.
  • ncview [12] es un navegador visual para archivos en formato netCDF. Este programa es una herramienta sencilla, rápida y basada en interfaz gráfica de usuario para visualizar campos en un archivo netCDF. Se puede navegar por 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 colores, invertir los datos, etc.
  • Panoply [13] es un visualizador de archivos netCDF desarrollado en el Instituto Goddard de Estudios Espaciales de la NASA que se centra en la presentación de datos en cuadrículas geográficas. Está escrito en Java y, por lo tanto, es independiente de la plataforma. Aunque su conjunto de características se superpone con ncBrowse y ncview, Panoply se distingue por ofrecer una amplia variedad de proyecciones de mapas 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 [14] (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 Python netCDF4-python[ 15] y en un formato similar a pandasDataFrame con el módulo [16]xarray .
  • Ferret es un entorno interactivo de análisis y visualización por ordenador diseñado para satisfacer las necesidades de los oceanógrafos y meteorólogos que analizan conjuntos de datos en cuadrícula complejos y de gran tamaño. Ferret ofrece un enfoque de análisis similar al de Mathematica; se pueden definir nuevas variables de forma interactiva como expresiones matemáticas que involucran variables de conjuntos de datos. Se pueden aplicar cálculos sobre regiones de formas arbitrarias. Se generan gráficos completamente documentados con un solo comando.
  • GrADS (Grid Analysis and Display System) [17] es una herramienta de escritorio interactiva 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 una variedad de sistemas operativos de uso común y se distribuye de forma gratuita a través de Internet.
  • nCDF_Browser [18] 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 Coyote Library [19] necesarios para ejecutar nCDF_Browser están disponibles en el archivo zip.
  • Las versiones de ArcGIS posteriores a la 9.2 [20] admiten archivos netCDF que siguen las convenciones de metadatos de clima y pronóstico y contienen cuadrículas rectilíneas con coordenadas espaciadas de manera uniforme. La caja de herramientas Herramientas multidimensionales se puede utilizar para crear capas ráster, capas de entidades y vistas de tabla a partir de datos netCDF en ArcMap, o convertir datos de entidades, ráster y de tabla a netCDF.
  • La versión 2021b de OriginPro es compatible con la convención CF [21] netCDF . 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 (biblioteca de abstracción de datos geoespaciales) proporciona soporte [22] para acceso de lectura y escritura a datos netCDF.
  • netCDF Explorer es un navegador gráfico multiplataforma para archivos netCDF. netCDF Explorer puede explorar archivos de forma local o remota, mediante OPeNDAP
  • R admite netCDF a través de paquetes como ncdf4 (incluido soporte HDF5) [23] o RNetCDF (sin soporte HDF5). [24]
  • HDFql permite a los usuarios administrar 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. [25]
  • La estación de trabajo Metview y el sistema por lotes del Centro Europeo de Previsiones Meteorológicas a Medio Plazo (ECMWF) pueden gestionar NetCDF junto con GRIB y BUFR .
  • OpenChrom incluye un convertidor bajo los términos de la Licencia Pública Eclipse [26]

Usos comunes

Se utiliza comúnmente en aplicaciones de climatología , meteorología y oceanografía (por ejemplo, predicción del tiempo , cambio climático ) y aplicaciones SIG .

Se trata de un formato de entrada/salida para muchas aplicaciones SIG y para el intercambio de datos científicos en general. Para citar su sitio: [27]

"NetCDF (Network Common Data Form) es un conjunto de interfaces para el acceso a datos orientados 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 respaldan la creación, el acceso y el uso compartido de datos científicos".

Convenciones

Las convenciones de Clima y Pronóstico (CF) son convenciones de metadatos para datos de ciencias de la tierra, destinadas a promover el procesamiento y el intercambio de archivos creados con la Interfaz de Programación de Aplicaciones (API) NetCDF. Las convenciones definen metadatos que se incluyen en el mismo archivo que los datos (lo que hace que el archivo sea "autodescriptivo"), que brindan una descripción definitiva de lo que representan los datos en cada variable y de las propiedades espaciales y temporales de los datos (incluida información sobre cuadrículas, como límites de celdas de cuadrícula y métodos de promediado de celdas). Esto permite a los usuarios de datos de diferentes fuentes decidir qué datos son comparables y permite crear aplicaciones con potentes capacidades de extracción, recuadriculado y visualización.

CDF de red paralela

El Laboratorio Nacional Argonne y la Universidad Northwestern han desarrollado una extensión de netCDF para computación paralela llamada Parallel-NetCDF (o PnetCDF) . [28] Esta extensión se basa en MPI-IO , la extensión de E/S para comunicaciones MPI . Utilizando las estructuras de datos de alto nivel de netCDF, las bibliotecas Parallel-NetCDF pueden hacer uso de optimizaciones para distribuir eficientemente las aplicaciones de lectura y escritura de archivos entre múltiples procesadores. El paquete Parallel-NetCDF puede leer/escribir solo 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 biblioteca NetCDF de Unidata admite E/S paralelas desde la versión 4.0 para archivos de datos HDF5. Desde la versión 4.1.1, la biblioteca NetCDF C de Unidata admite E/S paralelas para archivos de desplazamiento clásicos y de 64 bits mediante la biblioteca Parallel-NetCDF, pero con la API NetCDF.

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

La biblioteca C netCDF 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 de datos. Los datos en formato HDF5 se pueden leer, con algunas restricciones. Los datos en formato HDF4 se pueden leer con la biblioteca C netCDF si se crean utilizando la API de datos científicos (SD) HDF4.

Modelo de datos común NetCDF-Java

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

  • Documentación del formato BUFR [29] (en desarrollo)
  • CINRAD nivel II [30] (formato de radar chino)
  • DMSP [31] ( Programa de Satélites Meteorológicos de Defensa )
  • Formato de archivo de radar DORADE [32]
  • Formato de imagen GINI [33] ( ingesta GOES e interfaz NOAA PORT)
  • Datos en cuadrícula de GEMPAK [34]
  • GRIB versión 1 y versión 2 (trabajo en curso en las tablas)
  • GTOPO [35] Conjunto de datos de elevación de 30 segundos ( USGS )
  • Formato de datos jerárquico (HDF4, HDF-EOS2, HDF5, HDF-EOS5)
  • NetCDF [36] (formato clásico y grande)
  • NetCDF-4 [37] (construido sobre HDF5 )
  • Radar NEXRAD [38] nivel 2 y nivel 3.

Hay otros formatos en desarrollo. Como se accede a cada uno de ellos de forma transparente a través de la API 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 una sobre otra para agregar una semántica cada vez más rica:

  1. La capa de acceso a datos , también conocida como capa sintáctica, maneja 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 las ciencias de la Tierra, están especialmente anotados.
  3. La capa de tipo de datos científicos identifica tipos específicos de datos, como cuadrículas, imágenes y datos de puntos, y agrega métodos especializados para cada tipo de datos.

El modelo de datos de la capa de acceso a datos es una generalización del modelo de datos NetCDF-3 y es básicamente el mismo que el modelo de datos NetCDF-4. La capa del sistema de coordenadas implementa y extiende los conceptos de las Convenciones de metadatos climáticos y de pronóstico . La capa de tipo de datos científicos permite manipular los datos en el espacio de coordenadas, de manera 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 curso, pero los usuarios pueden conectar sus propias clases en tiempo de ejecución para un procesamiento especializado.

Véase también

  • CGNS (Sistema de notación general de dinámica de fluidos computacional)
  • EAS3 (Sistema de una sola salida)
  • 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. ^ "NetCDF 4.9.2". 17 de marzo de 2023.
  2. ^ "Página de inicio de NetCDF". Unidata/UCAR. Archivado desde el original el 6 de diciembre de 2017. Consultado el 5 de diciembre de 2017 .
  3. ^ "Estándar OGC netCDF Classic y desplazamiento de 64 bits". Opengeospatial.org. Archivado desde el original el 2017-11-30 . Consultado el 2017-12-05 .
  4. ^ "Antecedentes - Guía del usuario de NetCDF". Unidata.ucar.edu . Consultado el 27 de noviembre de 2013 .
  5. ^ "CDF - Preguntas frecuentes". NASA . Archivado desde el original el 19 de junio de 2018 . Consultado el 2 de noviembre de 2018 .
  6. ^ "Versión 4.0 de la API de netCDF". Unidata.ucar.edu. Archivado desde el original el 17 de junio de 2015. Consultado el 27 de noviembre de 2013 .
  7. ^ "ncdf". Cirrus.ucsd.edu. 6 de agosto de 2013. Archivado desde el original el 3 de diciembre de 2013. Consultado el 27 de noviembre de 2013 .
  8. ^ "Rnetcdf". Cran.r-project.org. 19 de julio de 2012. Archivado desde el original el 2 de diciembre de 2013. Consultado el 27 de noviembre de 2013 .
  9. ^ "hnetcdf: biblioteca NetCDF de Haskell". hackage.haskell.org. 10 de julio de 2014. Archivado desde el original el 9 de julio de 2014. Consultado el 10 de julio de 2014 .
  10. ^ "Software para manipular o visualizar datos NetCDF". Unidata.ucar.edu . Consultado el 23 de octubre de 2020 .
  11. ^ "ncBrowse". Epic.noaa.gov. Archivado desde el original el 2013-12-03 . Consultado el 2013-11-27 .
  12. ^ "ncview". Meteora.ucsd.edu. Archivado desde el original el 12 de febrero de 2014. Consultado el 27 de noviembre de 2013 .
  13. ^ "Panoplia". Giss.nasa.gov . Instituto Goddard de Estudios Espaciales . Archivado desde el original el 20 de junio de 2014 . Consultado el 27 de noviembre de 2013 .
  14. ^ "PyNIO". Pyngl.ucar.edu. 28 de julio de 2011. Archivado desde el original el 25 de noviembre de 2013. Consultado el 27 de noviembre de 2013 .
  15. ^ "netCDF4". Archivado desde el original el 29 de noviembre de 2017. Consultado el 4 de diciembre de 2017 .
  16. ^ "xarray: matrices y conjuntos de datos etiquetados con ND en Python". Archivado desde el original el 1 de septiembre de 2016. Consultado el 7 de septiembre de 2016 .
  17. ^ "Página de inicio de GrADS". Archivado desde el original el 13 de febrero de 2016. Consultado el 10 de abril de 2018 .
  18. ^ "Guía de programación IDL para Coyote". Dfanning.com. 23 de noviembre de 2013. Archivado desde el original el 23 de septiembre de 2015. Consultado el 27 de noviembre de 2013 .
  19. ^ "Coyote Library". Dfanning.com. 23 de noviembre de 2013. Archivado desde el original el 23 de septiembre de 2015. Consultado el 27 de noviembre de 2013 .
  20. ^ "Versión 9.2 de ArcGIS". Esri.com. Archivado desde el original el 22 de noviembre de 2013. Consultado el 27 de noviembre de 2013 .
  21. ^ "Importación y procesamiento de NetCDF". originlab.com . Consultado el 11 de mayo de 2021 .
  22. ^ "Formulario de datos comunes de la red NetCDF". Gdal.org. Archivado desde el original el 6 de junio de 2013. Consultado el 27 de noviembre de 2013 .
  23. ^ David Pierce (2014). ncdf4: Interfaz para archivos de datos en formato Unidata netCDF (versión 4 o anterior). Versión 1.13 del paquete R. https://cran.r-project.org/package=ncdf4
  24. ^ Pavel Michna y con contribuciones de Milton Woods (2015). RNetCDF: Interfaz para conjuntos de datos NetCDF. Versión del paquete R 1.7-3. https://cran.r-project.org/package=RNetCDF
  25. ^ http://www.hdfql.com
  26. ^ 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
  27. ^ "¿Qué es netCDF?". Centro de programas Unidata. Archivado desde el original el 15 de marzo de 2013. Consultado el 26 de noviembre de 2012 .
  28. ^ "parallel-netcdf". Mcs.anl.gov. 17 de noviembre de 2013. Archivado desde el original el 1 de diciembre de 2008. Consultado el 27 de noviembre de 2013 .
  29. ^ "DOCUMENTACIÓN EN FORMATO BUFR". Archivado desde el original el 9 de octubre de 2007 . Consultado el 2 de febrero de 2008 .
  30. ^ [1] Archivado el 5 de septiembre de 2008 en Wayback Machine.
  31. ^ [2] Archivado el 14 de diciembre de 2005 en Wayback Machine .
  32. ^ [3] Archivado el 21 de mayo de 2008 en Wayback Machine .
  33. ^ "Formato satelital GINI". Weather.unisys.com. Archivado desde el original el 2013-12-02 . Consultado el 2013-11-27 .
  34. ^ "Unidata | GEMPAK". Unidata.ucar.edu. Archivado desde el original el 4 de noviembre de 2013. Consultado el 27 de noviembre de 2013 .
  35. ^ [4] Archivado el 12 de febrero de 2008 en Wayback Machine .
  36. ^ "NetCDF". Unidata.ucar.edu. Archivado desde el original el 29 de noviembre de 2013. Consultado el 27 de noviembre de 2013 .
  37. ^ "NetCDF-4". Unidata.ucar.edu. Archivado desde el original el 17 de junio de 2015. Consultado el 27 de noviembre de 2013 .
  38. ^ Steve Ansari. "NCDC: Recursos de radar". Ncdc.noaa.gov. Archivado desde el original el 2013-12-02 . Consultado el 2013-11-27 .
  • Sitio web oficial
    • Guía del usuario de NetCDF: describe el formato de archivo
  • "Una 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
Obtenido de "https://es.wikipedia.org/w/index.php?title=NetCDF&oldid=1250307970"