Это команда ncgen-hdf, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
ncgen - из файла CDL сгенерировать файл netCDF, программу C или программу Fortran
СИНТАКСИС
ncgen [-b] [-c] [-f] [-n] [-o выходной файл] входной_файл
ОПИСАНИЕ
нкген генерирует либо файл netCDF, либо исходный код C или Fortran для создания файла netCDF.
Вход в нкген это описание файла netCDF на небольшом языке, известном как CDL.
(Network Common Data form Language), описанный ниже. Если в
ссылающееся нкген, он просто проверяет синтаксис входного файла CDL, вызывая ошибку
сообщения о любых нарушениях синтаксиса CDL. Другие варианты могут быть использованы для создания
соответствующий файл netCDF, чтобы сгенерировать программу C, которая использует интерфейс netCDF C для
создать файл netCDF или сгенерировать программу Fortran, которая использует netCDF Fortran
интерфейс для создания того же файла netCDF.
нкген можно использовать с сопутствующей программой нкдамп выполнить несколько простых операций с
netCDF файлы. Например, чтобы переименовать измерение в файле netCDF, используйте нкдамп чтобы получить
Версия CDL файла netCDF, отредактируйте файл CDL, чтобы изменить имя размеров,
И использовать нкген для создания соответствующего файла netCDF из отредактированного файла CDL.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-b Создайте (двоичный) файл netCDF. Если -o опция отсутствует, имя файла по умолчанию
будет построен из имени netCDF (указанного после NetCDF ключевое слово в
input), добавив расширение .nc. Если файл уже существует с
указанное имя, оно будет перезаписано.
-c Создайте C исходный код, который создаст файл netCDF, соответствующий netCDF
Технические характеристики. Исходный код C выводится на стандартный вывод.
-f Создайте Фортран исходный код, который создаст файл netCDF, соответствующий netCDF
Технические характеристики. Исходный код Fortran выводится на стандартный вывод.
-o выходной файл
Имя созданного файла netCDF. Если этот параметр указан, он подразумевает "-b"
вариант. (Эта опция необходима, потому что файлы netCDF не могут быть записаны напрямую
в стандартный вывод, так как стандартный вывод недоступен для поиска.)
-n Подобно -b опция, за исключением того, что создает файл netCDF с устаревшим расширением `.cdf '
вместо расширения `.nc ', при отсутствии имени выходного файла, указанного
-O вариант. Эта опция поддерживается только для обратной совместимости.
ПРИМЕРЫ
Проверьте синтаксис файла CDL `foo.cdl':
ncgen foo.cdl
Из файла CDL `foo.cdl', сгенерируйте эквивалентный двоичный файл netCDF с именем `x.nc':
ncgen -o x.nc foo.cdl
Из файла CDL `foo.cdl', сгенерируйте программу на C, содержащую функцию netCDF
вызовы, необходимые для создания эквивалентного двоичного файла netCDF с именем `x.nc':
ncgen -c -o x.nc foo.cdl
ИСПОЛЬЗОВАНИЕ
CDL Синтаксис Итого
Ниже приведен пример синтаксиса CDL, описывающий файл netCDF с несколькими именованными измерениями.
(широта, долгота и время), переменные (Z, t, p, rh, lat, lon, время), атрибуты переменных (единицы,
long_name, valid_range, _FillValue) и некоторые данные. Ключевые слова CDL выделены жирным шрифтом. (Этот
пример предназначен для иллюстрации синтаксиса; реальный файл CDL будет иметь более полный
набор атрибутов, чтобы данные были более самоописательными.)
NetCDF foo {// пример спецификации netCDF в CDL
размеры:
широта = 10, долгота = 5, время = Неограниченный ;
переменные:
длинной lat (лат), lon (долг), время (время);
плавать Z (время, широта, долгота), t (время, лат, долгота);
двойной p (время, широта, долгота);
длинной rh (время, широта, долгота);
// переменные атрибуты
широта: long_name = "широта";
lat: units = "северные градусы";
lon: long_name = "долгота";
долг: единицы = "градусы_восток";
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 как
целое, используя ":" перед именем атрибута. Тип данных атрибута в CDL:
производный от типа присвоенного ему значения. Длина атрибута - это
количество присвоенных ему значений данных или количество символов в символьной строке
назначенный на это. Множественные значения присваиваются несимвольным атрибутам путем разделения
значения через запятую. Все значения, присвоенные атрибуту, должны быть одного типа.
Имена размеров, переменных и атрибутов CDL должны начинаться с буквенного обозначения.
символ или "_", а последующие символы могут быть буквенно-цифровыми, "_" или "-".
Необязательный данным раздел спецификации CDL, где могут быть переменные netCDF
инициализирован. Синтаксис инициализации прост: имя переменной, знак равенства,
и список констант, разделенных запятыми (возможно, разделенных пробелами, табуляциями и символами новой строки)
заканчивается точкой с запятой. Для многомерных массивов последнее измерение варьируется
самый быстрый. Таким образом, для матриц используется порядок строк, а не столбцов. Если меньше значений
поставляются, чем необходимо для заполнения переменной, он расширяется зависящим от типа
`заполнить значение ', которое можно переопределить, указав значение для выделенной переменной
атрибут с именем `_FillValue '. Типы констант могут не совпадать с типом, объявленным для
Переменная; приведения выполняются, например, для преобразования целых чисел в числа с плавающей запятой.
Примитивный Данные Тип
колесница символы
байт 8-битные данные
короткие 16-битные целые числа со знаком
длинной 32-битные целые числа со знаком
Int (синоним длинной)
плавать IEEE с плавающей запятой одинарной точности (32 бита)
реальные (синоним плавать)
двойной IEEE с плавающей запятой двойной точности (64 бита)
За исключением добавленного типа данных байт и отсутствие неподписанный, CDL поддерживает то же
примитивные типы данных как C. Имена для примитивных типов данных являются зарезервированными словами в
CDL, поэтому имена переменных, измерений и атрибутов не должны быть именами типов. В
в объявлениях имена типов могут быть указаны как в верхнем, так и в нижнем регистре.
Байты отличаются от символов тем, что они предназначены для хранения полных восьми бит данных,
а нулевой байт не имеет особого значения, как для символьных данных. нкген
преобразует байт декларации колесница объявления в выходном коде C и в
нестандартный BYTE объявление в выходном коде Fortran.
Шорты могут иметь значения от -32768 до 32767. нкген преобразует короткие декларации
короткие объявления в выходном коде C и нестандартных ЦЕЛОЕ * 2 декларация в
выводить код Fortran.
Длинные позиции могут содержать значения от -2147483648 до 2147483647. нкген преобразует длинной
декларации длинной объявления в выходном коде C и в ЦЕЛОЕ заявления в
выводить код Fortran. Int и целое принимаются как синонимы длинной в CDL
декларации. Теперь, когда есть платформы с 64-битными представлениями для C long, это
может быть лучше использовать Int синоним, чтобы избежать путаницы.
Поплавки могут содержать значения от -3.4 + 38 до 3.4 + 38. Их внешнее представление
как 32-битные IEEE нормализованные числа с плавающей запятой одинарной точности. нкген преобразует плавать
декларации плавать объявления в выходном коде C и в РЕАЛ объявления в выводе
Код на Фортране. реальные принято как синоним плавать в декларациях CDL.
Двойники могут содержать значения от -1.7 + 308 до 1.7 + 308. Их внешнее представление
представляет собой 64-битные нормализованные числа с плавающей запятой двойной точности, соответствующие стандарту IEEE. нкген
преобразует двойной декларации двойной объявления в выходном коде C и в ДВОЙНОЙ
ТОЧНОСТЬ объявления в выходном коде Fortran.
CDL Константы
Константы, присвоенные атрибутам или переменным, могут быть любого из основных типов netCDF.
Синтаксис констант аналогичен синтаксису C, за исключением того, что суффиксы типов должны быть
добавлены к шортам и поплавкам, чтобы отличать их от длинных и двойных.
A байт константа представлена одним или несколькими символами escape-последовательностью
заключен в одинарные кавычки. Например,
'а' // ASCII `а '
'\ 0' // нулевой байт
'\ n' // символ новой строки ASCII
'\ 33' // escape-символ ASCII (33 восьмеричный)
'\ x2b' // ASCII плюс (2b шестнадцатеричный)
'\ 377' // 377 в восьмеричном виде = 255 в десятичном, не-ASCII
Символьные константы заключаются в двойные кавычки. Может быть представлен массив символов
в виде строки, заключенной в двойные кавычки. Соблюдаются обычные соглашения об экранировании строк C.
Например
"а" // ASCII `а '
"Two \ nlines \ n" // 10-символьная строка с двумя встроенными символами новой строки
"звонок: \ 007" // строка, содержащая звонок ASCII
Обратите внимание, что символьный массив netCDF "a" подходит для одноэлементной переменной, поскольку нет
предполагается завершающий символ NULL. Однако нулевой байт в массиве символов равен
интерпретируется как конец значимых символов нкдамп программа, следуя
Соглашение C. Следовательно, байт NULL не должен быть встроен в строку символов, если только
в конце: используйте байт вместо этого тип данных для байтовых массивов, содержащих нулевой байт.
NetCDF и CDL не имеют строкового типа, а только массивы символов фиксированной длины, которые могут быть
многомерный.
короткие Целочисленные константы предназначены для представления 16-битовых величин со знаком. Форма
в А короткие Константа - это целочисленная константа с добавленными буквами "s" или "S". Если короткие
константа начинается с `0 ', она интерпретируется как восьмеричная, за исключением того, что если она начинается с` 0x',
он интерпретируется как шестнадцатеричная константа. Например:
-2 с // короткое -2
0123s // восьмеричный
0x7ffs // шестнадцатеричный
Длинное Целочисленные константы предназначены для представления 32-битовых величин со знаком. Форма
в А длинной Константа - обычная целочисленная константа, хотя допустимо добавлять
необязательный l или L. Если длинной константа начинается с `0 ', она интерпретируется как восьмеричная,
за исключением того, что если он начинается с «0x», он интерпретируется как шестнадцатеричная константа. Примеры
действительных длинной константы включают:
-2
1234567890L
0123 // восьмеричный
0x7ff // шестнадцатеричный
Константы типа с плавающей запятой плавать подходят для представления с плавающей запятой
данные с точностью около семи значащих цифр. Форма плавать постоянная
то же самое, что и константа с плавающей запятой C с добавлением `f 'или` F'. Например,
все следующие приемлемы плавать константы:
-2.0ф
3.14159265358979f // будет усечено с меньшей точностью
1.ф
Константы типа с плавающей запятой двойной подходят для представления с плавающей запятой
данные с точностью около шестнадцати значащих цифр. Форма двойной постоянная
то же, что и константа с плавающей запятой C. Могут быть добавлены необязательные символы "d" или "D". Для
пример, все следующие приемлемы двойной константы:
-2.0
3.141592653589793
1.0e-20
1.д
Используйте ncgen-hdf онлайн с помощью сервисов onworks.net