stringtranslate.com

NetCDF

NetCDF ( Network Common Data Form ) — это набор программных библиотек и самоописываемых, машинно-независимых форматов данных, которые поддерживают создание, доступ и совместное использование массивно-ориентированных научных данных. Домашняя страница проекта [2] размещена программой Unidata в University Corporation for Atmospheric Research (UCAR). Они также являются главным источником программного обеспечения netCDF, разработки стандартов, обновлений и т. д. Формат является открытым стандартом . NetCDF Classic и 64-битный Offset Format являются международным стандартом Open Geospatial Consortium . [3]

Проект стартовал в 1988 году и до сих пор активно поддерживается UCAR. Оригинальный двоичный формат netCDF (выпущенный в 1990 году, теперь известный как «классический формат netCDF») до сих пор широко используется во всем мире и продолжает полностью поддерживаться во всех выпусках netCDF. Версия 4.0 (выпущенная в 2008 году) позволила использовать формат файла данных HDF5 . Версия 4.1 (2010) добавила поддержку клиентского доступа C и Fortran к указанным подмножествам удаленных данных через OPeNDAP . Версия 4.3.0 (2012) добавила систему сборки CMake для сборок Windows . Версия 4.7.0 (2019) добавила поддержку чтения объектов Amazon S3 . Версия 4.8.0 (2021) добавила дополнительную поддержку Zarr . Версия 4.9.0 (2022) добавила поддержку сжатия zstandard. Планируются дальнейшие выпуски для улучшения производительности, добавления функций и исправления ошибок.

История

Первоначально формат был основан на концептуальной модели Common Data Format, разработанной NASA , но с тех пор отклонился и несовместим с ней. [4] [5]

Описание формата

Библиотеки netCDF поддерживают несколько различных двоичных форматов для файлов netCDF:

Все форматы являются « самоописываемыми ». Это означает, что есть заголовок , который описывает структуру остальной части файла, в частности массивы данных , а также произвольные метаданные файла в форме атрибутов имя/значение . Формат не зависит от платформы , а такие проблемы, как порядок байтов, решаются в библиотеках программного обеспечения . Данные хранятся таким образом, что позволяют эффективное подмножество.

Начиная с версии 4.0, API netCDF [6] позволяет использовать формат данных HDF5 . Пользователи NetCDF могут создавать файлы HDF5 с преимуществами, недоступными в формате netCDF, такими как гораздо большие файлы и несколько неограниченных измерений.

Поддерживается полная обратная совместимость при доступе к старым файлам netCDF и использовании предыдущих версий API C и Fortran.

Программное обеспечение

Доступ к библиотекам

Библиотеки программного обеспечения, предоставляемые UCAR, обеспечивают доступ для чтения и записи к файлам netCDF, кодируя и декодируя необходимые массивы и метаданные. Основная библиотека написана на языке C и предоставляет API для C, C++ и два API для приложений Fortran , один для Fortran 77 и один для Fortran 90. Независимая реализация, также разработанная и поддерживаемая Unidata, написана на 100% Java , что расширяет основную модель данных и добавляет дополнительную функциональность. Интерфейсы к netCDF на основе библиотеки C также доступны в других языках, включая R ( пакеты ncdf , [7] ncvar и RNetCDF [8] ), Perl , Python , Ruby , Haskell , [9] Mathematica , MATLAB , IDL , Julia и Octave . Спецификация вызовов API очень похожа на разных языках, за исключением неизбежных различий в синтаксисе. Вызовы API для версии 2 довольно сильно отличались от вызовов в версии 3, но также поддерживаются версиями 3 и 4 для обратной совместимости. Программистам приложений, использующим поддерживаемые языки, обычно не нужно беспокоиться о самой структуре файла, даже если она доступна в виде открытых форматов.

Приложения

Написан широкий спектр прикладного программного обеспечения, использующего файлы netCDF. Они варьируются от утилит командной строки до пакетов графической визуализации . Некоторые из них перечислены ниже, а более длинный список [10] находится на веб-сайте UCAR.

Распространенное использование

Он широко используется в климатологии , метеорологии и океанографии (например, прогнозирование погоды , изменение климата ), а также в ГИС- приложениях.

Это формат ввода/вывода для многих приложений ГИС и для общего обмена научными данными. Цитата с их сайта: [26]

«NetCDF (сетевая общая форма данных) — это набор интерфейсов для доступа к данным, ориентированным на массивы, и свободно распространяемая коллекция библиотек доступа к данным для C, Fortran, C++, Java и других языков. Библиотеки netCDF поддерживают машинно-независимый формат представления научных данных. Вместе интерфейсы, библиотеки и формат поддерживают создание, доступ и совместное использование научных данных».

