Il s'agit de la commande ncgen3 qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
ncgen3 - À partir d'un fichier CDL, générez un fichier classique netCDF ou classique 64 bits, un programme C ou
un programme Fortran
SYNOPSIS
ncgen3 [-b] [-c] [-f] [-k genre_de_fichier] [-x] [-n] [-o nom_fichier netcdf] fichier_entrée
DESCRIPTION
ncgen3 génère soit un fichier netCDF, soit un code source C ou Fortran pour créer un netCDF
déposer. L'entrée à ncgen3 est une description d'un fichier netCDF dans un petit langage appelé
CDL (Network Common Data form Language), décrit ci-dessous. Si aucune option n'est spécifiée dans
invoquer ncgen3, il vérifie simplement la syntaxe du fichier CDL d'entrée, produisant une erreur
messages pour toute violation de la syntaxe CDL. D'autres options peuvent être utilisées pour créer le
netCDF correspondant, pour générer un programme C qui utilise l'interface netCDF C pour
créer le fichier netCDF, ou pour générer un programme Fortran qui utilise le netCDF Fortran
interface pour créer le même fichier netCDF.
ncgen3 peut être utilisé avec le programme compagnon cdump pour effectuer quelques opérations simples sur
fichiers netCDF. Par exemple, pour renommer une dimension dans un fichier netCDF, utilisez cdump pour obtenir un
Version CDL du fichier netCDF, éditez le fichier CDL pour changer le nom des dimensions,
et utilise ncgen3 pour générer le fichier netCDF correspondant à partir du fichier CDL édité.
OPTIONS
-b Créez un fichier netCDF (binaire). Si la -o l'option est absente, un nom de fichier par défaut
sera construit à partir du nom netCDF (spécifié après le netcdf mot-clé dans le
input) en ajoutant l'extension `.nc'. Si un fichier existe déjà avec le
nom spécifié, il sera écrasé.
-c Générer C code source qui créera un fichier netCDF correspondant au netCDF
spécification. Le code source C est écrit sur la sortie standard.
-f Générer Fortran code source qui créera un fichier netCDF correspondant au netCDF
spécification. Le code source Fortran est écrit sur la sortie standard.
-o fichier_netcdf
Nom du fichier binaire netCDF créé. Si cette option est spécifiée, cela implique
le "-b". (Cette option est nécessaire car les fichiers netCDF ne peuvent pas être écrits
directement à la sortie standard, puisque la sortie standard n'est pas recherchable.)
-k genre_de_fichier
L'utilisation de -k2 ou -k "64-bit offset" spécifie que le fichier (ou programme) généré doit
utilisez la version 2 du format qui utilise des décalages de fichiers 64 bits. La valeur par défaut est d'utiliser
format version 1 ("classique") avec des décalages de fichiers 32 bits, bien que cela limite le
taille du fichier netCDF, des variables et des enregistrements aux tailles prises en charge par le
format classique. (NetCDF-4 prendra en charge d'autres types de fichiers netCDF,
"netCDF-4" et "netCDF-4 classic model".) Remarque : -v est également accepté pour signifier le
même chose que -k pour la compatibilité descendante, mais -k est préférable, pour correspondre au
option ncdump correspondante.
-x N'initialisez pas les données avec des valeurs de remplissage. Cela peut accélérer la création de grands netCDF
fichiers considérablement, mais tente plus tard de lire les données non écrites du fichier généré
ne sera pas facilement détectable.
EXEMPLES
Vérifiez la syntaxe du fichier CDL `foo.cdl':
ncgen3 foo.cdl
À partir du fichier CDL `foo.cdl', génère un fichier netCDF binaire équivalent nommé `x.nc':
ncgen3 -o x.nc foo.cdl
À partir du fichier CDL `foo.cdl', génère un programme C contenant la fonction netCDF
appels nécessaires pour créer un fichier netCDF binaire équivalent nommé `x.nc':
ncgen3 -c -o x.nc foo.cdl
UTILISATION
CDL Syntaxe Résumé
Vous trouverez ci-dessous un exemple de syntaxe CDL, décrivant un fichier netCDF avec plusieurs dimensions nommées
(lat, lon et time), variables (Z, t, p, rh, lat, lon, time), attributs de variables (unités,
long_name, valid_range, _FillValue) et quelques données. Les mots-clés CDL sont en gras. (Cette
exemple est destiné à illustrer la syntaxe ; un vrai fichier CDL aurait un fichier plus complet
ensemble d'attributs afin que les données soient plus complètement autodescriptives.)
netcdf foo { // un exemple de spécification netCDF dans CDL
dimensions:
lat = 10, lon = 5, temps = illimité ;
les variables:
Long lat(lat), lon(lon), heure(heure);
flotter Z(heure,lat,lon), t(heure,lat,lon);
double p(heure,lat,long);
Long rh(heure,lat,long);
// attributs variables
lat:nom_long = "latitude" ;
lat:unités = "degrés_nord" ;
lon:nom_long = "longitude" ;
lon:units = "degrés_est" ;
time:units = "secondes depuis 1992-1-1 00:00:00" ;
Z:unités = "compteurs géopotentiels" ;
Z:plage_valide = 0., 5000.;
p:_FillValue = -9999.;
rh:_FillValue = -1 ;
données,:
latitude = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90 ;
lon = -140, -118, -96, -84, -52 ;
}
Toutes les instructions CDL se terminent par un point-virgule. Les espaces, les tabulations et les sauts de ligne peuvent être utilisés
librement pour la lisibilité. Les commentaires peuvent suivre les caractères `//' sur n'importe quelle ligne.
Une description CDL se compose de trois parties facultatives : dimensions, les variables et données,,
commençant par le mot-clé dimensions:, variables: et données,, respectivement. La variable
une partie peut contenir variable déclarations et attribuer missions.
Un netCDF dimension est utilisé pour définir la forme d'un ou plusieurs des éléments multidimensionnels
variables contenues dans le fichier netCDF. Une dimension netCDF a un nom et une taille. À
la plupart des dimensions d'un fichier netCDF peuvent avoir le illimité taille, ce qui signifie une variable
l'utilisation de cette dimension peut atteindre n'importe quelle longueur (comme un numéro d'enregistrement dans un fichier).
A variable représente un tableau multidimensionnel de valeurs du même type. Une variable a
un nom, un type de données et une forme décrite par sa liste de dimensions. Chaque variable peut
ont également associé attributs (voir ci-dessous) ainsi que les valeurs des données. Le nom, le type de données,
et la forme d'une variable sont spécifiés par sa déclaration dans le variable section d'un CDL
la description. Une variable peut avoir le même nom qu'une dimension ; par convention un tel
La variable est unidimensionnelle et contient les coordonnées de la dimension qu'elle nomme.
Les dimensions n'ont pas besoin d'avoir des variables correspondantes.
Un netCDF attribuer contient des informations sur une variable netCDF ou sur l'ensemble du netCDF
base de données. Les attributs sont utilisés pour spécifier des propriétés telles que les unités, les valeurs spéciales, le maximum
et les valeurs valides minimales, les facteurs d'échelle, les décalages et les paramètres. Informations sur les attributs
est représenté par des valeurs uniques ou des tableaux de valeurs. Par exemple, « unités » est un attribut
représenté par un tableau de caractères tel que "celsius". Un attribut a un associé
variable, un nom, un type de données, une longueur et une valeur. Contrairement aux variables qui sont
destinés aux données, les attributs sont destinés aux métadonnées (données sur les données).
Dans CDL, un attribut est désigné par une variable et un nom d'attribut, séparés par `:'. Ce
est possible d'attribuer de défis attributs non associés à une variable au netCDF comme
un tout en utilisant `:' avant le nom de l'attribut. Le type de données d'un attribut dans CDL est
dérivé du type de la valeur qui lui est assignée. La longueur d'un attribut est la
nombre de valeurs de données qui lui sont affectées, ou le nombre de caractères dans la chaîne de caractères
lui est assigné. Plusieurs valeurs sont attribuées aux attributs non-caractères en séparant
les valeurs avec des virgules. Toutes les valeurs affectées à un attribut doivent être du même type.
Les noms des dimensions, variables et attributs CDL doivent commencer par une lettre alphabétique
caractère ou « _ », et les caractères suivants peuvent être alphanumériques ou « _ » ou « - ».
Le facultatif données, section d'une spécification CDL est l'endroit où les variables netCDF peuvent être
initialisé. La syntaxe d'une initialisation est simple : un nom de variable, un signe égal,
et une liste de constantes délimitées par des virgules (éventuellement séparées par des espaces, des tabulations et des sauts de ligne)
terminé par un point-virgule. Pour les tableaux multidimensionnels, la dernière dimension varie
le plus rapide. Ainsi, l'ordre des lignes plutôt que l'ordre des colonnes est utilisé pour les matrices. Si moins de valeurs
sont fournis que ce qui est nécessaire pour remplir une variable, il est étendu avec un type dépendant
« valeur de remplissage », qui peut être remplacée en fournissant une valeur pour une variable distincte
attribut nommé '_FillValue'. Les types de constantes n'ont pas besoin de correspondre au type déclaré pour
une variable; des coercitions sont faites pour convertir des entiers en virgule flottante, par exemple. Les
La constante `_' peut être utilisée pour désigner la valeur de remplissage d'une variable.
Primitif Sauvegarde de Types
carboniser caractères
octet 8 bits de données
court Entiers signés 16 bits
Long Entiers signés 32 bits
int (synonyme de Long)
flotter Virgule flottante simple précision IEEE (32 bits)
réal (synonyme de flotter)
double Virgule flottante double précision IEEE (64 bits)
À l'exception du type de données ajouté octet et le manque de non signé, CDL prend en charge le même
types de données primitifs comme C. Les noms des types de données primitifs sont des mots réservés dans
CDL, donc les noms de variables, de dimensions et d'attributs ne doivent pas être des noms de type. Dans
déclarations, les noms de type peuvent être spécifiés en majuscules ou en minuscules.
Les octets diffèrent des caractères en ce qu'ils sont destinés à contenir huit bits complets de données,
et l'octet zéro n'a pas de signification particulière, comme c'est le cas pour les données de caractères. ncgen3
convertis octet déclarations à carboniser déclarations dans le code C de sortie et au
non standard BYTE déclaration dans le code Fortran de sortie.
Les shorts peuvent contenir des valeurs comprises entre -32768 et 32767. ncgen3 convertis court déclarations à
court déclarations dans le code C de sortie et au non standard ENTIER*2 déclaration dans
sortie du code Fortran.
Les longs peuvent contenir des valeurs comprises entre -2147483648 et 2147483647. ncgen3 convertis Long
déclarations à Long déclarations dans le code C de sortie et à INTEGER déclarations en
sortie du code Fortran. int et entier sont acceptés comme synonymes de Long en CDL
déclarations. Maintenant qu'il existe des plates-formes avec des représentations 64 bits pour les C longs, il
peut-être mieux d'utiliser le int synonyme pour éviter toute confusion.
Les flottants peuvent contenir des valeurs comprises entre environ -3.4+38 et 3.4+38. Leur représentation extérieure est
sous forme de nombres à virgule flottante simple précision normalisés IEEE 32 bits. ncgen3 convertis flotter
déclarations à flotter déclarations dans le code C de sortie et à REAL déclarations en sortie
Code Fortran. réal est accepté comme synonyme de flotter dans les déclarations CDL.
Les doubles peuvent contenir des valeurs comprises entre environ -1.7+308 et 1.7+308. Leur représentation extérieure
est sous forme de nombres à virgule flottante double précision normalisés IEEE 64 bits. ncgen3
convertis double déclarations à double déclarations dans le code C de sortie et à DOUBLE
LA PRÉCISION déclarations dans le code Fortran de sortie.
CDL Constants
Les constantes affectées aux attributs ou aux variables peuvent être de n'importe quel type netCDF de base.
La syntaxe des constantes est similaire à la syntaxe C, sauf que les suffixes de type doivent être
ajoutés aux shorts et aux flotteurs pour les distinguer des longs et des doubles.
A octet la constante est représentée par un seul caractère ou une séquence d'échappement à plusieurs caractères
entre guillemets simples. Par exemple,
'a' // ASCII 'a'
'\0' // un octet nul
'\n' // Caractère de nouvelle ligne ASCII
'\33' // caractère d'échappement ASCII (33 octal)
'\x2b' // ASCII plus (2b hex)
'\377' // 377 octal = 255 décimal, non-ASCII
Les constantes de caractères sont entourées de guillemets doubles. Un tableau de caractères peut être représenté
sous forme de chaîne entre guillemets doubles. Les conventions d'échappement de chaîne C habituelles sont respectées.
Par exemple
"a" // ASCII `a'
"Deux\nlignes\n" // une chaîne de 10 caractères avec deux nouvelles lignes intégrées
"a bell:\007" // une chaîne contenant une cloche ASCII
Notez que le tableau de caractères netCDF "a" tiendrait dans une variable à un élément, car aucun
Le caractère NULL de fin est supposé. Cependant, un octet de zéro dans un tableau de caractères est
interprétée comme la fin des personnages significatifs par le cdump programme, à la suite de
C convention. Par conséquent, un octet NULL ne doit pas être incorporé dans une chaîne de caractères à moins que
à la fin : utilisez le octet type de données à la place pour les tableaux d'octets qui contiennent l'octet zéro.
NetCDF et CDL n'ont pas de type chaîne, mais uniquement des tableaux de caractères de longueur fixe, qui peuvent être
multidimensionnel.
court les constantes entières sont destinées à représenter des quantités signées de 16 bits. La forme
d'un court constante est une constante entière avec un « s » ou « S » ajouté. Si un court
constante commence par '0', elle est interprétée comme octale, sauf que si elle commence par '0x',
elle est interprétée comme une constante hexadécimale. Par exemple:
-2s // un court -2
0123s // octale
0x7ffs //hexadécimal
Long les constantes entières sont destinées à représenter des quantités signées de 32 bits. La forme
d'un Long constante est une constante entière ordinaire, bien qu'il soit acceptable d'ajouter un
'l' ou 'L' facultatif. Si un Long constante commence par '0', elle est interprétée comme octale,
sauf que s'il commence par « 0x », il est interprété comme une constante hexadécimale. Exemples
de valide Long les constantes comprennent :
-2
1234567890L
0123 // octale
0x7ff // hexadécimal
Constantes à virgule flottante de type flotter sont appropriés pour représenter la virgule flottante
données avec environ sept chiffres significatifs de précision. La forme d'un flotter constante est
identique à une constante à virgule flottante C avec un "f" ou un "F" ajouté. Par exemple le
suivants sont tous acceptables flotter constantes :
-2.0f
3.14159265358979f // sera tronqué avec moins de précision
xnumx.f
Constantes à virgule flottante de type double sont appropriés pour représenter la virgule flottante
données avec environ seize chiffres significatifs de précision. La forme d'un double constante est
identique à une constante à virgule flottante C. Un « d » ou « D » facultatif peut être ajouté. Pour
exemple, les éléments suivants sont tous acceptables double constantes :
- 2.0
3.141592653589793
1.0e-20
1.d
Utiliser ncgen3 en ligne à l'aide des services onworks.net