NCCSV -
А.NetCDFСовместимая спецификация ASCII CSV, Версия 1.10
Боб Саймонс и Стив Хэнкин «NCCSV» Боба Саймонса и Стива Хэнкина лицензированаCC BY 4.0
Введение
Этот документ определяет формат текстового файла ASCII CSV, который может содержать всю информацию. (метаданные и данные) которые можно найти вNetCDF .ncФайл, содержащий CSV-файлоподобную таблицу данных. Расширение файла для текстового файла ASCII CSV, следующего этой спецификации, должно быть .csv, чтобы его можно было легко и правильно читать в программах электронных таблиц, таких как Excel и Google Sheets. Боб Саймонс напишет программное обеспечение для преобразования файла NCCSV вNetCDF-3 (А также, возможно, иNetCDF-4) .ncФайл и обратно, без потери информации. Боб Саймонс изменилсяERDDAP™Поддерживать чтение и написание этого типа файлов.
Формат NCCSV разработан таким образом, что программное обеспечение для электронных таблиц, такое как Excel и Google Sheets, может импортировать файл NCCSV в виде файла csv, причем вся информация в ячейках электронных таблиц готова к редактированию. Или электронная таблица может быть создана с нуля после конвенций NCCSV. Независимо от источника электронной таблицы, если она затем экспортируется в виде файла .csv, она будет соответствовать спецификации NCCSV и никакая информация не будет потеряна. Единственными различиями между файлами NCCSV и аналогичными файлами электронных таблиц, которые следуют этим конвенциям, являются:
- Файлы NCCSV имеют значения на строке, разделенной запятыми. Электронные таблицы имеют значения на линии в соседних ячейках.
- Струны в файлах NCCSV часто окружены двойными цитатами. Струны в электронных таблицах никогда не окружены двойными цитатами.
- Внутренние двойные цитаты (") В строках в файлах NCCSV отображаются 2 двойные цитаты. Внутренние двойные котировки в электронных таблицах выглядят как 1 двойная цитата.
Видишь?Электронная таблицаРаздел ниже для получения дополнительной информации.
потоковый
Как и файлы CSV в целом, файлы NCCSV являются потоковыми. Таким образом, ес ли NCSV генерируется на лету сервером данных, таким какERDDAP™Сервер может начать передавать данные запрашивающему лицу до того, как все данные будут собраны. Это полезная и желательная особенность.NetCDFФайлы, напротив, не являются потоковыми.
ERDDAP™
Эта спецификация разработана таким образом, что файлы NCCSV и.ncФайлы, которые могут быть созданы из них, могут быть использованыERDDAP™сервер данных (черезEDDTable FromNccsvFilesиEDDTable FromNcFilesТипы наборов данных) Но эта спецификация является внешней дляERDDAP.ERDDAP™имеет несколько требуемых глобальных атрибутов и многие рекомендуемые глобальные и переменные атрибуты, в основном основанные на атрибутах CF и ACDD (см. /docs/server-admin/datasets#глобальные атрибуты).
Баланс
Конструкция формата NCCSV представляет собой баланс нескольких требований:
- Файлы должны содержать все данные и метаданные, которые будут в табличке.NetCDFФайлы, включая конкретные типы данных.
- Файлы должны быть в состоянии быть прочитаны, а затем написаны из электронной таблицы без потери информации.
- Файлы должны быть простыми для создания, редактирования, чтения и понимания.
- Файлы должны быть однозначно разобраны компьютерными программами.
Если какое-то требование в этом документе кажется странным или придирчивым, оно, вероятно, необходимо для удовлетворения одного из этих требований.
Другие спецификации
Эта спецификация относится к нескольким другим спецификациям и библиотекам, с которыми она предназначена для работы, но эта спецификация не является частью какой-либо из этих других спецификаций, и она не нуждается в каких-либо изменениях в них и не конфликтует с ними. Если деталь, связанная с одним из этих стандартов, не указана здесь, см. соответствующую спецификацию. Примечательно, что это включает в себя:
- Конвенция об атрибутах для обнаружения набора данных (ACDD) Стандарт метаданных: https://wiki.esipfed.org/Attribute\_Convention\_for\_Data\_Discovery\_1-3 .
- Климат и прогноз (CF) Стандарт метаданных: https://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html .
- TheNetCDFРуководство пользователя (Нюг) : https:///docs.unidata.ucar.edu/netcdf-java/current/userguide/index.html .
- TheNetCDFбиблиотеки программного обеспечения, такие какNetCDF- Джава иNetCDF-с: https://www.unidata.ucar.edu/software/netcdf/ . Эти библиотеки не могут читать файлы NCCSV, но они могут читать..ncФайлы, созданные из файлов NCCSV.
- Джон: https://www.json.org/
Запись
В этой спецификации, скобки,\[ \], обозначают факультативные пункты.
Файловая структура
Полный файл NCCSV состоит из двух разделов: раздела метаданных, за которым следует раздел данных.
Файлы NCCSV должны содержать только 7-битные символы ASCII. Из-за этого набор символов или кодирование, используемое для записи и чтения файла, может быть любым набором символов или кодированием, которое совместимо с 7-битным набором символов ASCII, например, ISO-8859-1.ERDDAP™читает и записывает файлы NCCSV с набором ISO-8859-1.
Файлы NCCSV могут использовать любую новую строку (\n) (который распространен на компьютерах Linux и Mac OS X) Возврат плюс новая линия (\r\n) (Что распространено на компьютерах Windows) как конечные маркеры, но не оба.
.nccsvМетаданные
Когда и создатель, и читатель ожидают этого, также возможно и иногда полезно сделать вариант файла NCCSV, который содержит только раздел метаданных. (включая\*ЭНД _МЕТАДАТА\*линия) . Результат обеспечивает полное описание атрибутов файла, имен переменных и типов данных, таким образом, служа той же цели, что и ответы .das + .dds от одного и того же файла.OPeNDAPСервер.ERDDAP™Вы вернете эту вариацию, если запросите файл Тип =.nccsvМетаданные из одногоERDDAP™набор данных.
Раздел Метаданные
В файле NCCSV каждая строка раздела метаданных использует формат.
переменный Имя,атрибут Имя,значение 1\[значение 2\]\[значение 3\]\[значение 4\]\[...\]
Пространства до или после элементов не допускаются, поскольку они вызывают проблемы при импорте файла в программы электронных таблиц.
Конвенции
Первая строка файла NCCSV является первой строкой раздела метаданных и должна иметь\Глобал\Конвенци и приписывают перечисление всех конвенций, используемых в файле, в качестве строки, содержащей список CSV, например: \*Глобал\*Конвенции,COARDS, CF-1.6, ACDD-1.3, NCCSV-1.1" Одной из перечисленных конвенций должна быть NCCSV-1.1, которая относится к текущей версии этой спецификации.
ЭНД_МЕТАДАТА
Конец раздела метаданных файла NCCSV должен обозначаться строкой, содержащей только \ЭНД _МЕТАДАТА\
Рекомендуется, но не требуется, чтобы все атрибуты данной переменной отображались на соседних линиях раздела метаданных. Если файл NCCSV преобразуется вNetCDFфайл, порядок первого появления переменных имен в разделе метаданных будет порядком переменных вNetCDFФайл.
Необязательные пустые строки допускаются в разделе метаданных после требуемой первой строки.\Глобал\ Конвенцииинформация (см. ниже) Перед требуемой последней строкой\ЭНД _МЕТАДАТА\.
Если электронная таблица создается из файла NCCSV, появится раздел данных метаданных с переменными именами в столбце A, именами атрибутов в столбце B и значениями в столбце C.
Если таблица, следующая этим конвенциям, сохраняется в виде файла CSV, в конце строк в разделе метаданных часто будут дополнительные запятые. Программное обеспечение, которое преобразует файлы NCCSV в.ncФайлы будут игнорировать дополнительные запятые.
переменный Имя
переменный Имя является чувствительным к регистру именем переменной в файле данных. Все переменные имена должны начинаться с 7-битной буквы ASCII или подчеркивания и состоять из 7-битных букв ASCII, подчеркиваний и 7-битных цифр ASCII.
Глобал
Специальное переменное имя\Глобал\Используется для обозначения глобальных метаданных.
атрибут Имя
атрибут Имя является чувствительным к регистру именем атрибута, связанного с переменной или\Глобал\. Все имена атрибутов должны начинаться с 7-битной буквы ASCII или подчеркивания и состоять из 7-битных букв ASCII, подчеркиваний и 7-битных цифр ASCII.
СКАЛАР
Особый атрибут Имя\*СКАЛАР\*Может использоваться для создания скалярной переменной данных и определения ее значения. Тип данных для\*СКАЛАР\*определяет тип данных для переменной, поэтому не указывайте\*Данные _TYPE\*атрибут для скалярных переменных. Обратите внимание, что в разделе данных файла NCCSV не должно быть данных для скалярной переменной.
Например, для создания скалярной переменной под названием «корабль» со значением «Okeanos Explorer» и атрибутом cf\_role используйте: корабль,\СКАЛАР\«Okeanos Explorer» Корабль, cf\_role,trajectory\_id Когда скалярная переменная данных читается вERDDAP™, скалярное значение преобразуется в столбец в таблице данных с одинаковым значением на каждой строке.
ценность
ценность является значением атрибута метаданных и должен быть массивом с одним или несколькими байтами, убайтами, короткими, короткими, int, uint, длинными, ulong, плавающими, двойными, струнными или char. Другие типы данных не поддерживаются. Атрибуты, не имеющие ценности, будут игнорироваться. Если имеется более одного подзначения, все подзначения должны быть одного типа данных и разделены запятыми, например: sst,actual\_range0.17f,23.58f Если есть несколько значений струн, используйте одну струну с\n (новая линия) Персонажи, разделяющие подстроки.
Определения типов данных атрибутов:
байт
- значения атрибутов байта (8-битный, подписанный) должно быть написано с суффиксом 'b', например, -7b, 0b, 7b. Диапазон допустимых значений байта составляет -128 до 127. Число, которое выглядит как байт, но является недействительным (Например, 128b) преобразуется в недостающее значение или генерирует сообщение об ошибке.
убайт
- значения атрибутов ubyte (8-битный, неподписанный) должны быть написаны с суффиксом «ub», например, 0ub, 7ub, 250ub. Диапазон допустимых значений байта составляет от 0 до 255. Число, которое выглядит как убайт, но является недействительным (Например, 256ub) Преобразуется в недостающее значение или генерирует сообщение об ошибке. Когда это возможно, используйте байт вместо убайт, потому что многие системы не поддерживают неподписанные байты. (Например, атрибуты вNetCDF-3 файла) .
короткий
- короткие значения атрибутов (16-битный, подписанный) должны быть написаны с суффиксом 's', например, -30000s, 0s, 30000s. Диапазон допустимых коротких значений составляет -32768-32767. Число, которое выглядит как короткое, но недействительно (Например, 32768) преобразуется в недостающее значение или генерирует сообщение об ошибке.