Конвенции

Соглашения Climate and Forecast (CF) — это соглашения о метаданных для данных по наукам о Земле, призванные содействовать обработке и обмену файлами, созданными с помощью NetCDF Application Programmer Interface (API). Соглашения определяют метаданные, которые включены в тот же файл, что и данные (таким образом, делая файл «самоописывающим»), которые предоставляют окончательное описание того, что представляют данные в каждой переменной, а также пространственных и временных свойств данных (включая информацию о сетках, такую ​​как границы ячеек сетки и методы усреднения ячеек). Это позволяет пользователям данных из разных источников решать, какие данные сопоставимы, и позволяет создавать приложения с мощными возможностями извлечения, пересчета и отображения.

Parallel-NetCDF

Расширение netCDF для параллельных вычислений под названием Parallel-NetCDF (или PnetCDF) было разработано Аргоннской национальной лабораторией и Северо-Западным университетом . [27] Оно построено на основе MPI-IO , расширения ввода-вывода для коммуникаций MPI . Используя высокоуровневые структуры данных netCDF, библиотеки Parallel-NetCDF могут использовать оптимизации для эффективного распределения приложений чтения и записи файлов между несколькими процессорами. Пакет Parallel-NetCDF может читать/писать только классические и 64-битные форматы смещения. Parallel-NetCDF не может читать или записывать формат на основе HDF5, доступный в netCDF-4.0. Пакет Parallel-NetCDF использует разные, но похожие API в Fortran и C.

Параллельный ввод-вывод в библиотеке Unidata netCDF поддерживается с версии 4.0 для файлов данных HDF5. Начиная с версии 4.1.1 библиотека Unidata NetCDF C поддерживает параллельный ввод-вывод для классических и 64-битных файлов смещения с использованием библиотеки Parallel-NetCDF, но с API NetCDF.

Взаимодействие библиотек C/Fortran/C++ с другими форматами

Библиотека netCDF C и библиотеки на ее основе (Fortran 77 и Fortran 90, C++ и все сторонние библиотеки) могут, начиная с версии 4.1.1, читать некоторые данные в других форматах данных. Данные в формате HDF5 могут читаться с некоторыми ограничениями. Данные в формате HDF4 могут читаться библиотекой netCDF C, если они созданы с использованием API HDF4 Scientific Data (SD).

Общая модель данных NetCDF-Java

Библиотека NetCDF-Java в настоящее время считывает следующие форматы файлов и протоколы удаленного доступа:

В разработке находится ряд других форматов. Поскольку каждый из них доступен прозрачно через API NetCDF, библиотека NetCDF-Java, как говорят, реализует общую модель данных для научных наборов данных.

Общая модель данных Java состоит из трех слоев, которые надстраиваются друг над другом, последовательно добавляя более богатую семантику:

  1. Уровень доступа к данным , также известный как синтаксический уровень, обрабатывает чтение данных.
  2. Слой системы координат определяет координаты массивов данных. Координаты являются совершенно общей концепцией для научных данных; специализированные системы координат геореференции , важные для сообщества наук о Земле, специально аннотируются.
  3. Слой научных типов данных определяет конкретные типы данных, такие как сетки, изображения и точечные данные, а также добавляет специализированные методы для каждого типа данных.

Модель данных уровня доступа к данным является обобщением модели данных NetCDF-3 и по существу совпадает с моделью данных NetCDF-4. Уровень системы координат реализует и расширяет концепции конвенций Climate and Forecast Metadata Conventions . Уровень типа научных данных позволяет манипулировать данными в координатном пространстве, аналогично спецификациям Open Geospatial Consortium . Идентификация систем координат и типизация данных продолжаются, но пользователи могут подключать собственные классы во время выполнения для специализированной обработки.

Смотрите также

