Це команда ncgen3, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
ncgen3 - З файлу CDL згенеруйте класичний або 64-розрядний класичний файл netCDF, програму на C або
програма Fortran
СИНТАКСИС
ncgen3 [-b] [-c] [-f] [-k тип_файлу] [-x] [-n] [-o netcdf_filename] вхідний_файл
ОПИС
ncgen3 генерує або файл netCDF, або вихідний код C або Fortran для створення netCDF
файл. Вхід до ncgen3 є описом файлу netCDF невеликою мовою, відомою як
CDL (Network Common Data form Language), описана нижче. Якщо параметри не вказані в
виклик ncgen3, він просто перевіряє синтаксис вхідного файлу CDL, викликаючи помилку
повідомлення про будь-які порушення синтаксису CDL. Для створення можна використовувати інші параметри
відповідний файл netCDF, щоб створити програму C, яка використовує інтерфейс netCDF C для
створити файл netCDF або створити програму Fortran, яка використовує netCDF Fortran
інтерфейс для створення того самого файлу netCDF.
ncgen3 можна використовувати з супутньою програмою ncdump для виконання деяких простих операцій
netCDF файли. Наприклад, щоб перейменувати вимір у файлі netCDF, використовуйте ncdump щоб отримати
Версія CDL файлу netCDF, відредагуйте файл CDL, щоб змінити назву розмірів,
І використовувати ncgen3 щоб створити відповідний файл netCDF з відредагованого файлу CDL.
ВАРІАНТИ
-b Створіть (двійковий) файл netCDF. Якщо -o параметр відсутня, ім’я файлу за замовчуванням
буде створено з імені netCDF (вказано після netcdf ключове слово в
input), додавши розширення `.nc'. Якщо файл із файлом
вказане ім’я, воно буде перезаписано.
-c Генерувати C вихідний код, який створить файл netCDF, що відповідає netCDF
специфікація. Вихідний код C записується на стандартний вихід.
-f Генерувати Фортран вихідний код, який створить файл netCDF, що відповідає netCDF
специфікація. Вихідний код Fortran записується на стандартний вихід.
-o netcdf_file
Ім'я для створеного двійкового файлу netCDF. Якщо ця опція вказана, це означає
"-b". (Цей параметр необхідний, оскільки файли netCDF неможливо записати
безпосередньо до стандартного виводу, оскільки стандартний вихід не шукати.)
-k тип_файлу
Використання -k2 або -k "64-бітове зміщення" вказує, який згенерований файл (або програма) має
використовуйте версію 2 формату, який використовує 64-розрядні зміщення файлів. За замовчуванням використовується
версія 1 («класичний») формат із 32-бітними зміщеннями файлів, хоча це обмежує
розмір файлу netCDF, змінних і записів до розмірів, підтримуваних файлом
класичний формат. (NetCDF-4 підтримуватиме додаткові види файлів netCDF,
"netCDF-4" і "netCDF-4 класична модель".) Примітка: -v також прийнято означати
те саме, що -k для зворотної сумісності, але -k є кращим, щоб відповідати
відповідний параметр ncdump.
-x Не ініціалізуйте дані значеннями заповнення. Це може прискорити створення великого netCDF
файлів значно, але пізніше намагається прочитати незаписані дані зі згенерованого файлу
буде нелегко виявити.
ПРИКЛАДИ
Перевірте синтаксис файлу CDL `foo.cdl':
ncgen3 foo.cdl
З файлу CDL `foo.cdl', згенеруйте еквівалентний двійковий файл netCDF з іменем `x.nc':
ncgen3 -o x.nc foo.cdl
З файлу CDL `foo.cdl', створити програму на C, що містить функцію netCDF
виклики, необхідні для створення еквівалентного двійкового файлу netCDF з іменем `x.nc':
ncgen3 -c -o x.nc foo.cdl
ВИКОРИСТАННЯ
CDL синтаксис Підсумки
Нижче наведено приклад синтаксису CDL, що описує файл netCDF з кількома названими вимірами.
(lat, lon і time), змінні (Z, t, p, rh, lat, lon, час), атрибути змінних (одиниці,
long_name, valid_range, _FillValue) та деякі дані. Ключові слова CDL виділені жирним шрифтом. (Це
приклад призначений для ілюстрації синтаксису; реальний файл CDL мав би більш повний
набір атрибутів, щоб дані були більш повно самоописуваними.)
netcdf foo { // приклад специфікації netCDF в CDL
розміри:
lat = 10, lon = 5, час = необмежений ;
змінні:
довго lat(lat), lon(long), time(time);
плавати Z(час,шир,довж), t(час,шир,довж);
подвійний p(час,шир,довж);
довго rh(час,шир,довж);
// змінні атрибути
lat:long_name = "широта";
lat:units = "градуси_північ";
lon:long_name = "довгота";
lon:units = "градуси_схід";
time:units = "секунди з 1992-1-1 00:00:00";
Z:units = "геопотенціальні метри";
Z:дійсний_діапазон = 0., 5000.;
p:_FillValue = -9999.;
rh:_FillValue = -1;
дані:
шир = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;
довгота = -140, -118, -96, -84, -52;
}
Усі оператори CDL закінчуються крапкою з комою. Можна використовувати пробіли, табуляції та нові рядки
вільно для читабельності. Коментарі можуть слідувати за символами `//' в будь-якому рядку.
Опис CDL складається з трьох необов'язкових частин: розміри, змінні та дані,
починаючи з ключового слова розміри:, змінні: та дані, відповідно. Змінна
частина може містити змінна декларацій та атрибут Призначення.
netCDF вимір використовується для визначення форми одного або кількох багатовимірних
змінні, що містяться у файлі netCDF. Вимір netCDF має назву та розмір. В
більшість одного виміру у файлі netCDF може мати необмежений розмір, що означає змінну
використання цього виміру може зрости до будь-якої довжини (наприклад, номер запису у файлі).
A змінна представляє багатовимірний масив значень одного типу. Змінна має
ім'я, тип даних і фігура, описані її списком розмірів. Кожна змінна може
також пов’язані Атрибути (див. нижче), а також значення даних. Ім'я, тип даних,
і форма змінної визначаються її оголошенням у файлі змінна розділ CDL
опис. Змінна може мати те саме ім'я, що й вимір; за домовленістю таке
змінна є одновимірною і містить координати розміру, який вона називає.
Розміри не повинні мати відповідних змінних.
netCDF атрибут містить інформацію про змінну netCDF або про весь netCDF
набір даних. Атрибути використовуються для визначення таких властивостей, як одиниці, спеціальні значення, максимум
і мінімально допустимі значення, коефіцієнти масштабування, зміщення та параметри. Інформація про атрибути
представлений окремими значеннями або масивами значень. Наприклад, «одиниці» є атрибутом
представлений символьним масивом, таким як "celsius". Атрибут має асоційований
змінна, ім'я, тип даних, довжина та значення. На відміну від змінних, які є
призначені для даних, атрибути призначені для метаданих (даних про дані).
У CDL атрибут позначається змінною та ім'ям атрибута, розділених символом `:'. Це
можна призначити в цілому атрибути, не пов'язані з жодною змінною до netCDF as
ціле, використовуючи `:' перед назвою атрибута. Тип даних атрибута в CDL
походить від типу присвоєного йому значення. Довжина атрибута
кількість значень даних, присвоєних йому, або кількість символів у рядку символів
призначений до нього. Кілька значень присвоюються не символьним атрибутам шляхом розділення
значення з комами. Усі значення, призначені атрибуту, мають бути одного типу.
Назви параметрів, змінних та атрибутів CDL мають починатися з алфавіту
символ або "_", а наступні символи можуть бути буквено-цифровими або "_" або "-".
The optional дані розділ специфікації CDL, де можуть бути змінні netCDF
ініціалізовано. Синтаксис ініціалізації простий: ім'я змінної, знак рівності,
і розділений комами список констант (можливо, розділених пробілами, табуляціями та новими рядками)
закінчується крапкою з комою. Для багатовимірних масивів останній вимір змінюється
найшвидший. Таким чином, для матриць використовується порядок рядків, а не порядок стовпців. Якщо менше значень
надаються, ніж необхідно для заповнення змінної, вона розширюється залежно від типу
`значення заповнення', яке можна змінити, вказавши значення для виділеної змінної
атрибут під назвою _FillValue. Типи констант не повинні відповідати типу, оголошеному для
змінна; наприклад, для перетворення цілих чисел у з плаваючою комою виконуються примуси. The
константу `_' можна використовувати для визначення значення заповнення для змінної.
примітив дані типи
бак символи
байт 8-бітові дані
коротка 16-розрядні цілі числа зі знаком
довго 32-розрядні цілі числа зі знаком
Int (синонім до довго)
плавати IEEE з плаваючою комою з одинарною точністю (32 біти)
реальний (синонім до плавати)
подвійний IEEE з плаваючою комою подвійної точності (64 біта)
За винятком доданого типу даних байт та відсутність непідписаний, CDL підтримує те саме
примітивні типи даних як C. Імена для примітивних типів даних є зарезервованими словами в
CDL, тому імена змінних, вимірів та атрибутів не повинні бути іменами типів. в
оголошення, назви типів можуть бути вказані як у верхньому, так і в нижньому регістрі.
Байти відрізняються від символів тим, що вони призначені для зберігання повних восьми біт даних,
і нульовий байт не має особливого значення, як для символьних даних. ncgen3
новонавернені байт декларації до бак оголошення у вихідному коді C і в
нестандартний BYTE оголошення у вихідному коді Fortran.
Шорти можуть містити значення від -32768 до 32767. ncgen3 новонавернені коротка декларації до
коротка оголошення у вихідному коді C і до нестандартного ЦІЛЕ*2 декларація в
вивести код Fortran.
Довги можуть утримувати значення від -2147483648 до 2147483647. ncgen3 новонавернені довго
декларації до довго оголошення у вихідному коді C і до INTEGER декларації в
вивести код Fortran. Int та ціле прийняті як синоніми для довго в CDL
декларації. Тепер, коли є платформи з 64-бітними представленнями для C longs, це
можливо, краще використовувати Int синонім, щоб уникнути плутанини.
Поплавки можуть утримувати значення приблизно від -3.4+38 до 3.4+38. Їхнє зовнішнє представництво є
як 32-бітові нормовані числа з плаваючою комою одинарної точності IEEE. ncgen3 новонавернені плавати
декларації до плавати оголошення у вихідному коді C і до НЕРУХОМІСТЬ декларації на виході
Код Fortran. реальний прийнято як синонім для плавати в деклараціях CDL.
Подвійне значення може містити приблизно від -1.7+308 до 1.7+308. Їхнє зовнішнє уявлення
є стандартизованими числами з плаваючою комою з подвійною точністю 64-бітного стандарту IEEE. ncgen3
новонавернені подвійний декларації до подвійний оголошення у вихідному коді C і до ПОДВІЙНИЙ
ПРЕЦИЗІЯ оголошення у вихідному коді Fortran.
CDL Константи
Константи, призначені атрибутам або змінним, можуть бути будь-якого з основних типів netCDF.
Синтаксис констант подібний до синтаксису C, за винятком того, що суфікси типу повинні бути
додається до шортів і поплавків, щоб відрізнити їх від довгих і подвійних.
A байт константа представлена одним символом або кількома символьною escape-послідовністю
укладені в одинарні лапки. Наприклад,
'a' // ASCII `a'
'\0' // нульовий байт
'\n' // символ нового рядка ASCII
'\33' // escape-символ ASCII (33 вісімковий)
'\x2b' // ASCII плюс (2b шістнадцятковий)
'\377' // 377 вісімкове число = 255 десяткових, не ASCII
Символьні константи беруться в подвійні лапки. Може бути представлений символьний масив
як рядок, узятий у подвійні лапки. Дотримуються звичайні угоди про вихід рядка C.
Наприклад
"a" // ASCII `a'
"Два\nрядки\n" // рядок із 10 символів із двома вбудованими новими рядками
"a bell:\007" // рядок, що містить дзвінок ASCII
Зауважте, що масив символів netCDF "a" вписується в одноелементну змінну, оскільки немає
передбачається кінцевий символ NULL. Однак нульовий байт у символьному масиві є
трактується як закінчення значущих персонажів ncdump програму, дотримуючись
C конвенція. Отже, нульовий байт не повинен бути вбудований в рядок символів, якщо
в кінці: використовуйте байт замість типу даних для байтових масивів, які містять нульовий байт.
NetCDF і CDL не мають рядкового типу, а лише символьні масиви фіксованої довжини, які можуть бути
багатовимірний.
коротка цілі константи призначені для представлення 16-бітових величин зі знаком. Форма
з коротка константа — це ціла константа з додаванням `s' або `S'. Якщо коротка
константа починається з "0", вона інтерпретується як вісімкова, за винятком того, що якщо вона починається з "0x",
вона інтерпретується як шістнадцяткова константа. Наприклад:
-2s // короткий -2
0123s // вісімкова
0x7ffs //шістнадцятковий
Довго цілі константи призначені для представлення 32-бітових величин зі знаком. Форма
з довго константа — це звичайна ціла константа, хоча прийнятно додати an
необов'язково `l' або `L'. Якщо довго константа починається з `0', вона інтерпретується як вісімкова,
за винятком того, що якщо він починається з `0x', він інтерпретується як шістнадцяткова константа. Приклади
дійсних довго константи включають:
-2
1234567890L
0123 // вісімкова
0x7ff // шістнадцятковий
Константи типу з плаваючою комою плавати підходять для представлення з плаваючою комою
дані з приблизно сімома значущими цифрами точності. Форма а плавати константа є
те саме, що константа з плаваючою комою C з додаванням `f' або `F'. Наприклад,
всі наступні є прийнятними плавати константи:
-2.0f
3.14159265358979f // буде скорочено до меншої точності
1.f
Константи типу з плаваючою комою подвійний підходять для представлення з плаваючою комою
дані з приблизно шістнадцятьма значущими цифрами точності. Форма а подвійний константа є
те саме, що константа з плаваючою комою. Додатково може бути додано "d" або "D". Для
Наприклад, всі наступні є прийнятними подвійний константи:
-2.0
3.141592653589793
1.0е-20
1.г
Використовуйте ncgen3 онлайн за допомогою служб onworks.net