Головна

НККСВ -

РNetCDF-Комп'ютерна специфікація файлів ASCII CSV, Версія 1.10

Боб Симони та Стів Ганкін "NCCSV" від Bob Simons і Steve Hankin ліцензовано під0 товар(ов) - 0.00 р.

Вступ

Цей документ визначає формат текстового файлу ASCII CSV, який може містити всю інформацію (метадані та дані) що можна знайти вNetCDF .ncфайл, який містить таблицю даних CSV-файлів. Розширення файлу для текстового файлу ASCII CSV, наступного за цією специфікацією, повинні бути .csv, щоб він міг легко прочитати і правильно в програми електронної таблиці, такі як Excel і Google Sheets. Боб Simons напишіть програмне забезпечення, щоб перетворити файл 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З альбомуNccsvFilesіEDDTableЗ альбомуNcFilesтипи даних) , але ця специфікація є зовнішньою дляERDDAPйERDDAP™має кілька необхідних глобальних атрибутів і багато рекомендованих глобальних і змінних атрибутів, в основному на основі атрибутів CF і ACDDD (див. /Доки/сервер-адміністрування/datasets#global-attributes).

Посилання

Дизайн формату НККСВ – баланс декількох вимог:

  • Файли повинні містити всі дані та метадані, які будуть в таблиціNetCDFфайл, включаючи певні типи даних.
  • Файли повинні бути використані для читання, а потім виписані з аркуша без втрати інформації.
  • Файли повинні бути простими для людини для створення, редагування, читання та розуміння.
  • Файли повинні бути однозначно приписані комп'ютерними програмами.

Якщо якась вимога в цьому документі здається непарним або пікіальним, то це, ймовірно, потрібно, щоб відповідати одному з цих вимог.

Інші характеристики

Ця специфікація відноситься до декількох інших специфікацій і бібліотек, які вона призначена для роботи з, але ця специфікація не є частиною будь-якого з інших специфікацій, а не потребує будь-яких змін до них, і не робить його конфліктом з ними. Якщо деталь, що відноситься до одного з цих норм, не зазначена тут, див. інформацію, пов'язана з однією з цих стандартів. До цього відносяться:

Нотатки

У цій специфікації, кронштейни,\[ \], відмітити додаткові елементи.

Структура файлу

Повний файл 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, який містить лише розділ метаданих (включаючи\*END \_METADATA\*Лінія) й Результатом передбачено повне опис атрибутів файлу, змінних імен та типів даних, які забезпечують однакове призначення, оскільки .das плюс .dds відповідей відOPeNDAPсервер.ERDDAP™повернемо цю варіацію, якщо ви запитуєте файл Тип=.nccsvМетадані відERDDAP™датасет.

Розділ метаданих

У файлі NCCSV кожен рядок розділу метаданих використовує формат змінна Ім'яйатрибути Ім'яйзначення1\[,значення2\]\[,значення3\]\[,значення4\]\[...\]
Простір до або після того, як елементи не допускаються, тому що вони викликають проблеми при імпорті файлу в програми електронної пошти.

Конвенції

Перша лінія файлу NCCSV – перша лінія розділу метаданих та повинна мати\ГЛОБАЛ\Список атрибутів конвенцій, що використовуються в файлі, як String, що містить список CSV, наприклад: \*ГЛОБАЛ\*Конвенції,COARDS, CF-1.6, ACDD-1.3, NCCSV-1.1" Один з конвенцій, зазначених, має бути NCCSV-1.1, що відноситься до поточної версії цієї специфікації.

ЕНД_МЕТАДАТА

Кінець розділу метаданих файла NCCSV повинен бути позначений лише одним \END \_METADATA\

Рекомендовано, але не потрібно, щоб всі атрибути заданої змінної з'являються на суміжних лініях метаданих. Якщо файл NCCSV перетворений вNetCDFфайл, порядок, що з'являються перші імена змінних імен у розділі метаданих, буде порядок змінних у розділі метаданихNetCDFфайл.

Додаткові порожні лінії допускаються в розділі метаданих після необхідного першого рядка з\ГЛОБАЛ\ КонвенціїІнформація (Переглянути нижче) і до необхідного останнього рядка з\*END \_METADATA\*й

Якщо створюється лист із файла NCCSV, розділ даних метаданих з’явиться із змінними іменами у стовпці A, імена атрибутів у стовпці B та значення у стовпці C.

Якщо у файлі CSV зберігається таблиця електронних таблиць, часто буде додатковою комою в кінці рядків у розділі метаданих. Програма, яка перетворює файли NCCSV в.ncФайли ігнорують додаткові коми.

змінна Ім'я

змінна Ім'я є випадковим іменем змінної в файлі даних. Всі змінні імена повинні починатися з 7-бітної літери ASCII або андерсону і бути складені з 7-бітних букв ASCII, андерсонів і 7-бітних цифр ASCII.

ГЛОБАЛ

Спеціальна зміннаНазва\ГЛОБАЛ\використовується для позначення глобальних метаданих.

атрибути Ім'я

атрибути Ім'я є випадковим іменем атрибута, пов'язаного з змінною або\ГЛОБАЛ\й Всі імена атрибутів повинні починатися з 7-бітної літери ASCII або андерсону та бути складені з 7-бітних букв ASCII, андерсонів та 7-бітних цифр ASCII.

САЛАР

Особливий атрибут Ім'я\*САЛАР\*може бути використана для створення змінної даних scalar і визначення його значення. Тип даних\*САЛАР\*визначає тип даних для змінної, тому не вказуйте\*ДАТА\_ТИП\*атрибут для змінних скалярів. Зауважте, що не повинні бути дані для змінної масштабу в розділі даних NCCSV.

Наприклад, для створення скалярної змінної імені «ship» з значенням «Okeanos Explorer» та атрибутом cf\_role, використання: судно,\САЛАР\, "Okeanos Explorer" Транспорт, склад, логистика Транспорт, склад, логистика Коли змінна скалярних даних продається вERDDAP™, значення скаляра перетворюється в колонку в таблиці даних з однаковою вартістю на кожному ряду.

значення

значення є значення атрибуту метаданих і повинен бути масивом з одним або декількома або байтом, ubyte, коротким, ushort, int, uint, довго, ulong, float, подвійний, String або char. Не підтримується інші типи даних. Атрибути без значення будуть ігноруватися. Якщо є більше одного суб-значення, суб-значення повинні бути всіх однакових типів даних і відокремлених комами, наприклад: sstйactual\_range,0.17ф, 23.58ф Якщо є декілька значень String, використовуйте один рядок з\n (Новини) символи, що розділяють підрядки.

Визначення типів даних атрибутів:

Увійти

  • значень атрибутів байтів (8-біт, підписаний) повинні бути написані з суфіксом 'b', наприклад, -7b, 0b, 7b . Діапазон значень дійсних байтів -128 до 127. Кількість, яка виглядає як байт, але не є недійсним (р.н., 128б) буде перетворюватися на відсутній значення або генерувати повідомлення про помилку.

уніформа

  • значення атрибуту ubyte (8-біт, не позначений) повинні бути написані суфіксом 'ub', наприклад, 0ub, 7ub, 250ub . Діапазон значень дійсних байтів 0 до 255. Кількість, яка виглядає як ubyte, але недійсний (Наприклад, 256) буде перетворюватися на відсутнє значення або генерувати повідомлення про помилку. Коли це можливо, використовуйте замість ubyte, тому що багато систем не підтримують невизнані байти (Наприклад, атрибути вNetCDF-3 фото) й

шемале

  • короткі значення атрибутів (16-біт, підписаний) повинні бути написані суфіксом 's', наприклад, -30000s, 0s, 30000s. Діапазон діючих коротких значень -32768 до 32767. Кількість, яка виглядає як короткий, але не є недійсним (Наприклад, 32768) буде перетворюватися на відсутній значення або генерувати повідомлення про помилку.  

втрьох

  • значення атрибута ushort (16-біт, не позначений) повинні бути написані суфіксом 'us', наприклад, 0us, 30000us, 60000us. Діапазон дійсних коротких значень 0 до 65535. Кількість, яка виглядає як ushort, але не є недійсним (Наприклад, 65536) буде перетворюватися на відсутнє значення або генерувати повідомлення про помилку. Коли це можливо, використовуйте короткі замість ushort, тому що багато систем не підтримують невизнані байти (Наприклад, атрибути вNetCDF-3 фото) й  

Увійти

  • значення атрибута int (32-біт, підписаний) повинні бути написані як JSON ints без десяткової точки або експонента, але з суфіксом 'i', наприклад, -12067978i, 0i, 12067978i. Діапазон діючих значень int -2147483648 до 2147483647. Кількість, яка виглядає як int, але не є недійсним (Наприклад, 2147483648i) буде перетворюватися на відсутній значення або генерувати повідомлення про помилку.  

Умань

  • значення атрибуту uint (32-розрядний, невизнаний) повинні бути написані як JSON ints без десяткової точки або експонента, але з суфіксом 'ui', наприклад, 0ui, 12067978ui, 4123456789ui. Діапазон значень дійсного int 0 до 4294967295. Кількість, яка виглядає як uint, але не є недійсним (Наприклад, 21474836) буде перетворюватися на відсутнє значення або генерувати повідомлення про помилку. Коли це можливо, використовуйте int замість uint, тому що багато систем не підтримують невизнані байти (Наприклад, атрибути вNetCDF-3 фото) й  

довгий

  • довгі значення атрибутів (64-розрядний, підписаний в даний час підтримується NUG іERDDAP™але не підтримується CF) повинні бути написані без десяткової точки і з суфіксом 'L', наприклад, -12345678987654321L, 0L, 12345678987654321L . Якщо ви використовуєте програмне забезпечення для перетворення файлу NCCSV з довгими значеннями вNetCDF-3 файл, будь-які довгі значення будуть перетворені на подвійні значення. Діапазон допустимих значень довжини -9223372036854775808 до 9223372036854775807. Кількість, яка виглядає як довго, але не є недійсним (Наприклад, 9223372036854775808L) буде перетворюватися на відсутнє значення або генерувати повідомлення про помилку. Коли це можливо, використовуйте подвійний замість ulong, тому що багато систем не підтримують довго (Наприклад,NetCDF-3 фото) й  

втрьох

  • значення атрибуту ulong (64-розрядний, невизнаний, наразі підтримується NUG іERDDAP™але не підтримується CF) повинні бути написані без десяткової точки і з суфіксом 'uL', наприклад, 0uL, 12345678987654321uL, 9007199254740992uL . Якщо ви використовуєте програмне забезпечення для перетворення файлу NCCSV з довгими значеннями вNetCDF-3 файл, будь-які довгі значення будуть перетворені на подвійні значення. Діапазон допустимих значень довга 0 до 18446744073709551615. Кількість, яка виглядає як ulong, але не є недійсним (Наприклад, 184467440737095516uL) буде перетворюватися на відсутнє значення або генерувати повідомлення про помилку. Коли це можливо, використовуйте подвійний замість ulong, тому що багато систем не підтримують підписані або не відмітили довгий час (Наприклад,NetCDF-3 фото) й  

плавати

  • значення атрибутів плавлення (32-біт) повинні бути написані за допомогою suffix 'f' і може мати десятковий пункт і / або експонент, наприклад, 0f, 1f, 12.34f, 1e12f, 1.23e+12f, 1.23e12f, 1.87E-7f. Використовуйте NaNf для float NaN (відсутні) значення. Діапазон плавок приблизно +/-3.40282347E+38f (~7 значних десяткових цифр) й Кількість, яка виглядає як плавка, але не є недійсним (т.г., 1.0e39f) буде перетворюватися на відсутній значення або генерувати повідомлення про помилку.  

подвійний

  • подвійні значення атрибутів (64-біт) повинні бути написані за допомогою suffix 'd' і може мати десяткову точку та/або експонента, наприклад, 0d, 1d, 12.34d, 1e12d, 1.23e+12d, 1.23e12d, 1.87E-7d. Використовуйте NaNd для подвійний NaN (відсутні) значення. Діапазон подвійних діапазонів становить приблизно +/-1.79769313486231570E+308d (~15 значних десяткових цифр) й Кількість, яка виглядає як подвійний, але недійсний (р.р.н., 1.0e309d) буде перетворюватися на відсутній значення або генерувати повідомлення про помилку.  

Ступінь

  • Значення атрибутів String є послідовністю символів UCS-2 (i.e., 2-byte Unicode символи, як вJava) , які повинні бути написані як 7-bit ASCII, JSON-подібні рядки, так що не-ASCII символи можуть бути вказані.
    • Подвійні лапки (« » » » » » » » » » » » » » ») повинні бути закодовані як два подвійних котирування (» » » » » » » » » » » » » ») й Що потрібно для читання .csv файлів. Ось які програми електронної пошти напишіть, коли ви зберігаєте таблицю як файл .csv.
    • Спеціальні символи JSON Backslash-encoded повинні бути зашифровані як в JSON (необов'язково)\n(newline), але також \\\ (backslash), \f (formfeed), \t (tab), \r (повернення вантажу) або з\u хххх Синтаксис. У аркуші не використовуйте Alt Enter, щоб вказати новий рядок в текстовій комірці; замість цього використовуйте\n (2 символи: застібка і 'n Р) вказати новий рядок.
uhhhh
  • \u hhhh - Всі символи менше, ніж символ #32 або більше, ніж символ #126, а не інакше закодовано, повинні бути закодовані синтаксисом \u hhh*, де hhhh є 4-цифрова шестигранна кількість персонажа, наприклад, євро знак \u20AC. Дивитися сторінки коду, позначені на https://en.wikipedia.org/wiki/Unicode Щоб знайти кількість шістнадцяткових чисел, пов'язаних з певними героями Unicode або скористайтеся бібліотекою програмного забезпечення.
  • Якщо Стрінг має місце на початку або кінці, або включає " (подвійний цитати) або кома, або містить значення, які інакше будуть інтерпретовані як деякі інші типи даних (Наприклад,) , або є слово "нуль", весь String повинен бути укладений в подвійних лапках; інакше, на відміну від JSON, закриваючи подвійні котирування є обов'язковим. Ми рекомендуємо: при сумніві, закриваючи весь Рядок у подвійних лапках. Простір на початку або кінці String сильно розпадаються.
  • На даний момент використання символів більше, ніж #255 є дискурованими. NCCSV підтримує їх.ERDDAP™підтримує їх внутрішньо. Деякі типи вихідних файлів підтримують їх (Наприклад,.jsonі.nccsv) й Але багато типів вихідних файлів не підтримують їх. Наприклад,NetCDF-3 файли не підтримують такі символи, оскількиNetCDFФайли використовують 1-байтні символи і CF в даний час не мають системи для визначення, як символи Unicode зашифровані вNetCDFСтрінги (УФ-8) й Це дозволить поліпшити час.  

мар

  • Значення атрибуту char є символом UCS-2 (i.e., 2-byte Unicode символи, як вJava) , які повинні бути написані як 7-bit ASCII, JSON-подібні символи, так що інші символи можна вказати (див. значення String вище для кодування спеціальних символів, з додаванням кодування однієї цитати як \ Р) й Значення атрибуту Char повинні бути укладені в одинарні лапки (внутрішні котирування) і подвійний котирування (початкові котирування) , , , , , , (подвійний символ цитати) "''" (один символ цитувань) , "'' (вкладка) "'\u20AC" (Євро символ) й Ця система використання одноразових і подвійних котирування є непарним і громіздким, але це спосіб відрізнити значення char від Strings таким чином, що працює з таблицями. Значення, яке схоже на char, але недійсним буде генерувати повідомлення про помилку. Як і з Strings, використання символів, більше, ніж #255, в даний час дискуровані.

Кошик

Зверніть увагу, що в розділі атрибутів NCCSV файл, всі значення атрибутів нумера повинні мати лист suffix (Наприклад, 'b') визначення типу нумеричних даних (Наприклад,) й Але в розділі даних файла NCCSV, значення нумеричних даних ніколи не повинні мати ці листи (з винятком 'L' для довгих цілих і 'uL' для елонових цілих) — тип даних вказаний\*ДАТА\_ТИП\*атрибут для змінної.

ДАТА_ТИП

Тип даних для кожногошемалезмінна повинна бути зазначена\*ДАТА\_ТИП\*атрибут, який може мати значення байта, ubyte, short, ushort, int, uint, long, ulong, float, double, String або char (випадок нечутливості) й Наприклад, qc\_flag,\ДАТА\_ТИП\,втрьох WARNING: Вкажіть правильний\*ДАТА\_ТИП\*Ваша відповідальність. Вкажіть неправильний тип даних (e.g., int коли ви повинні вказати float) не генерувати повідомлення про помилку і може призвести до втрати інформації (Наприклад, значення плавлення будуть округлені в точки) коли файл NCCSV читатиERDDAP™або перетворений вNetCDFфайл.

Шар дискурований

Використання значень даних char дискуровані, оскільки вони не широко підтримуються в інших типах файлів. Значення char може бути записано в розділі даних як одиночні символи або як Рядки (необов'язково, якщо потрібно писати особливий характер) й Якщо знайдеться String, в якості значення char буде використаний перший символ String. Довжина Zero Strings і відсутні значення будуть перетворені на символ \uFF. ПриміткаNetCDFФайли тільки підтримують однобайтні chars, тому будь-які chars більше, ніж char #255 будуть перетворені на '?' при написанніNetCDFФайли Без атрибуту charset використовується для позначення різних charset для змінної charset, charset ISO-8859-1.

Довгий і не позначений

Хоча багато типів файлів (Наприклад,NetCDF-4 і джсон) іERDDAP™підтримка тривалих і невизнаних (ubyte, ushort, uint, ulong) значення, використання довгих і не позначених значень у файлах NCCSV в даний час дискуровані, оскільки вони наразі не підтримуються Excel, CF іNetCDF-3 фото. Якщо ви хочете вказати довгострокові або не позначені значення в файлі NCCSV (або у відповідному форматі Excel) , ви повинні використовувати suffix 'L' так, що Excel не лікує числа, як плаваючі номери точки з меншою точністю. В даний час, якщо файли NCCSV перетворюються вNetCDF-3.ncфайлові, довгострокові значення даних будуть перетворені в подвійні значення, що викликає втрату точності для дуже великих значень (менше -2^53 для довгого, або більше 2^53 для довгого і подовженого) й УNetCDF-3.ncФайли, ubyte, ushort та uint змінні з'являються як байт, короткі, так і з атрибутом \_Unsigned=true метаданих. УNetCDF-3.ncФайли, ubyte, ushort та атрибути uint з'являються як байт, короткий, так і атрибути int, що містять відповідне значення двокомплементу (наприклад, 255ub з'являється як -1b) й Це, очевидно, неприємності, тому підписані типи даних повинні бути використані замість невизнаних типів даних, коли це можливо.

CF, ACDD, іERDDAP™Метадані

З того, як це було встановлено, що більшість файлів NCCSV або.ncФайли, створені з них, будуть читати вERDDAP, дуже рекомендується, що файли NCCSV включають атрибути метаданих, які необхідні або рекомендованіERDDAP™(див.) /Доки/сервер-адміністрування/datasets#global-attributes). Атрибути майже всі від стандартів метаданих CF і ACDDD і служать для коректного опису даних (хто, що, коли, де, навіщо, як) до кого-небудь, хто не знає нічого про дані. Особливе значення, майже всі нумерні змінні повинні мати атрибут одиниць зUDUNITS-сумісне значення, наприклад, sst,без ,

Додайте додаткові атрибути, які не відносяться до стандартів CF або ACDDD або відERDDAPй

Розділ даних

Структура

У першому рядку розділу даних необхідно мати випадок-чуйний, складний список змінних імен. Всі зміни в цьому списку повинні бути описані в розділі метаданих та навпаки (інші\ГЛОБАЛ\атрибути та\САЛАР\змінні) й

Другий крізь призупинені лінії розділу даних повинен мати окремий список значень. Кожен ряд даних повинен мати однакову кількість значень, як складаний список змінних імен. Простір до або після значень не допускається, тому що вони викликають проблеми при імпорті файлу в програми електронної пошти. Кожен стовпчик в цьому розділі повинен містити тільки значення\*ДАТА\_ТИП\*вказаний для цієї змінної\*ДАТА\_ТИП\*атрибут для цієї змінної. На відміну від розділу атрибутів, числові значення в розділі даних не повинні мати листи Suffix для позначення типу даних. На відміну від розділу атрибутів, значення char в розділі даних може означатися із закриттям однієї цитати, якщо вони не потрібні для неоднозначності (Таким чином, ',' і '' повинні бути процитовані, як показано тут) й У файлі NCCSV може бути будь-яка кількість рядків даних, але в даний часERDDAP™може лише читати файли NCCSV до близько 2 мільярдів рядків. В цілому, рекомендується розділити великі дані на кілька файлів даних NCCSV з меншим ніж 1 млн рядків.

END_DATA

Кінець розділу даних необхідно відмовитися тільки \END \_DATA\

Якщо є додатковий вміст у файлі NCCSV після\*END \_DATA\*лінія, вона буде ігноруватися, коли файл NCCSV перетворюється в.ncфайл. Таким чином, дискуровані.

У таблиці нижче цих конвенцій змінні імена та значення даних будуть в декількох стовпчиках. Переглянути приклад нижче.

Місіонерські цінності

Чисельні відсутні значення можуть бути записані як числове значення, визначене числомmissing\_valueабо \_FillValue атрибут для цієї змінної. Наприклад, див. друге значення на цьому ряді даних: Дзвон М. Шимада,99,123.4 Це рекомендований спосіб обробки відсутніх значень для байтів, ubyte, short, ushort, int, uint, long і ulong змінних.

float або double NaN значення можуть бути написані як NaN. Наприклад, див. друге значення на цьому ряді даних: Дзвон М. Шимада,Нан, 123.4

Відсутні значення можуть бути вказані порожнім полем. Наприклад, див. друге значення на цьому ряді даних: Дзвон М. Шимада, 123.4

Для Byte, ubyte, коротко, ushort, int, uint, long, and ulong edits, NCCSV конвертер утиліта іERDDAP™перетворить порожні поля в максимально допустиме значення для цього типу даних (Наприклад, 127 для байтів) й Якщо ви це робите, обов'язково додайтеmissing\_valueабо \_FillValue атрибут для цієї змінної для визначення цього значення, наприклад, змінна Ім'я ,\_FillValue,127б Для плавлення і подвійних змін, порожній поле буде перетворено на NaN.

Значення дати

Значення дати (включаючи значення дати, які не мають компоненту часу) можуть бути представлені як номери або як Рядки у файлах NCCSV. Заданий час змінного струму може мати значення String або тільки числових значень, не обидва. Програма NCCSV перетворить значення String dateTime в числову дату Значення часу при створенні.ncФайли (як потрібно CF) й Цінності String TimeTime мають перевагу легко зчитування людиною.

Цінності датаTime представлені як числові значення повинні мати атрибут одиниць, який визначає " блоки з дата час ", як це вимагається CF і заданийUDUNITS, наприклад, час,ніці,секунди з 1970-01T00:00Z

Цінності датаTime представлені як значення String повинні мати String\*ДАТА\_ТИП\*атрибут і атрибут одиниць, який визначає дату Часовий візерунок вказаний за допомогоюJavaКласифікація ( https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html ) й Наприклад, час,безкоштовно,yyyy-MM-dd'Т'Х:мм:СЗ Всі значення датиЧ для змінної даних необхідно використовувати один і той самий формат. У більшості випадків, коли вам потрібно для атрибутів блоків, буде варіація одного з цих форматів:

  • yyyy-MM-dd'Т'Х:мм:с. SSSZ — що ISO 8601:2004 (Етикети) дата Формат часу. Вам може знадобитися скорочений варіант цього, наприклад,yyyy-MM-dd'Т'Х:мм:СЗ (єдиний рекомендований формат) абоyyyy-MM-ddй Якщо ви зміните формат значень датаTime, NCCSV сильно рекомендує, що ви зміните цей формат (можливо скорочений) й Це формат, якийERDDAP™буде використовуватися, коли він пише файли NCCSV.
  • yyyymmddHmmss.SSS — це компактна версія ISO 8601:2004 Формат часу. Вам може знадобитися скорочена версія цього, наприклад, yyyymmdd.
  • М/д/йий Х:мм:с. SSS — який ручає датами та датами США, як "3/23/2017 16:22:03.000". Вам може знадобитися скорочена версія цього, наприклад, M/d/yyyyy .
  • yyyDDDHmmsSSS — який рік плюс нульовий день року (Наприклад, 001 = Ян 1, 365 = Дек 31 в неоплачуваний рік; це іноді помилково називається Юліан дата) й Вам може знадобитися скорочена версія цього, наприклад, yyyyDDDDD.

Точність

Коли бібліотека програмного забезпечення перетворює.ncфайл в файл NCCSV, вся дата Значення часу будуть написані як Рядки з ISO 8601:2004 (Етикети) дата Формат часу, наприклад, 1970-01T00:00:00Z . Ви можете керувати прецизієюERDDAP-специфічний атрибутtime\_precisionй Про нас /документи/сервер-адміністратор/datasets#time\_precisionй

Часовий пояс

Часовий пояс за замовчуванням для дати Значення часуZulu (Зареєструватися) часовий пояс, який не має часу збереження. Якщо змінна датаTime має значення часу з різних часових поясів, ви повинні вказати це зERDDAP-специфічний атрибутtime\_zoneй Це вимога дляERDDAP™(див.) /документи/сервер-адміністратор/datasets#time\_zone).

Ступінь значення

Як потрібно CF, всі значення ступеня (Наприклад, для довготи і широтості) повинні бути вказані в якості десяткових подвійних значень, не як ступінь°min'sec" String або як окремі змінні для ступенів, хвилин, секунд. Конструктори напрямку Н, С, Е та В не допускаються. Використовуйте негативні значення для західних довготи і для південних широт.

ДСГ Типи функції

Файл NCCSV може містити CF Discrete Sampling Geometry ( https://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html#discrete-sampling-geometries ) дані. Це атрибути, які роблять цю роботу:

  1. У разі потреби у файлі CF, файл NCCSV повинен містити рядок у розділі метаданих, що визначає розділ\ГЛОБАЛ\ featureTypeатрибут, наприклад, \*ГЛОБАЛ\*йfeatureType,траєкторія
  2. Для використанняERDDAP™, файл NCCSV повинен містити рядок або рядки у розділі метаданих, що визначає cf\_role=...\_id змінних, наприклад, Транспорт, склад, логистика Транспорт, склад, логистика Це необов'язково для CF, але потрібно в NCCSV.
  3. Для використанняERDDAP™, файл NCCSV повинен містити рядок або рядки в розділі метаданих, які змінні пов'язані з кожним циклом часу, траєкторією або профілім, як це потрібноERDDAP™(див.) JavaScript licenses API Веб-сайт Go1.13.8), наприклад, \ГЛОБАЛ\,cdm\_traloggery\_variables, "ship" або \ГЛОБАЛ\,cdm\_timeseries\_variables, "станція\_id,лат,лон"

Зразок файлу

Ось зразок файлу, який демонструє безліч особливостей файлу NCCSV:

\\*GLOBAL\\*,Conventions,"COARDS, CF-1.6, ACDD-1.3, NCCSV-1.1"
\\*GLOBAL\\*,cdm\\_trajectory\\_variables,"ship"
\\*GLOBAL\\*,creator\\_email,erd.data@noaa.gov
\\*GLOBAL\\*,creator\\_name,Bob Simons
\\*GLOBAL\\*,creator\\_type,person
\\*GLOBAL\\*,creator\\_url,https://www.pfeg.noaa.gov
\\*GLOBAL\\*,featureType,trajectory
\\*GLOBAL\\*,infoUrl,https://erddap.github.io/docs/user/nccsv-1.10
\\*GLOBAL\\*,institution,"NOAA NMFS SWFSC ERD, NOAA PMEL"
\\*GLOBAL\\*,license,"""NCCSV Demonstration"" by Bob Simons and Steve Hankin is
licensed under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/ ."
\\*GLOBAL\\*,keywords,"NOAA, sea, ship, sst, surface, temperature, trajectory"
\\*GLOBAL\\*,standard\\_name\\_vocabulary,CF Standard Name Table v55
\\*GLOBAL\\*,subsetVariables,"ship"
\\*GLOBAL\\*,summary,"This is a paragraph or two describing the dataset."
\\*GLOBAL\\*,title,"NCCSV Demonstration"
ship,\\*DATA\\_TYPE\\*,String
ship,cf\\_role,trajectory\\_id
time,\\*DATA\\_TYPE\\*,String
time,standard\\_name,time
time,units,"yyyy-MM-dd'T'HH:mm:ssZ"
lat,\\*DATA\\_TYPE\\*,double
lat,units,degrees\\_north
lon,\\*DATA\\_TYPE\\*,double
"lon","units","degrees\\_east"
status,\\*DATA\\_TYPE\\*,char
status,comment,"From http://some.url.gov/someProjectDocument , Table C"
testByte,\\*DATA\\_TYPE\\*,byte
testByte,units,1
testUByte,\\*DATA\\_TYPE\\*,ubyte
testUByte,units,1
testLong,\\*DATA\\_TYPE\\*,long
testLong,units,1
testULong,\\*DATA\\_TYPE\\*,ulong
testULong,units,1
sst,\\*DATA\\_TYPE\\*,float
sst,standard\\_name,sea\\_surface\\_temperature
sst,actual\\_range,0.17f,23.58f
sst,units,degree\\_C
sst,missing\\_value,99f
sst,testBytes,-128b,0b,127b
sst,testShorts,-32768s,0s,32767s
sst,testInts,-2147483648i,0i,2147483647i
sst,testLongs,-9223372036854775808L,0L,9223372036854775807L
sst,testFloats,-3.40282347e38f,0f,3.40282347E+38f
sst,testDoubles,-1.79769313486231570e308d,0d,1.79769313486231570E+308d
sst,testChars,"','","'""'","'\\u20AC'"
sst,testStrings," a~,\\n'z""\\u20AC"
sst,testUBytes,0ub,127ub,255ub
sst,testUInts,0ui,2147483647ui,4294967295ui
sst,testULongs,0uL,9223372036854775807uL,18446744073709551615uL
sst,testUShorts,0us,32767us,65535us

\\*END\\_METADATA\\*
ship,time,lat,lon,status,testByte,testUByte,testLong,testULong,sst
Bell M. Shimada,2017-03-23T00:45:00Z,28.0002,-130.2576,A,-128, 0,-9223372036854775808L,0uL,10.9
Bell M. Shimada,2017-03-23T01:45:00Z,28.0003,-130.3472,\\u20AC,0,127,-9007199254740992L,9223372036854775807uL,10.0
"Bell M. Shimada","2017-03-23T02:45:00Z",28.0001,-130.4305,"'\\t'",126,254,9223372036854775806L,18446744073709551614uL,99
"Bell M. Shimada",2017-03-23T12:45:00Z,27.9998,-131.5578,"'""'",127,255,9223372036854775807L,18446744073709551615uL,NaN

Примітки:

  • Цей файл зразок включає в себе багато складних випадків (e.g., char і довго змінних і складних значень String) й Більшість файлів NCCSV буде набагато простіше.
  • Ліцензійна лінія розбита на дві лінії тут, але лише одна лінія у файлі вибірки.
  • \u20AC - кодування Euro і \u00FC - кодування ü.
  • Багато На прикладі вкладено подвійні котирування, хоча вони не повинні бути, наприклад, багато глобальних атрибутів, включаючи назву, атрибут лонових юнітів та 3-й ряд даних.)
  • Це буде більш чітким і краще, якщо атрибути блоків для тестуLong були написані в подвійних лапках, що вказують на значення String. Але поточне представництво (1, без котирування) перекладати правильно як String, не ціле, тому що немає 'i' suffix.
  • На відміну від інших типів нумеричних даних, довгі значення в розділі даних мають суфікс (Р) що ідентифікує тип нумеричних даних. Для запобігання розшифровок з інтерпретації значень, як плаваючі числа точок і, таким чином, втрати точності.

Розсилка

У аркуші, як у файлі NCCSV:

  • Написати значення атрибута нумера вказаних для файлів NCCSV (Наприклад, з листом suffix, наприклад, 'f', для визначення типу даних атрибутів) й
  • У рядках напишіть всі символи менше, ніж символ ASCII #32 або більше, ніж символ #126 як або JSON-подібний резервний характер (Наприклад,\nдля нових) або як хексадектермічний номер символів Unicode (випадок нечутливості) з синтаксисом\u хххх (Наприклад, \u20AC для євро знака) й Зареєструватися\n (2 символи: застібка і 'n Р) щоб вказати новий рядок, не Alt Enter.

Єдині відмінності між файлами NCCSV та аналоговим розподілом, які слідувати цими конвенціями:

  • Файли NCCSV мають значення на лінії, відокремленому комами. Спредети мають значення на лінії в суміжних клітинах.
  • Рядки у файлах NCCSV часто оточують подвійними лапками. Стрінги в таблицях ніколи не оточують подвійними лапками.
  • Внутрішні подвійні лапки (« » » » » » » » » » » » » » ») у файлах NCCSV з'являються як 2 подвійні лапки. Внутрішні подвійні котирування в таблицях з'являються як 1 подвійна цитата.

Якщо на аркуші нижче зазначені конвенції зберігаються як файл CSV, часто будуть додаткові комами в кінці багатьох ліній. Програма, яка перетворює файли NCCSV в.ncФайли ігнорують додаткові коми.

Головна

Щоб імпортувати файл NCCSV в Excel:

  1. Виберіть файл : Відкрити .
  2. Зміна типу файлу до текстових файлів (\.prn;\.txt; \ *.csv) й
  3. Пошук каталогів і натисніть на файл NCCSV .csv.
  4. Натисніть кнопку Відкрити .

Щоб створити файл NCCSV з таблиці Excel:

  1. Виберіть файл : зберегти як .
  2. Зміна Зберегти як тип: бути CSV (Делімація Comma) (\*.csv) й
  3. У відповідь на попередження сумісності натисніть кнопку Так .
  4. Отриманий файл .csv буде мати додаткові коми в кінці всіх рядків, крім рядків CSV. Ви можете ігнорувати їх.

У Excel з'являється зразок NCCSV

JavaScript licenses API Веб-сайт

Листи Google

Щоб імпортувати файл NCCSV в Google Sheets:

  1. Виберіть файл : Відкрити .
  2. Виберіть для завантаження файлу і натисніть на Завантажити файл з вашого комп'ютера. Виберіть файл, потім натисніть кнопку Відкрийте.

Або, оберіть мій диск і змінити тип файлу, спадаюче виділення до всіх типів файлів. Виберіть файл, потім натисніть кнопку Відкрийте.

Щоб створити файл NCCSV з електронної таблиці Google Sheets:

  1. Виберіть файл : зберегти як .
  2. Зміна Зберегти як тип: бути CSV (Делімація Comma) (\*.csv) й
  3. У відповідь на попередження сумісності натисніть кнопку Так .
  4. Отриманий файл .csv буде мати додаткові коми в кінці всіх рядків, крім рядків CSV. Ігнорувати їх.

Проблемні матеріали

  • Якщо ви створюєте файл NCCSV з текстовим редактором або якщо ви створюєте аналоговий опис у програмі електронної таблиці, текстовий редактор або програма електронної таблиці не перевірить, що ви повинні дотримуватися цих конвенцій правильно. Виконувати ці конвенції правильно.
  • Перетворення електронної таблиці нижче цієї конвенції в файл csv (Таким чином, файл NCCSV) призведе до додаткового комами в кінці всіх рядків, крім рядків даних CSV. Ігнорувати їх. Програма потім перетворює файли NCCSV в.ncФайли ігнорують їх.
  • Якщо файл NCCSV має надлишок коми в кінці рядків, ви можете видалити їх, перетворюючи файл NCCSV в файлNetCDFфайл і після перетворенняNetCDFфайл у файл NCCSV.
  • Коли ви намагаєтеся перетворити файл NCCSV в файлNetCDFфайл, деякі помилки будуть виявлені програмним забезпеченням і генерувати повідомлення про помилки, викликаючи перетворення, щоб не вдалося. Інші проблеми важко або неможливі ловити і не генерувати повідомлення про помилки або попередження. Інші проблеми (наприклад, надлишок коми в кінці рядів) буде ігноруватися. Перетворювач файлів зробить лише мінімальну перевірку правильності результатуNetCDFфайл, наприклад, щодо комплаєнсу CF. Це відповідальність розробника файлу та користувача файлу, щоб перевірити, що результати перетворення є бажаними та коректними. Два способи перевірки:

Зміни

  • Зміни Введення в v1.10 (Квітень 2020) :
    • Додано підтримку ubyte, ushort, uint, ulong.