2016-04-16 5 views
1

Ich möchte eine vorhandene netCDF-Datei um Breitengrenzen erweitern. Siehe http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-20010629.htm#bnds für die Definition von Grenzen.Hinzufügen von Begrenzungsvariablen zur netcdf-Datei

Gibt es einen Befehl, der Grenzen automatisch hinzufügen kann? Ich bin offen für jede Lösung mit nco oder netCDF4 oder CDMS Toolkit. Ich würde jedoch bevorzugen, dass es sich um eine Nachbearbeitungslösung handelt.

Antwort

3

Grenzen In ein wie diese bestehende Koordinate:

ncap2 -O -s '[email protected]="crd_bnds";defdim("bnds",2);crd_bnds[$crd,$bnds]=0.0;*crd_dff=0.5*(crd(1)-crd(0));crd_bnds(:,0)=crd-crd_dff;crd_bnds(:,1)=crd+crd_dff;' in.nc out.nc 

Dies ist die

[email protected]:~$ ncks --cdl -v crd ~/foo2.nc 
netcdf foo2 { 
    dimensions: 
    bnds = 2 ; 
    crd = 10 ; 

    variables: 
    int crd(crd) ; 
     crd:bounds = "crd_bnds" ; 

    double crd_bnds(crd,bnds) ; 

    data: 
    crd = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ; 

    crd_bnds = -0.5, 0.5, 0.5, 1.5, 1.5, 2.5, 2.5, 3.5, 3.5, 4.5, 4.5, 5.5, 5.5, 6.5, 6.5, 7.5, 7.5, 8.5, 8.5, 9.5 ; 

} // group/

Hier Koordinate dem Namen "crd", und die Grenzen sind dem Namen "crd_bnds" ergibt. Die Formel für die Begrenzungswerte kann einfach sein, wenn sich die Koordinate um einen festen Wert (wie oben) ändert, oder um den variablen Abstand (Übung für den Leser) zu berücksichtigen. Wir werden eine ncap2-Funktion hinzufügen, um dies in naher Zukunft automatisch zu tun.

cz

+0

großartig! Danke, das funktioniert super! – user308827

+1

FYI Der neueste Snapshot von ncap2 hat eine neue Funktion zum Erstellen von CF-konformen Grenzen: defdim ("bnd_dmn", 2); bounds_var = make_bounds (crd_var, $ bnd_dmn, "Grenzen_var_nm"); Das "bounds_var_nm" ist optional. Die Übergabe bewirkt, dass make_bounds() zu das Attribut crd_var @ bounds = "bounds_var_nm" hinzufügt. http://nco.sf.net/nco.html#make_bounds –

Verwandte Themen