ncgen3 - Online in de cloud

Dit is de opdracht ncgen3 die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


ncgen3 - Genereer vanuit een CDL-bestand een klassiek netCDF- of 64-bits klassiek bestand, een C-programma of
een Fortran-programma

KORTE INHOUD


ncgen3 [-b] [-c] [-f] [-k soort_van_bestand] [-x] [-n] [-o netcdf_bestandsnaam] Invoer bestand

PRODUCTBESCHRIJVING


ncgen3 genereert een netCDF-bestand, of C- of Fortran-broncode om een ​​netCDF te maken
bestand. De invoer voor ncgen3 is een beschrijving van een netCDF-bestand in een kleine taal die bekend staat als
CDL (netwerk Common Data form Language), hieronder beschreven. Als er geen opties zijn opgegeven in
aanroepen ncgen3, controleert het alleen de syntaxis van het ingevoerde CDL-bestand en produceert het een fout
berichten voor eventuele schendingen van de CDL-syntaxis. Andere opties kunnen worden gebruikt om de
corresponderend netCDF-bestand, om een ​​C-programma te genereren dat de netCDF C-interface gebruikt om
het netCDF-bestand maken of een Fortran-programma genereren dat gebruikmaakt van het netCDF Fortran
interface om hetzelfde netCDF-bestand te maken.

ncgen3 kan worden gebruikt met het begeleidende programma ncdump om enkele eenvoudige bewerkingen uit te voeren op
netCDF-bestanden. Als u bijvoorbeeld een dimensie in een netCDF-bestand wilt hernoemen, gebruikt u ncdump een krijgen
CDL-versie van het netCDF-bestand, bewerk het CDL-bestand om de naam van de afmetingen te wijzigen,
en gebruiken ncgen3 om het overeenkomstige netCDF-bestand te genereren vanuit het bewerkte CDL-bestand.

OPTIES


-b Maak een (binair) netCDF-bestand aan. Als de -o optie is afwezig, een standaard bestandsnaam
wordt opgebouwd uit de netCDF-naam (gespecificeerd na de netcdf trefwoord in de
invoer) door de extensie `.nc' toe te voegen. Als er al een bestand bestaat met de
opgegeven naam, wordt deze overschreven.

-c Genereer een C broncode die een netCDF-bestand maakt dat overeenkomt met de netCDF
specificatie. De C-broncode wordt naar standaarduitvoer geschreven.

-f Genereer een Fortran broncode die een netCDF-bestand maakt dat overeenkomt met de netCDF
specificatie. De Fortran-broncode wordt naar standaarduitvoer geschreven.

-o netcdf_bestand
Naam voor het gemaakte binaire netCDF-bestand. Als deze optie is opgegeven, betekent dit dat
de "-b" optie. (Deze optie is nodig omdat netCDF-bestanden niet kunnen worden geschreven
rechtstreeks naar standaarduitvoer, aangezien standaarduitvoer niet kan worden gezocht.)

-k soort_van_bestand
Het gebruik van -k2 of -k "64-bit offset" geeft aan welk gegenereerd bestand (of programma) dat zou moeten doen
gebruik versie 2 van het formaat dat 64-bits bestandsverschuivingen gebruikt. De standaard is om te gebruiken
versie 1 ("klassiek") formaat met 32-bits bestandsverschuivingen, hoewel dit de
grootte van het netCDF-bestand, de variabelen en de records naar de grootte die wordt ondersteund door het
klassiek formaat. (NetCDF-4 ondersteunt aanvullende soorten netCDF-bestanden,
"netCDF-4" en "netCDF-4 klassiek model".) Opmerking: -v wordt ook geaccepteerd als de
hetzelfde als -k voor achterwaartse compatibiliteit, maar -k heeft de voorkeur, om overeen te komen met de
overeenkomstige ncdump-optie.

-x Initialiseer geen gegevens met vulwaarden. Dit kan het maken van grote netCDF versnellen
bestanden enorm, maar latere pogingen om ongeschreven gegevens uit het gegenereerde bestand te lezen
zal niet gemakkelijk op te sporen zijn.

Voorbeelden


Controleer de syntaxis van het CDL-bestand `foo.cdl':

ncgen3 foo.cdl

Van het CDL-bestand `foo.cdl', genereer een equivalent binair netCDF-bestand met de naam `x.nc':