Ссылки

  1. ^ "NetCDF 4.9.2". 17 марта 2023 г.
  2. ^ "Домашняя страница NetCDF". Unidata/UCAR. Архивировано из оригинала 2017-12-06 . Получено 2017-12-05 .
  3. ^ "OGC standard netCDF Classic и 64-битное смещение". Opengeospatial.org. Архивировано из оригинала 2017-11-30 . Получено 2017-12-05 .
  4. ^ "Предыстория - Руководство пользователя NetCDF". Unidata.ucar.edu . Получено 27.11.2013 .
  5. ^ "CDF - Часто задаваемые вопросы". NASA . Архивировано из оригинала 2018-06-19 . Получено 2018-11-02 .
  6. ^ "Версия 4.0 API netCDF". Unidata.ucar.edu. Архивировано из оригинала 2015-06-17 . Получено 2013-11-27 .
  7. ^ "ncdf". Cirrus.ucsd.edu. 2013-08-06. Архивировано из оригинала 2013-12-03 . Получено 2013-11-27 .
  8. ^ "Rnetcdf". Cran.r-project.org. 2012-07-19. Архивировано из оригинала 2013-12-02 . Получено 2013-11-27 .
  9. ^ "hnetcdf: библиотека Haskell NetCDF". hackage.haskell.org. 2014-07-10. Архивировано из оригинала 2014-07-09 . Получено 2014-07-10 .
  10. ^ "Программное обеспечение для обработки или отображения данных NetCDF". Unidata.ucar.edu . Получено 2020-10-23 .
  11. ^ "ncBrowse". Epic.noaa.gov. Архивировано из оригинала 2013-12-03 . Получено 2013-11-27 .
  12. ^ "ncview". Meteora.ucsd.edu. Архивировано из оригинала 2014-02-12 . Получено 2013-11-27 .
  13. ^ "Panoply". Giss.nasa.gov . Goddard Institute for Space Studies . Архивировано из оригинала 2014-06-20 . Получено 2013-11-27 .
  14. ^ "PyNIO". Pyngl.ucar.edu. 2011-07-28. Архивировано из оригинала 2013-11-25 . Получено 2013-11-27 .
  15. ^ "netCDF4". Архивировано из оригинала 2017-11-29 . Получено 2017-12-04 .
  16. ^ "xarray: ND-маркированные массивы и наборы данных в Python". Архивировано из оригинала 2016-09-01 . Получено 2016-09-07 .
  17. ^ "GrADS Home Page". Архивировано из оригинала 2016-02-13 . Получено 2018-04-10 .
  18. ^ "Coyote's Guide to IDL Programming". Dfanning.com. 2013-11-23. Архивировано из оригинала 2015-09-23 . Получено 2013-11-27 .
  19. ^ "Библиотека Койота". Dfanning.com. 2013-11-23. Архивировано из оригинала 2015-09-23 . Получено 2013-11-27 .
  20. ^ "ArcGIS версия 9.2". Esri.com. Архивировано из оригинала 2013-11-22 . Получено 2013-11-27 .
  21. ^ "Импорт и обработка NetCDF". originlab.com . Получено 2021-05-11 .
  22. ^ "NetCDF network Common Data Form". Gdal.org. Архивировано из оригинала 2013-06-06 . Получено 2013-11-27 .
  23. ^ Дэвид Пирс (2014). ncdf4: Интерфейс к файлам данных формата Unidata netCDF (версии 4 или более ранней). Пакет R версии 1.13. https://cran.r-project.org/package=ncdf4
  24. ^ Павел Мична и при участии Милтона Вудса (2015). RNetCDF: Интерфейс к наборам данных NetCDF. Версия пакета R 1.7-3. https://cran.r-project.org/package=RNetCDF
  25. ^ OpenChrom: кроссплатформенное программное обеспечение с открытым исходным кодом для масс-спектрометрического анализа хроматографических данных , Филип Вениг, Юрген Одерматт, BMC Bioinformatics ; 2010 ; doi :10.1186/1471-2105-11-405
  26. ^ "Что такое netCDF?". Центр программ Unidata. Архивировано из оригинала 2013-03-15 . Получено 2012-11-26 .
  27. ^ "parallel-netcdf". Mcs.anl.gov. 2013-11-17. Архивировано из оригинала 2008-12-01 . Получено 2013-11-27 .
  28. ^ "BUFR FORMAT DOCUMENTATION". Архивировано из оригинала 9 октября 2007 г. Получено 2 февраля 2008 г.
  29. ^ [1] Архивировано 5 сентября 2008 г. на Wayback Machine.
  30. [2] Архивировано 14 декабря 2005 г. на Wayback Machine.
  31. [3] Архивировано 21 мая 2008 г. на Wayback Machine.
  32. ^ "Спутниковый формат GINI". Weather.unisys.com. Архивировано из оригинала 2013-12-02 . Получено 2013-11-27 .
  33. ^ "Unidata | GEMPAK". Unidata.ucar.edu. Архивировано из оригинала 2013-11-04 . Получено 2013-11-27 .
  34. [4] Архивировано 12 февраля 2008 г. на Wayback Machine.
  35. ^ "NetCDF". Unidata.ucar.edu. Архивировано из оригинала 2013-11-29 . Получено 2013-11-27 .
  36. ^ "NetCDF-4". Unidata.ucar.edu. Архивировано из оригинала 2015-06-17 . Получено 2013-11-27 .
  37. ^ Стив Ансари. "NCDC: Radar Resources". Ncdc.noaa.gov. Архивировано из оригинала 2013-12-02 . Получено 2013-11-27 .

Внешние ссылки