Questo è il comando ncgen3 che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS
PROGRAMMA:
NOME
ncgen3 - Da un file CDL genera un netCDF classic o un classicfile a 64 bit, un programma C o
un programma Fortran
SINOSSI
ncgen3 [-b] [-c] [-f] [-k tipo_di_file] [-x] [-n] [-o netcdf_nomefile] file di input
DESCRIZIONE
ncgen3 genera un file netCDF o un codice sorgente C o Fortran per creare un netCDF
file. L'input a ncgen3 è una descrizione di un file netCDF in un piccolo linguaggio noto come
CDL (network Common Data form Language), descritto di seguito. Se non vengono specificate opzioni in
invocando ncgen3, controlla semplicemente la sintassi del file CDL di input, producendo errori
messaggi per eventuali violazioni della sintassi CDL. Altre opzioni possono essere utilizzate per creare il
file netCDF corrispondente, per generare un programma C che utilizza l'interfaccia C netCDF per
creare il file netCDF, o per generare un programma Fortran che utilizzi il netCDF Fortran
interfaccia per creare lo stesso file netCDF.
ncgen3 può essere utilizzato con il programma companion ncdump per eseguire alcune semplici operazioni su
file netCDF. Ad esempio, per rinominare una dimensione in un file netCDF, utilizzare ncdump prendere un
Versione CDL del file netCDF, modificare il file CDL per cambiare il nome delle dimensioni,
E l'uso ncgen3 per generare il file netCDF corrispondente dal file CDL modificato.
VERSIONI
-b Crea un file netCDF (binario). Se la -o l'opzione è assente, un nome di file predefinito
sarà costruito dal nome netCDF (specificato dopo il netcdf parola chiave nel
input) aggiungendo l'estensione `.nc'. Se esiste già un file con il
nome specificato, verrà sovrascritto.
-c Generare C codice sorgente che creerà un file netCDF corrispondente al netCDF
specifica. Il codice sorgente C viene scritto sullo standard output.
-f Generare Fortran codice sorgente che creerà un file netCDF corrispondente al netCDF
specifica. Il codice sorgente Fortran viene scritto sullo standard output.
-o netcdf_file
Nome per il file binario netCDF creato. Se questa opzione è specificata, implica
il "-b" opzione. (Questa opzione è necessaria perché i file netCDF non possono essere scritti
direttamente all'output standard, poiché l'output standard non è ricercabile.)
-k tipo_di_file
Utilizzando -k2 o -k "offset a 64 bit" si specifica che il file generato (o programma) dovrebbe
utilizzare la versione 2 del formato che impiega offset di file a 64 bit. L'impostazione predefinita è utilizzare
formato versione 1 ("classico") con offset di file a 32 bit, sebbene ciò limiti il
dimensione del file netCDF, variabili e record alle dimensioni supportate da
formato classico. (NetCDF-4 supporterà ulteriori tipi di file netCDF,
"netCDF-4" e "netCDF-4 classic model".) Nota: -v è anche accettato per indicare il
la stessa cosa di -k per compatibilità con le versioni precedenti, ma è preferibile -k, per abbinare
opzione ncdump corrispondente.
-x Non inizializzare i dati con valori di riempimento. Questo può velocizzare la creazione di grandi netCDF
file molto, ma in seguito tenta di leggere i dati non scritti dal file generato
non sarà facilmente individuabile.
ESEMPI
Controlla la sintassi del file CDL `foo.cdl':
ncgen3 foo.cdl
Dal file CDL `foo.cdl', genera un file netCDF binario equivalente chiamato `x.nc':
ncgen3 -o x.nc foo.cdl
Dal file CDL `foo.cdl', genera un programma C contenente la funzione netCDF
invocazioni necessarie per creare un file binario netCDF equivalente chiamato `x.nc':
ncgen3 -c -o x.nc foo.cdl
USO
CDL Sintassi Sintesi
Di seguito è riportato un esempio di sintassi CDL, che descrive un file netCDF con diverse dimensioni denominate
(lat, lon e tempo), variabili (Z, t, p, rh, lat, lon, tempo), attributi variabili (unità,
long_name, valid_range, _FillValue) e alcuni dati. Le parole chiave CDL sono in grassetto. (Questo
esempio ha lo scopo di illustrare la sintassi; un vero file CDL avrebbe un più completo
insieme di attributi in modo che i dati siano più completamente autodescrittivi.)
netcdf foo { // un esempio di specifica netCDF in CDL
dimensioni:
lat = 10, lon = 5, tempo = illimitato ;
variabili:
lungo lat(lat), lon(lon), tempo(tempo);
galleggiante Z(tempo,lat,lon), t(tempo,lat,lon);
doppio p(tempo,lat,lon);
lungo rh(tempo,lat,lon);
// attributi variabili
lat:long_name = "latitudine";
lat:units = "gradi_nord";
lon:long_name = "longitudine";
lon:units = "gradi_est";
time:units = "secondi dal 1992-1-1 00:00:00";
Z:unità = "metri geopotenziali";
Z:intervallo_valido = 0., 5000.;
p:_ValoreRiempimento = -9999.;
rh:_FillValue = -1;
dati:
lat = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;
lon = -140, -118, -96, -84, -52;
}
Tutte le istruzioni CDL sono terminate da un punto e virgola. È possibile utilizzare spazi, tabulazioni e nuove righe
liberamente per la leggibilità. I commenti possono seguire i caratteri `//' su qualsiasi riga.
Una descrizione CDL è composta da tre parti opzionali: dimensioni, variabilie dati,
iniziando con la parola chiave dimensioni:, variabili:e dati, rispettivamente. La variabile
la parte può contenere variabile dichiarazioni e attributo assegnazioni.
Una reteCDF dimensione viene utilizzato per definire la forma di uno o più multidimensionali
variabili contenute nel file netCDF. Una dimensione netCDF ha un nome e una dimensione. In
la maggior parte di una dimensione in un file netCDF può avere il illimitato dimensione, che significa una variabile
l'utilizzo di questa dimensione può raggiungere qualsiasi lunghezza (come un numero di record in un file).
A variabile rappresenta un array multidimensionale di valori dello stesso tipo. Una variabile ha
un nome, un tipo di dati e una forma descritta dal relativo elenco di dimensioni. Ogni variabile può
hanno anche associato gli attributi (vedi sotto) così come i valori dei dati. Il nome, il tipo di dati,
e la forma di una variabile sono specificate dalla sua dichiarazione nella variabile sezione di un CDL
descrizione. Una variabile può avere lo stesso nome di una dimensione; per convenzione come
variabile è unidimensionale e contiene le coordinate della dimensione che nomina.
Le dimensioni non devono avere variabili corrispondenti.
Una reteCDF attributo contiene informazioni su una variabile netCDF o sull'intero netCDF
insieme di dati. Gli attributi vengono utilizzati per specificare proprietà come unità, valori speciali, massimo
e valori minimi validi, fattori di scala, offset e parametri. Informazioni sugli attributi
è rappresentato da singoli valori o matrici di valori. Ad esempio, "unità" è un attributo
rappresentato da un array di caratteri come "celsius". Un attributo ha un associato
variabile, un nome, un tipo di dati, una lunghezza e un valore. A differenza delle variabili che sono
destinati ai dati, gli attributi sono destinati ai metadati (dati sui dati).
In CDL, un attributo è designato da una variabile e da un nome di attributo, separati da `:'. Esso
è possibile assegnare globale attributi non associati ad alcuna variabile al netCDF as
un intero usando `:' prima del nome dell'attributo. Il tipo di dati di un attributo in CDL è
derivato dal tipo di valore ad esso assegnato. La lunghezza di un attributo è la
numero di valori di dati assegnati ad esso, o il numero di caratteri nella stringa di caratteri
ad esso assegnato. Più valori vengono assegnati ad attributi non di carattere separando
i valori con le virgole. Tutti i valori assegnati a un attributo devono essere dello stesso tipo.
I nomi delle dimensioni, delle variabili e degli attributi CDL devono iniziare con un carattere alfabetico
carattere o "_", ei caratteri successivi possono essere alfanumerici o "_" o "-".
Facoltativo dati sezione di una specifica CDL è dove possono essere le variabili netCDF
inizializzato. La sintassi di un'inizializzazione è semplice: un nome di variabile, un segno di uguale,
e un elenco di costanti delimitate da virgole (eventualmente separate da spazi, tabulazioni e nuove righe)
terminato con un punto e virgola. Per gli array multidimensionali, l'ultima dimensione varia
più veloce. Pertanto, per le matrici viene utilizzato l'ordine di riga anziché l'ordine di colonna. Se meno valori
sono forniti di quelli necessari per riempire una variabile, viene esteso con un dipendente dal tipo
`valore di riempimento', che può essere sovrascritto fornendo un valore per una variabile distinta
attributo denominato `_FillValue'. I tipi di costanti non devono necessariamente corrispondere al tipo dichiarato per
una variabile; le coercizioni vengono eseguite per convertire i numeri interi in virgola mobile, ad esempio. Il
La costante `_' può essere utilizzata per designare il valore di riempimento per una variabile.
Primitivo Dati Tipi
serbatoio caratteri
byte 8-bit di dati
corto Interi con segno a 16 bit
lungo Interi con segno a 32 bit
int (sinonimo di lungo)
galleggiante IEEE in virgola mobile a precisione singola (32 bit)
di rose (sinonimo di galleggiante)
doppio IEEE in virgola mobile a doppia precisione (64 bit)
Fatta eccezione per il tipo di dati aggiunto byte e la mancanza di unsigned, CDL supporta lo stesso
tipi di dati primitivi come C. I nomi per i tipi di dati primitivi sono parole riservate in
CDL, quindi i nomi di variabili, dimensioni e attributi non devono essere nomi di tipo. In
dichiarazioni, i nomi dei tipi possono essere specificati in maiuscolo o minuscolo.
I byte differiscono dai caratteri in quanto sono destinati a contenere otto bit completi di dati,
e il byte zero non ha un significato speciale, come per i dati carattere. ncgen3
convertiti byte dichiarazioni a serbatoio dichiarazioni nel codice C di output e al
non standard BYTE dichiarazione in output codice Fortran.
I pantaloncini possono contenere valori compresi tra -32768 e 32767. ncgen3 convertiti corto dichiarazioni a
corto dichiarazioni nel codice C di output e al non standard INTERO*2 dichiarazione in
emettere il codice Fortran.
I long possono contenere valori compresi tra -2147483648 e 2147483647. ncgen3 convertiti lungo
dichiarazioni a lungo dichiarazioni nel codice C di output e to INTEGER dichiarazioni in
emettere il codice Fortran. int e numero intero sono accettati come sinonimi di lungo nella CDL
dichiarazioni. Ora che ci sono piattaforme con rappresentazioni a 64 bit per C long, è
potrebbe essere meglio usare il int sinonimo per evitare confusione.
I float possono contenere valori compresi tra circa -3.4+38 e 3.4+38. La loro rappresentazione esterna è
come numeri in virgola mobile a precisione singola normalizzati IEEE a 32 bit. ncgen3 convertiti galleggiante
dichiarazioni a galleggiante dichiarazioni nel codice C di output e to VERO dichiarazioni in uscita
Codice Fortran. di rose è accettato come sinonimo di galleggiante nelle dichiarazioni CDL.
I doppi possono contenere valori tra circa -1.7+308 e 1.7+308. La loro rappresentazione esterna
è come numeri in virgola mobile a doppia precisione normalizzati standard IEEE a 64 bit. ncgen3
convertiti doppio dichiarazioni a doppio dichiarazioni nel codice C di output e to RADDOPPIARE
PRECISIONE dichiarazioni in output codice Fortran.
CDL Costante
Le costanti assegnate ad attributi o variabili possono essere di qualsiasi tipo netCDF di base.
La sintassi per le costanti è simile alla sintassi C, tranne per il fatto che i suffissi di tipo devono essere
aggiunti a short e float per distinguerli da long e double.
A byte la costante è rappresentata da un singolo carattere o da una sequenza di escape di più caratteri
racchiuso tra virgolette singole. Per esempio,
'a' // ASCII 'a'
'\0' // un byte zero
'\n' // Carattere di nuova riga ASCII
'\33' // Carattere di escape ASCII (33 ottale)
'\x2b' // ASCII plus (2b esadecimale)
'\377' // 377 ottale = 255 decimale, non ASCII
Le costanti di carattere sono racchiuse tra virgolette. Un array di caratteri può essere rappresentato
come una stringa racchiusa tra virgolette. Vengono rispettate le solite convenzioni di escape della stringa C.
Per esempio
"a" // ASCII `a'
"Due\nrighe\n" // una stringa di 10 caratteri con due nuove righe incorporate
"a bell:\007" // una stringa contenente una campana ASCII
Si noti che l'array di caratteri netCDF "a" si adatterebbe a una variabile a un elemento, poiché no
si presuppone il carattere NULL di terminazione. Tuttavia, un byte zero in un array di caratteri è
interpretato come la fine dei personaggi significativi dal ncdump programma, seguendo il
Convenzione C. Pertanto, un byte NULL non dovrebbe essere incorporato in una stringa di caratteri a meno che
alla fine: usa il byte tipo di dati invece per gli array di byte che contengono il byte zero.
NetCDF e CDL non hanno tipi di stringa, ma solo array di caratteri a lunghezza fissa, che possono essere
multidimensionale.
corto le costanti intere servono a rappresentare quantità con segno a 16 bit. Il modulo
di un corto costante è una costante intera con una `s' o una `S' aggiunta. Se un corto
costante inizia con "0", viene interpretata come ottale, tranne che se inizia con "0x",
viene interpretato come una costante esadecimale. Per esempio:
-2s // un breve -2
0123s // ottale
0x7ffs //esadecimale
Lunghi le costanti intere servono a rappresentare quantità con segno a 32 bit. Il modulo
di un lungo costante è una costante intera ordinaria, sebbene sia accettabile aggiungere an
'l' o 'L' opzionale. Se un lungo la costante inizia con "0", viene interpretata come ottale,
tranne che se inizia con "0x", viene interpretato come una costante esadecimale. Esempi
di valido lungo le costanti includono:
-2
1234567890L
0123 // ottale
0x7ff // esadecimale
Costanti in virgola mobile di tipo galleggiante sono appropriati per rappresentare la virgola mobile
dati con circa sette cifre significative di precisione. La forma di a galleggiante costante è
lo stesso di una costante in virgola mobile C con una `f' o una `F' aggiunta. Ad esempio il
seguenti sono tutti accettabili galleggiante costanti:
-2.0 segg
3.14159265358979f // verrà troncato con minore precisione
xnumx.f
Costanti in virgola mobile di tipo doppio sono appropriati per rappresentare la virgola mobile
dati con circa sedici cifre significative di precisione. La forma di a doppio costante è
lo stesso di una costante in virgola mobile C. È possibile aggiungere una "d" o una "D" facoltativa. Per
esempio i seguenti sono tutti accettabili doppio costanti:
all'2.0 ottobre
3.141592653589793
1.0e-20 mila
1.d
Utilizzare ncgen3 online utilizzando i servizi onworks.net