ncgen3 -o x.nc foo.cdl

Van het CDL-bestand `foo.cdl', genereer een C-programma met de netCDF-functie
aanroepen die nodig zijn om een ​​equivalent binair netCDF-bestand met de naam ` . te makenx.nc':

ncgen3 -c -o x.nc foo.cdl

GEBRUIK


CDL Syntaxis Samenvatting
Hieronder is een voorbeeld van CDL-syntaxis, die een netCDF-bestand beschrijft met verschillende benoemde dimensies
(lat, lon en time), variabelen (Z, t, p, rh, lat, lon, time), variabele attributen (eenheden,
long_name, valid_range, _FillValue) en enkele gegevens. CDL-zoekwoorden zijn vetgedrukt. (Dit
voorbeeld is bedoeld om de syntaxis te illustreren; een echt CDL-bestand zou een completer hebben
set attributen zodat de gegevens vollediger zelfbeschrijvend zouden zijn.)

netcdf foo { // een voorbeeld van een netCDF-specificatie in CDL

Afmeting:
lat = 10, lon = 5, tijd = onbeperkt ;

variabelen:
lang lat(lat), lon(lon), tijd(tijd);
drijven Z(tijd,lat,lon), t(tijd,lat,lon);
verdubbelen p(tijd,lat,lon);
lang rh(tijd,lat,lon);

// variabele attributen
lat:long_name = "breedtegraad";
lat:units = "graden_noord";
lon:long_name = "lengtegraad";
lon:units = "graden_oost";
time:units = "seconden sinds 1992-1-1 00:00:00";
Z:units = "geopotentiaalmeters";
Z:geldig_bereik = 0., 5000.;
p:_FillValue = -9999.;
rh:_FillValue = -1;

gegevens:
lat = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;
lon = -140, -118, -96, -84, -52;
}

Alle CDL-instructies worden afgesloten met een puntkomma. Spaties, tabs en nieuwe regels kunnen worden gebruikt
vrij voor de leesbaarheid. Opmerkingen kunnen op elke regel de tekens `//' volgen.

Een CDL-beschrijving bestaat uit drie optionele delen: Afmeting, variabelen en gegevens,
beginnend met het trefwoord dimensies:, variabelen: en gegevens, respectievelijk. De variabele
onderdeel kan bevatten variabele verklaringen en attribuut opdrachten.

Een netCDF dimensie wordt gebruikt om de vorm van een of meer van de multidimensionale te definiëren
variabelen in het netCDF-bestand. Een netCDF-dimensie heeft een naam en een grootte. Bij
de meeste dimensies in een netCDF-bestand kunnen de onbeperkt grootte, wat een variabele betekent
het gebruik van deze dimensie kan tot elke lengte groeien (zoals een recordnummer in een bestand).

A variabele staat voor een multidimensionale reeks waarden van hetzelfde type. Een variabele heeft
een naam, een gegevenstype en een vorm die wordt beschreven door de lijst met dimensies. Elke variabele kan
hebben ook geassocieerd met attributen (zie hieronder) evenals gegevenswaarden. De naam, het gegevenstype,
en vorm van een variabele worden gespecificeerd door zijn declaratie in de variabele sectie van een CDL
Omschrijving. Een variabele kan dezelfde naam hebben als een dimensie; volgens afspraak zoals
variabele is eendimensionaal en bevat coördinaten van de dimensie die het noemt.
Dimensies hoeven geen overeenkomstige variabelen te hebben.

Een netCDF attribuut bevat informatie over een netCDF-variabele of over de hele netCDF
gegevensset. Attributen worden gebruikt om eigenschappen te specificeren zoals eenheden, speciale waarden, maximum
en minimum geldige waarden, schaalfactoren, offsets en parameters. Attribuut informatie
wordt weergegeven door enkele waarden of arrays van waarden. Bijvoorbeeld, "eenheden" is een attribuut
weergegeven door een tekenreeks zoals "celsius". Een attribuut heeft een geassocieerd
variabele, een naam, een gegevenstype, een lengte en een waarde. In tegenstelling tot variabelen die
bedoeld voor data, attributen zijn bedoeld voor metadata (data over data).

In CDL wordt een attribuut aangeduid door een variabele en attribuutnaam, gescheiden door `:'. Het
is mogelijk toe te wijzen globaal attributen die niet aan een variabele zijn gekoppeld aan de netCDF as
een geheel door `:' voor de attribuutnaam te gebruiken. Het gegevenstype van een attribuut in CDL is
afgeleid van het type waarde dat eraan is toegewezen. De lengte van een attribuut is de
aantal gegevenswaarden dat eraan is toegewezen, of het aantal tekens in de tekenreeks
eraan toegewezen. Meerdere waarden worden toegewezen aan niet-tekenattributen door ze te scheiden
de waarden met komma's. Alle waarden die aan een kenmerk zijn toegewezen, moeten van hetzelfde type zijn.

De namen voor CDL-dimensies, variabelen en attributen moeten beginnen met een letter
teken of `_', en volgende tekens kunnen alfanumeriek of `_' of `-' zijn.

De optionele gegevens sectie van een CDL-specificatie is waar netCDF-variabelen kunnen zijn
begonnen. De syntaxis van een initialisatie is eenvoudig: een variabelenaam, een isgelijkteken,
en een door komma's gescheiden lijst van constanten (mogelijk gescheiden door spaties, tabs en nieuwe regels)
afgesloten met een puntkomma. Voor multidimensionale arrays varieert de laatste dimensie
snelste. Dus rijvolgorde in plaats van kolomvolgorde wordt gebruikt voor matrices. Als er minder waarden zijn
worden geleverd dan nodig zijn om een ​​variabele te vullen, wordt deze uitgebreid met een typeafhankelijke
`vulwaarde', die kan worden overschreven door een waarde op te geven voor een onderscheidende variabele
attribuut genaamd `_FillValue'. De typen constanten hoeven niet overeen te komen met het type dat is gedeclareerd voor
een variabele; dwang wordt uitgeoefend om bijvoorbeeld gehele getallen om te zetten in drijvende komma. De
constante `_' kan worden gebruikt om de vulwaarde voor een variabele aan te geven.

