NetCDF
Расширение имени файла |
.nc |
---|---|
Тип интернет-СМИ | приложение/netcdf приложение /x-netcdf |
Магическое число | CDF\001 \211HDF\r\n\032\n |
Разработано | ЛЕТАТЬ |
Последний выпуск | 4.9.2 [ 1 ] (17 марта 2023 г ) |
Тип формата | научные бинарные данные |
Расширено с | CDF ХДФ |
Веб-сайт | www |
NetCDF ( Network Common Data Form ) — это набор программных библиотек и самоописающихся машинно-независимых форматов данных, которые поддерживают создание, доступ и обмен научными данными, ориентированными на массивы . Домашняя страница проекта [ 2 ] проводится в рамках программы Unidata Университетской корпорации атмосферных исследований (UCAR). Они также являются основным источником программного обеспечения netCDF, разработки стандартов, обновлений и т. д. Формат представляет собой открытый стандарт . NetCDF Classic и 64-битный формат смещения являются международным стандартом Открытого геопространственного консорциума . [ 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 . Планируются дальнейшие выпуски для улучшения производительности, добавления функций и исправления ошибок.
История
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( июнь 2024 г. ) |
Первоначально формат был основан на концептуальной модели Common Data Format, разработанной НАСА , но с тех пор разошелся и несовместим с ней. [ 4 ] [ 5 ]
Описание формата
[ редактировать ]Библиотеки netCDF поддерживают несколько различных двоичных форматов файлов netCDF:
- Классический формат использовался в первом выпуске netCDF и до сих пор является форматом по умолчанию для создания файлов.
- 64-битный формат смещения был представлен в версии 3.6.0 и поддерживает большие размеры переменных и файлов.
- Формат netCDF-4/HDF5 был представлен в версии 4.0; это формат данных HDF5 с некоторыми ограничениями.
- Формат HDF4 SD поддерживается только для чтения.
- Формат CDF5 поддерживается совместно с проектом Parallel-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 , Джулия и Октава . Спецификация вызовов API очень похожа на разных языках, за исключением неизбежных различий в синтаксисе. Вызовы API для версии 2 сильно отличались от вызовов в версии 3, но они также поддерживаются версиями 3 и 4 для обеспечения обратной совместимости. Программистам приложений, использующим поддерживаемые языки, обычно не нужно беспокоиться о самой файловой структуре, даже если она доступна в открытых форматах.
Приложения
[ редактировать ]Был написан широкий спектр прикладного программного обеспечения, использующего файлы netCDF. Они варьируются от командной строки утилит до пакетов графической визуализации . Номера указаны ниже, а более длинный список [ 10 ] есть на сайте UCAR.
- Обычно используемый набор утилит командной строки Unix для файлов netCDF — это набор операторов NetCDF (NCO), который предоставляет ряд команд для манипулирования и анализа файлов netCDF, включая базовое объединение записей , нарезку массива и усреднение .
- ncBrowse [ 11 ] это универсальная программа просмотра файлов netCDF, которая включает в себя графику Java, анимацию и 3D-визуализации для широкого спектра соглашений о файлах netCDF.
- нквью [ 12 ] — визуальный браузер для файлов формата netCDF. Эта программа представляет собой простой и быстрый инструмент с графическим интерфейсом для визуализации полей в файле netCDF. Можно просматривать различные измерения массива данных, просматривая значения необработанных данных. Также возможно менять цветовые карты, инвертировать данные и т.д.
- Паноплия [ 13 ] — это программа просмотра файлов netCDF, разработанная в Институте космических исследований имени Годдарда НАСА и предназначенная для представления данных с привязкой к географической привязке. Он написан на Java и, следовательно, независим от платформы. Хотя набор функций Panoply пересекается с ncBrowse и ncview, Panoply отличается широким разнообразием картографических проекций и способностью работать с таблицами цветов разного масштаба.
- Командный язык NCAR (NCL) используется для анализа и визуализации данных в файлах netCDF (среди других форматов).
- Язык программирования Python может получить доступ к файлам netCDF с помощью PyNIO. [ 14 ] модуль (который также облегчает доступ к множеству других форматов данных). Файлы netCDF также можно прочитать с помощью модуля Python.
netCDF4-python
, [ 15 ] и в панду- подобнуюDataFrame
сxarray
модуль. [ 16 ] - Ferret — это интерактивная компьютерная среда визуализации и анализа, разработанная для удовлетворения потребностей океанографов и метеорологов, анализирующих большие и сложные наборы данных с координатной сеткой. Феррет предлагает подход к анализу, подобный Mathematica; новые переменные могут быть определены в интерактивном режиме как математические выражения, включающие переменные набора данных. Расчеты могут применяться к областям произвольной формы. Полностью документированная графика создается с помощью одной команды.
- Система сеточного анализа и отображения (GrADS) [ 17 ] — это интерактивный настольный инструмент, который используется для легкого доступа, манипулирования и визуализации данных наук о Земле. GrADS реализован во всем мире на множестве широко используемых операционных систем и свободно распространяется через Интернет.
- nCDF_Браузер [ 18 ] — визуальный браузер nCDF, написанный на языке программирования IDL . Переменные, атрибуты и измерения можно сразу загрузить в командную строку IDL для дальнейшей обработки. Вся библиотека Койота [ 19 ] файлы, необходимые для запуска nCDF_Browser, доступны в zip-файле.
- Версии ArcGIS после 9.2 [ 20 ] поддерживают файлы netCDF, которые соответствуют Конвенциям о климатических и прогнозных метаданных и содержат прямолинейные сетки с равноотстоящими друг от друга координатами. Набор инструментов «Многомерные инструменты» можно использовать для создания растровых слоев, векторных слоев и представлений таблиц из данных netCDF в ArcMap или для преобразования векторных, растровых и табличных данных в netCDF.
- OriginPro версии 2021b поддерживает [ 21 ] netCDF Соглашение CF. Усреднение может быть выполнено во время импорта, чтобы обеспечить возможность обработки больших наборов данных в программном обеспечении с графическим интерфейсом.
- Библиотека абстракции геопространственных данных обеспечивает поддержку [ 22 ] для доступа к чтению и записи данных netCDF.
- netCDF Explorer — многоплатформенный графический браузер для файлов netCDF. netCDF Explorer может просматривать файлы локально или удаленно с помощью OPeNDAP.
- R поддерживает netCDF через такие пакеты, как ncdf4 (включая поддержку HDF5). [ 23 ] или RNetCDF (без поддержки HDF5). [ 24 ]
- HDFql позволяет пользователям управлять файлами netCDF-4/HDF5 с помощью языка высокого уровня (похожего на SQL) на C, C++, Java, Python, C#, Fortran и R.
- и пакетная система ECMWF Рабочая станция Metview могут обрабатывать NetCDF вместе с GRIB и BUFR .
- OpenChrom поставляет конвертер в соответствии с условиями общественной лицензии Eclipse. [ 25 ]
Обычное использование
[ редактировать ]Он обычно используется в климатологии , метеорологии и океанографии приложениях (например, прогнозирование погоды , изменение климата ) и ГИС приложениях .
Это формат ввода/вывода для многих приложений ГИС, а также для обмена общенаучными данными. Цитирую с их сайта: [ 26 ]
- «NetCDF (сетевая общая форма данных) — это набор интерфейсов для доступа к данным, ориентированным на массивы, и свободно распространяемая коллекция библиотек доступа к данным для C, Fortran, C++, Java и других языков. Библиотеки netCDF поддерживают машинно-независимый формат представления научных данных. Вместе интерфейсы, библиотеки и формат поддерживают создание, доступ и обмен научными данными».
Конвенции
[ редактировать ]Соглашения о климате и прогнозе (CF) представляют собой соглашения о метаданных для данных наук о Земле, предназначенные для содействия обработке и совместному использованию файлов, созданных с помощью интерфейса прикладного программирования NetCDF (API). Соглашения определяют метаданные, которые включены в тот же файл, что и данные (таким образом делая файл «самоописанным»), которые обеспечивают окончательное описание того, что представляют собой данные в каждой переменной, а также пространственных и временных свойств данных. (включая информацию о сетках, например границы ячеек сетки и методы усреднения ячеек). Это позволяет пользователям данных из разных источников решать, какие данные сопоставимы, и позволяет создавать приложения с мощными возможностями извлечения, перераспределения и отображения.
Параллельный 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.
Параллельный ввод-вывод в библиотеке netCDF Unidata поддерживается с версии 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 могут быть прочитаны библиотекой C netCDF, если они созданы с использованием API HDF4 Scientific Data (SD).
Общая модель данных NetCDF-Java
[ редактировать ]Библиотека NetCDF-Java в настоящее время читает следующие форматы файлов и протоколы удаленного доступа:
- BUFR Документация формата [ 28 ] (постоянное развитие)
- СИНРАД уровень II [ 29 ] (Китайский формат радара)
- ДМСП [ 30 ] ( Программа оборонных метеорологических спутников )
- ОТДЕЛКА [ 31 ] формат файла радара
- Джини [ 32 ] ( Интерфейс GOES Ingest и NOAA PORT) Формат изображения
- ЗЕМЛЕТРЯСЕНИЕ [ 33 ] данные с координатной сеткой
- GRIB версии 1 и версии 2 (текущая работа над таблицами)
- ГТОПО [ 34 ] Набор данных высот за 30 секунд ( USGS )
- Иерархический формат данных (HDF4, HDF-EOS2, HDF5, HDF-EOS5)
- NetCDF [ 35 ] (классический и большой формат)
- НетКДФ-4 [ 36 ] (построен на HDF5 )
- НЕКСРАД Радар [ 37 ] уровень 2 и уровень 3.
В разработке находится ряд других форматов. Поскольку доступ к каждому из них осуществляется прозрачно через API NetCDF, считается, что библиотека NetCDF-Java реализует общую модель данных для наборов научных данных.
Общая модель данных Java имеет три уровня, которые строятся друг над другом, последовательно добавляя более богатую семантику:
- Уровень доступа к данным , также известный как синтаксический уровень, обрабатывает чтение данных.
- Уровень системы координат идентифицирует координаты массивов данных. Координаты — это совершенно общая концепция научных данных; специализированные системы координат географической привязки , важные для сообщества наук о Земле, снабжены специальными аннотациями.
- Уровень научных типов данных идентифицирует конкретные типы данных, такие как сетки, изображения и точечные данные, и добавляет специализированные методы для каждого типа данных.
Модель данных уровня доступа к данным является обобщением модели данных NetCDF-3 и по существу аналогична модели данных NetCDF-4. Уровень системы координат реализует и расширяет концепции Конвенций о климатических и прогнозных метаданных . Слой научных типов данных позволяет манипулировать данными в координатном пространстве, аналогично спецификациям Открытого геопространственного консорциума . Идентификация систем координат и типизация данных продолжаются, но пользователи могут подключать свои собственные классы во время выполнения для специализированной обработки.
См. также
[ редактировать ]- Общий формат данных (CDF)
- CGNS ( CFD ) Общая система обозначений
- EAS3 (система ввода-вывода)
- FITS (Гибкая система транспортировки изображений)
- GRIB (двоичный файл GRIDed)
- Иерархический формат данных (HDF)
- OPeNDAP Протоколы клиент-сервер
- Tecplot Бинарные файлы
- XDMF (формат расширяемой модели данных)
- XMDF (расширяемый формат данных модели)
Ссылки
[ редактировать ]- ^ «НетКДФ 4.9.2» . 17 марта 2023 г.
- ^ «Домашняя страница NetCDF» . Юнидата/UCAR. Архивировано из оригинала 6 декабря 2017 г. Проверено 5 декабря 2017 г.
- ^ «Стандарт OGC netCDF Classic и 64-битное смещение» . Opengeospatial.org. Архивировано из оригинала 30 ноября 2017 г. Проверено 5 декабря 2017 г.
- ^ «Справочная информация — Руководство пользователя NetCDF» . Unidata.ucar.edu . Проверено 27 ноября 2013 г.
- ^ «CDF - Часто задаваемые вопросы» . НАСА . Архивировано из оригинала 19 июня 2018 г. Проверено 2 ноября 2018 г.
- ^ «Версия 4.0 API netCDF» . Unidata.ucar.edu. Архивировано из оригинала 17 июня 2015 г. Проверено 27 ноября 2013 г.
- ^ "нкдф" . Cirrus.ucsd.edu. 06.08.2013. Архивировано из оригинала 3 декабря 2013 г. Проверено 27 ноября 2013 г.
- ^ «Рнеткдф» . Cran.r-project.org. 19 июля 2012 г. Архивировано из оригинала 2 декабря 2013 г. Проверено 27 ноября 2013 г.
- ^ «hnetcdf: библиотека Haskell NetCDF» . hackage.haskell.org. 10 июля 2014 г. Архивировано из оригинала 9 июля 2014 г. Проверено 10 июля 2014 г.
- ^ «Программное обеспечение для управления или отображения данных NetCDF» . Unidata.ucar.edu . Проверено 23 октября 2020 г.
- ^ «NCBrowse» . Epic.noaa.gov. Архивировано из оригинала 3 декабря 2013 г. Проверено 27 ноября 2013 г.
- ^ "Нквью" . Meteora.ucsd.edu. Архивировано из оригинала 12 февраля 2014 г. Проверено 27 ноября 2013 г.
- ^ «Паноплия» . Giss.nasa.gov . Годдардский институт космических исследований . Архивировано из оригинала 20 июня 2014 г. Проверено 27 ноября 2013 г.
- ^ «ПиНИО» . Pyngl.ucar.edu. 28 июля 2011 г. Архивировано из оригинала 25 ноября 2013 г. Проверено 27 ноября 2013 г.
- ^ «netCDF4» . Архивировано из оригинала 29 ноября 2017 г. Проверено 4 декабря 2017 г.
- ^ «xarray: массивы и наборы данных с метками ND в Python» . Архивировано из оригинала 1 сентября 2016 г. Проверено 7 сентября 2016 г.
- ^ «Главная страница ГрАДС» . Архивировано из оригинала 13 февраля 2016 г. Проверено 10 апреля 2018 г.
- ^ «Руководство Койота по IDL-программированию» . Dfanning.com. 2013-11-23. Архивировано из оригинала 23 сентября 2015 г. Проверено 27 ноября 2013 г.
- ^ «Библиотека Койотов» . Dfanning.com. 2013-11-23. Архивировано из оригинала 23 сентября 2015 г. Проверено 27 ноября 2013 г.
- ^ «ArcGIS версии 9.2» . Esri.com. Архивировано из оригинала 22 ноября 2013 г. Проверено 27 ноября 2013 г.
- ^ «Импорт и обработка NetCDF» . originlab.com . Проверено 11 мая 2021 г.
- ^ «Общая форма данных сети NetCDF» . Gdal.org. Архивировано из оригинала 6 июня 2013 г. Проверено 27 ноября 2013 г.
- ^ Дэвид Пирс (2014). ncdf4: Интерфейс для файлов данных формата Unidata netCDF (версия 4 или более ранняя). Пакет R версии 1.13. https://cran.r-project.org/package=ncdf4
- ^ Павел Мична и при участии Милтона Вудса (2015). RNetCDF: интерфейс для наборов данных NetCDF. Пакет R версии 1.7-3. https://cran.r-project.org/package=RNetCDF
- ^ OpenChrom: кроссплатформенное программное обеспечение с открытым исходным кодом для масс-спектрометрического анализа хроматографических данных , Филип Вениг, Юрген Одерматт, BMC Bioinformatics ; 2010 г .; дои : 10.1186/1471-2105-11-405
- ^ «Что такое netCDF?» . Программный центр Юнидата. Архивировано из оригинала 15 марта 2013 г. Проверено 26 ноября 2012 г.
- ^ "параллельный-netcdf" . Mcs.anl.gov. 17 ноября 2013 г. Архивировано из оригинала 1 декабря 2008 г. Проверено 27 ноября 2013 г.
- ^ «ДОКУМЕНТАЦИЯ В ФОРМАТЕ BUFR» . Архивировано из оригинала 9 октября 2007 года . Проверено 2 февраля 2008 г.
- ^ [1] Архивировано 5 сентября 2008 г., в Wayback Machine.
- ^ [2] Архивировано 14 декабря 2005 г., в Wayback Machine.
- ^ [3] Архивировано 21 мая 2008 г., в Wayback Machine.
- ^ «Спутниковый формат GINI» . Weather.unisys.com. Архивировано из оригинала 2 декабря 2013 г. Проверено 27 ноября 2013 г.
- ^ «ЮНИДАТА | ГЕМПАК» . Unidata.ucar.edu. Архивировано из оригинала 4 ноября 2013 г. Проверено 27 ноября 2013 г.
- ^ [4] Архивировано 12 февраля 2008 г., в Wayback Machine.
- ^ «НетКДФ» . Unidata.ucar.edu. Архивировано из оригинала 29 ноября 2013 г. Проверено 27 ноября 2013 г.
- ^ «НетКДФ-4» . Unidata.ucar.edu. Архивировано из оригинала 17 июня 2015 г. Проверено 27 ноября 2013 г.
- ^ Стив Ансари. «NCDC: Радиолокационные ресурсы» . Ncdc.noaa.gov. Архивировано из оригинала 2 декабря 2013 г. Проверено 27 ноября 2013 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Руководство пользователя NetCDF — описывает формат файла.
- «Введение в распределенную визуализацию» ; раздел 4.2 содержит сравнение CDF, HDF и netCDF.
- Анимация данных NetCDF в ArcMap
- Список программных утилит, использующих файлы netCDF