Jest to polecenie ncmpigen, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
ncmpigen - Z pliku CDL wygeneruj plik netCDF, program C lub program Fortran
STRESZCZENIE
ncmpigen [-b] [-c] [-f] [-n] [-o nazwa_pliku_netcdf] [-w format pliku] plik_wejściowy
OPIS
ncmpigen generuje plik netCDF lub kod źródłowy C lub Fortran w celu utworzenia pliku netCDF
plik. Wejście do ncmpigen to opis pliku netCDF w małym znanym języku
jako CDL (sieciowy język wspólnego danych), opisany poniżej. Jeśli nie określono żadnych opcji
w wywoływaniu ncmpigen, sprawdza jedynie składnię wejściowego pliku CDL, powodując błąd
komunikaty dotyczące wszelkich naruszeń składni CDL. Inne opcje mogą być użyte do stworzenia
odpowiedni plik netCDF, aby wygenerować program w C, który używa interfejsu netCDF C do
utworzyć plik netCDF lub wygenerować program Fortran, który używa netCDF Fortran
interfejs do tworzenia tego samego pliku netCDF.
ncmpigen może być używany z programem towarzyszącym ncmpidump wykonać kilka prostych
operacje na plikach netCDF. Na przykład, aby zmienić nazwę wymiaru w pliku netCDF, użyj
ncmpidump aby uzyskać wersję CDL pliku netCDF, edytuj plik CDL, aby zmienić jego nazwę
wymiary i zastosowanie ncmpigen aby wygenerować odpowiedni plik netCDF z edytowanego pliku
plik CDL.
OPCJE
-b Utwórz (binarny) plik netCDF. Jeśli -o brak opcji, domyślna nazwa pliku
zostanie skonstruowany z nazwy netCDF (określonej po netcdf słowo kluczowe w
input), dołączając rozszerzenie `.nc'. Jeśli plik już istnieje z
podaną nazwę, zostanie nadpisana.
-c Wygeneruj C kod źródłowy, który utworzy plik netCDF pasujący do netCDF
specyfikacja. Kod źródłowy C jest zapisywany na standardowe wyjście.
-f Wygeneruj Fortran kod źródłowy, który utworzy plik netCDF pasujący do netCDF
specyfikacja. Kod źródłowy Fortran jest zapisywany na standardowym wyjściu.
-o plik_netcdf
Nazwa utworzonego binarnego pliku netCDF. Jeśli ta opcja jest określona, oznacza to
"-b" opcja. (Ta opcja jest konieczna, ponieważ nie można zapisywać plików netCDF
bezpośrednio na standardowe wyjście, ponieważ standardowego wyjścia nie można przeszukiwać).
-n Jak -b z wyjątkiem tworzenia pliku netCDF z przestarzałym rozszerzeniem `.cdf'
zamiast rozszerzenia `.nc', w przypadku braku nazwy pliku wyjściowego określonej przez
dotychczasowy -o opcja. Ta opcja jest obsługiwana tylko w celu zapewnienia zgodności z poprzednimi wersjami.
-v format pliku
Format pliku wyjściowego netCDF. Wartość file_format może wynosić: 1 lub
klasyczny dla formatu CDF-1. Przesunięcie 2 lub 64-bitowe to CDF-2. Zmienna 5 lub 64-bitowa dla
CDF-5. Domyślnym (jeśli ta opcja nie jest podana) jest CDF-1, klasyczny format.
PRZYKŁADY
Sprawdź składnię pliku CDL `foo.cdl':
ncpigen foo.cdl
Z pliku CDL `foo.cdl', wygeneruj odpowiedni binarny plik netCDF o nazwie `x.nc':
ncmpigen -o x.nc foo.cdl
Z pliku CDL `foo.cdl', wygeneruj program w C zawierający funkcję netCDF
wywołania niezbędne do utworzenia równoważnego binarnego pliku netCDF o nazwie `x.nc':
ncmpigen -c -o x.nc foo.cdl
ZASTOSOWANIE
CDL Składnia Podsumowanie
Poniżej znajduje się przykład składni CDL, opisujący plik netCDF z kilkoma nazwanymi wymiarami
(lat, lon i czas), zmienne (Z, t, p, rh, lat, lon, czas), atrybuty zmiennych (jednostki,
long_name, valid_range, _FillValue) i trochę danych. Słowa kluczowe CDL są pogrubione. (Ten
przykład ma na celu zilustrowanie składni; prawdziwy plik CDL byłby bardziej kompletny
zestaw atrybutów, aby dane były bardziej samoopisujące się.)
netcdf foo { // przykładowa specyfikacja netCDF w CDL
Wymiary:
lat = 10, lon = 5, czas = nieograniczone ;
zmienne:
długie lat(lat), lon(lon), czas(czas);
unosić się Z(czas,lat,dług), t(czas,lat,dług);
Podwójna p(czas,szerokość,długość);
długie rh(czas,szerokość,długość);
// zmienne atrybuty
lat:long_name = "szerokość geograficzna";
lat:jednostki = "stopnie_północ";
lon:long_name = "długość geograficzna";
lon:units = "stopnie_wschód";
time:units = "sekundy od 1992-1-1 00:00:00";
Z:units = "metry geopotencjalne";
Z:ważny_zakres = 0., 5000.;
p:_Wartość Wypełnienia = -9999.;
rh:_Wartość Wypełnienia = -1;
dane:
szerokość = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;
lon = -140, -118, -96, -84, -52;
}
Wszystkie instrukcje CDL są zakończone średnikiem. Można używać spacji, tabulatorów i znaków nowej linii
swobodnie dla czytelności. Komentarze mogą następować po znakach `//' w dowolnym wierszu.
Opis CDL składa się z trzech opcjonalnych części: Wymiary, zmienne, dane,
zaczynając od słowa kluczowego wymiary:, zmienne:, dane, odpowiednio. Zmienna
część może zawierać zmienna Oświadczenia oraz atrybut Zadania.
NetCDF wymiar służy do określenia kształtu jednego lub więcej wielowymiarowych
zmienne zawarte w pliku netCDF. Wymiar netCDF ma nazwę i rozmiar. Na
większość jednego wymiaru w pliku netCDF może mieć nieograniczone rozmiar, co oznacza zmienną
użycie tego wymiaru może wzrosnąć do dowolnej długości (jak numer rekordu w pliku).
A zmienna reprezentuje wielowymiarową tablicę wartości tego samego typu. Zmienna ma
nazwę, typ danych i kształt opisany przez jego listę wymiarów. Każda zmienna może
również skojarzone atrybuty (patrz poniżej), a także wartości danych. Nazwa, typ danych,
i kształt zmiennej określa jej deklaracja w zmienna sekcja CDL
opis. Zmienna może mieć taką samą nazwę jak wymiar; umownie takie
zmienna jest jednowymiarowa i zawiera współrzędne wymiaru, który nazywa.
Wymiary nie muszą mieć odpowiednich zmiennych.
NetCDF atrybut zawiera informacje o zmiennej netCDF lub o całym netCDF
zbiór danych. Atrybuty służą do określenia takich właściwości jak jednostki, wartości specjalne, maksimum
oraz minimalne prawidłowe wartości, współczynniki skalowania, przesunięcia i parametry. Informacje o atrybucie
jest reprezentowana przez pojedyncze wartości lub tablice wartości. Na przykład „jednostki” to atrybut
reprezentowana przez tablicę znaków, taką jak „Celsius”. Atrybut ma skojarzony
zmienna, nazwa, typ danych, długość i wartość. W przeciwieństwie do zmiennych, które są
przeznaczone dla danych, atrybuty są przeznaczone dla metadanych (danych o danych).
W CDL atrybut jest wyznaczany przez zmienną i nazwę atrybutu, oddzielone znakiem `:'. Ono
można przypisać światowy atrybuty niezwiązane z żadną zmienną do netCDF jako
całość, używając `:' przed nazwą atrybutu. Typ danych atrybutu w CDL to
pochodną typu przypisanej do niego wartości. Długość atrybutu to
liczba przypisanych do niej wartości danych lub liczba znaków w ciągu znaków
przypisane do niego. Wiele wartości jest przypisywanych do atrybutów nieznakowych przez rozdzielenie
wartości z przecinkami. Wszystkie wartości przypisane do atrybutu muszą być tego samego typu.
Nazwy wymiarów, zmiennych i atrybutów CDL muszą zaczynać się od alfabetu
znak lub `_', a kolejne znaki mogą być alfanumeryczne lub `_' lub `-'.
Opcjonalne dane sekcja specyfikacji CDL to miejsce, w którym mogą znajdować się zmienne netCDF
zainicjowane. Składnia inicjalizacji jest prosta: nazwa zmiennej, znak równości,
oraz listę stałych oddzielonych przecinkami (ewentualnie oddzielonych spacjami, tabulatorami i znakami nowej linii)
zakończone średnikiem. W przypadku tablic wielowymiarowych ostatni wymiar jest różny
najszybszy. W ten sposób w macierzach używana jest kolejność wierszy, a nie kolejność kolumn. Jeśli mniej wartości
są dostarczane niż są potrzebne do wypełnienia zmiennej, jest ona rozszerzona o zależny od typu
`wartość wypełnienia', którą można nadpisać, podając wartość wyróżnianej zmiennej
atrybut o nazwie `_FillValue'. Typy stałych nie muszą być zgodne z typem zadeklarowanym dla
zmienna; wymuszenia są wykonywane na przykład w celu konwersji liczb całkowitych na zmiennoprzecinkowe. The
stała `_' może być użyta do wyznaczenia wartości wypełnienia dla zmiennej.
Prymitywny Dane rodzaje
zwęglać znaków
bajt Dane 8-bit
krótki 16-bitowe liczby całkowite ze znakiem
długie 32-bitowe liczby całkowite ze znakiem
int (jednoznaczne z długie)
unosić się Liczba zmiennoprzecinkowa pojedynczej precyzji IEEE (32 bity)
real (jednoznaczne z unosić się)
Podwójna Liczba zmiennoprzecinkowa podwójnej precyzji IEEE (64 bity)
Z wyjątkiem dodanego typu danych bajt i brak unsigned, CDL obsługuje to samo
prymitywne typy danych jako C. Nazwy pierwotnych typów danych są słowami zastrzeżonymi w
CDL, więc nazwy zmiennych, wymiarów i atrybutów nie mogą być nazwami typów. w
deklaracje, nazwy typów mogą być podane z dużych lub małych liter.
Bajty różnią się od znaków tym, że są przeznaczone do przechowywania pełnych ośmiu bitów danych,
a bajt zerowy nie ma specjalnego znaczenia, tak jak ma to miejsce w przypadku danych znakowych. ncmpigen
nawróceni bajt deklaracje do zwęglać deklaracje w kodzie wyjściowym C i do
niestandardowe BYTE deklaracja w kodzie wyjściowym Fortran.
Spodenki mogą zawierać wartości od -32768 do 32767. ncmpigen nawróceni krótki deklaracje do
krótki deklaracje w kodzie wyjściowym C oraz do niestandardowego CAŁKOWITA*2 deklaracja w
wyjście kodu Fortran.
Długie pozycje mogą zawierać wartości od -2147483648 do 2147483647. ncmpigen nawróceni długie
deklaracje do długie deklaracje w kodzie wyjściowym C i do LICZBA CAŁKOWITA deklaracje w
wyjście kodu Fortran. int oraz liczba całkowita są akceptowane jako synonimy dla długie w CDL
deklaracje. Teraz, gdy istnieją platformy z 64-bitowymi reprezentacjami dla C długich, to
może lepiej użyć int synonim, aby uniknąć nieporozumień.
Float może zawierać wartości od około -3.4+38 do 3.4+38. Ich zewnętrzna reprezentacja to
jako 32-bitowe liczby zmiennoprzecinkowe znormalizowane IEEE o pojedynczej precyzji. ncmpigen nawróceni
unosić się deklaracje do unosić się deklaracje w kodzie wyjściowym C i do Niezależne deklaracje w
wyjście kodu Fortran. real jest akceptowany jako synonim słowa unosić się w deklaracjach CDL.
Podwójna może mieć wartości od około -1.7+308 do 1.7+308. Ich zewnętrzna reprezentacja
to 64-bitowe, znormalizowane liczby zmiennoprzecinkowe o podwójnej precyzji zgodne ze standardem IEEE. ncmpigen
nawróceni Podwójna deklaracje do Podwójna deklaracje w kodzie wyjściowym C i do PODWÓJNIE
PRECISION deklaracje w kodzie wyjściowym Fortran.
CDL Stałe
Stałe przypisane do atrybutów lub zmiennych mogą być dowolnego z podstawowych typów netCDF.
Składnia stałych jest podobna do składni C, z tym wyjątkiem, że sufiksy typów muszą być
dołączone do szortów i pływaków, aby odróżnić je od długich i podwójnych.
A bajt stała jest reprezentowana przez jednoznakową lub wieloznakową sekwencję ucieczki
ujęte w pojedynczych cudzysłowach. Na przykład,
'a' // ASCII 'a'
'\0' // bajt zerowy
'\n' // znak nowej linii ASCII
'\33' // Znak zmiany znaczenia ASCII (33 ósemkowe)
'\x2b' // ASCII plus (szesnastkowy 2b)
'\377' // 377 ósemkowe = 255 dziesiętne, inne niż ASCII
Stałe znakowe są ujęte w podwójne cudzysłowy. Może być reprezentowana tablica znaków
jako ciąg ujęty w podwójne cudzysłowy. Zwykłe konwencje ucieczki ciągów C są honorowane.
Na przykład
"a" // ASCII "a"
"Dwa\nwiersze\n" // 10-znakowy ciąg z dwoma osadzonymi znakami nowej linii
"dzwonek:\007" // ciąg zawierający dzwonek ASCII
Zauważ, że tablica znaków netCDF „a” zmieściłaby się w jednoelementowej zmiennej, ponieważ no
zakładany jest znak kończący NULL. Jednak bajt zerowy w tablicy znaków to
interpretowane jako koniec znaczących znaków przez ncmpidump program, śledzenie
konwencja C. Dlatego bajt NULL nie powinien być osadzony w ciągu znaków
chyba że na końcu: użyj bajt typ danych zamiast dla tablic bajtowych zawierających zero
bajt. NetCDF i CDL nie mają typu łańcuchowego, a jedynie tablice znaków o stałej długości, które
może być wielowymiarowy.
krótki Stałe całkowite są przeznaczone do reprezentowania 16-bitowych liczb ze znakiem. Forma
z krótki stała jest stałą całkowitą z dołączonym `s' lub `S'. Jeśli krótki
stała zaczyna się od `0', jest interpretowana jako ósemkowa, z wyjątkiem tego, że jeśli zaczyna się od `0x',
jest interpretowana jako stała szesnastkowa. Na przykład:
-2s // krótki -2
0123s // ósemkowe
0x7ffs //szesnastkowy
długo Stałe całkowite są przeznaczone do reprezentowania 32-bitowych liczb ze znakiem. Forma
z długie stała jest zwykłą stałą całkowitą, chociaż dopuszczalne jest dodanie
opcjonalne l lub l. Jeśli długie stała zaczyna się od `0', jest interpretowana jako ósemkowa,
z wyjątkiem tego, że jeśli zaczyna się od `0x', jest interpretowane jako stała szesnastkowa. Przykłady
ważne długie stałe obejmują:
-2
1234567890L
0123 // ósemkowe
0x7ff // szesnastkowy
Stałe zmiennoprzecinkowe typu unosić się są odpowiednie do reprezentowania liczby zmiennoprzecinkowej
dane z około siedmioma cyframi znaczącymi precyzji. Forma unosić się stała to
tak samo jak stała zmiennoprzecinkowa C z dołączonym `f' lub `F'. Na przykład
wszystkie poniższe są dopuszczalne unosić się stałe:
-2.0f
3.14159265358979f // zostanie obcięty z mniejszą precyzją
xnumx.f
Stałe zmiennoprzecinkowe typu Podwójna są odpowiednie do reprezentowania liczby zmiennoprzecinkowej
dane z dokładnością do około szesnastu cyfr znaczących. Forma Podwójna stała to
tak samo jak stała zmiennoprzecinkowa C. Można dołączyć opcjonalne `d' lub `D'. Do
przykład następujące są dopuszczalne Podwójna stałe:
-2.0
3.141592653589793
1.0e-20
1.d
DATA
$Data: 2014-04-16 13:38:34 -0500 (środa, 16 kwietnia 2014) $
Korzystaj z narzędzia ncmpigen online, korzystając z usług onworks.net