Primitief Data Types
verkolen tekens
byte 8-bit data
kort 16-bits gehele getallen met teken
lang 32-bits gehele getallen met teken
int (synoniem met lang)
drijven IEEE enkele precisie drijvende komma (32 bits)
vast (synoniem met drijven)
verdubbelen IEEE dubbele precisie drijvende komma (64 bits)

Behalve het toegevoegde gegevenstype byte en het gebrek aan Ongesigneerd, ondersteunt CDL hetzelfde
primitieve gegevenstypen als C. De namen voor de primitieve gegevenstypen zijn gereserveerde woorden in
CDL, dus de namen van variabelen, dimensies en attributen mogen geen typenamen zijn. In
declaraties kunnen typenamen worden opgegeven in hoofdletters of kleine letters.

Bytes verschillen van karakters doordat ze bedoeld zijn om acht bits aan gegevens te bevatten,
en de nulbyte heeft geen speciale betekenis, zoals voor karaktergegevens. ncgen3
bekeerlingen byte declaraties aan verkolen declaraties in de output C-code en naar de
niet standaard BYTE declaratie in uitvoer Fortran-code.

Shorts kunnen waarden tussen -32768 en 32767 bevatten. ncgen3 bekeerlingen kort declaraties aan
kort verklaringen in de output C-code en de niet-standaard GEHEEL GETAL*2 aangifte in
uitvoer Fortran-code.

Longs kunnen waarden bevatten tussen -2147483648 en 2147483647. ncgen3 bekeerlingen lang
declaraties aan lang declaraties in de output C-code en to GEHEEL GETAL declaraties binnen
uitvoer Fortran-code. int en geheel getal worden geaccepteerd als synoniemen voor lang in CDL
verklaringen. Nu er platforms zijn met 64-bits representaties voor C longs, is het
misschien beter om de int synoniem om verwarring te voorkomen.

Floats kunnen waarden bevatten tussen ongeveer -3.4+38 en 3.4+38. Hun externe vertegenwoordiging is
als 32-bits IEEE genormaliseerde single-precision floating point getallen. ncgen3 bekeerlingen drijven
declaraties aan drijven declaraties in de output C-code en to REAL declaraties in uitvoer
Fortran-code. vast wordt geaccepteerd als synoniem voor drijven in CDL-aangiften.

Doubles kunnen waarden bevatten tussen ongeveer -1.7+308 en 1.7+308. Hun externe vertegenwoordiging
is als 64-bits IEEE-standaard genormaliseerde dubbele precisie drijvende-kommagetallen. ncgen3
bekeerlingen verdubbelen declaraties aan verdubbelen declaraties in de output C-code en to DUBBELE
PRECISION declaraties in output Fortran-code.

CDL constanten
Constanten die aan attributen of variabelen zijn toegewezen, kunnen van elk van de basistypen van netCDF zijn.
De syntaxis voor constanten is vergelijkbaar met de C-syntaxis, behalve dat typeachtervoegsels:
toegevoegd aan shorts en drijvers om ze te onderscheiden van longs en doubles.

A byte constante wordt weergegeven door een escape-reeks van één teken of meerdere tekens
tussen enkele aanhalingstekens geplaatst. Bijvoorbeeld,
'a' // ASCII 'a'
'\0' // een nulbyte
'\n' // ASCII-teken voor nieuwe regel
'\33' // ASCII-escape-teken (33 octaal)
'\x2b' // ASCII plus (2b hex)
'\377' // 377 octaal = 255 decimaal, niet-ASCII

Tekenconstanten staan ​​tussen dubbele aanhalingstekens. Er kan een tekenarray worden weergegeven
als een string tussen dubbele aanhalingstekens. De gebruikelijke ontsnappingsconventies in de C-reeks worden gerespecteerd.
Bij voorbeeld
"a" // ASCII `a'
"Twee\nlijnen\n" // een tekenreeks van 10 tekens met twee ingesloten nieuwe regels
"a bell:\007" // een string met een ASCII-bel
Merk op dat de netCDF-tekenarray "a" zou passen in een variabele met één element, aangezien no
afsluitend NULL-teken wordt aangenomen. Een nulbyte in een tekenreeks is echter
geïnterpreteerd als het einde van de significante karakters door de ncdump programma, naar aanleiding van de
C-conventie. Daarom mag een NULL-byte niet worden ingesloten in een tekenreeks, tenzij
aan het einde: gebruik de byte gegevenstype in plaats daarvan voor byte-arrays die de nulbyte bevatten.
NetCDF en CDL hebben geen tekenreekstype, maar alleen tekenarrays met een vaste lengte, wat mogelijk is
multidimensionaal.

kort integer-constanten zijn bedoeld voor het weergeven van 16-bits getekende hoeveelheden. Het formulier
een kort constante is een geheel getal constant met een `s' of `S' toegevoegd. Als een kort
constante begint met '0', wordt het geïnterpreteerd als octaal, behalve dat als het begint met '0x',
het wordt geïnterpreteerd als een hexadecimale constante. Bijvoorbeeld:
-2s // een korte -2
0123s // octaal
0x7ffs //hexadecimaal

lang integer-constanten zijn bedoeld voor het weergeven van 32-bits getekende hoeveelheden. Het formulier
een lang constante is een gewone constante met een geheel getal, hoewel het acceptabel is om een ​​toe te voegen
optionele `l' of `L'. Als een lang constante begint met `0', wordt geïnterpreteerd als octaal,
behalve dat als het begint met `0x', het wordt geïnterpreteerd als een hexadecimale constante. Voorbeelden
van geldig lang constanten zijn onder meer:
-2
1234567890L
0123 // octaal
0x7ff // hexadecimaal

Drijvende-kommaconstanten van het type drijven geschikt zijn om drijvende komma weer te geven
gegevens met een nauwkeurigheid van ongeveer zeven significante cijfers. de vorm van a drijven constante is
hetzelfde als een constante C met een drijvende komma waaraan een 'f' of 'F' is toegevoegd. bijvoorbeeld de
volgende zijn allemaal acceptabel: drijven constanten:
-2.0f
3.14159265358979f // wordt afgekapt met minder precisie
1. f

Drijvende-kommaconstanten van het type verdubbelen geschikt zijn om drijvende komma weer te geven
gegevens met een nauwkeurigheid van ongeveer zestien significante cijfers. de vorm van a verdubbelen constante is
hetzelfde als een drijvende-kommaconstante C. Een optionele `d' of `D' kan worden toegevoegd. Voor
voorbeeld de volgende zijn allemaal acceptabel: verdubbelen constanten:
-2.0
3.141592653589793
1.0e-20
1. d

Gebruik ncgen3 online met behulp van onworks.net-services



Nieuwste Linux & Windows online programma's