2017-12-04 11 views
0

Ich habe einenWie kann ich die Dimensionen einer netCDF-Datei austauschen?

dimensions: 
    time = 1000 ; 
    xr = 100 ; 
variables: 
    int time(time) ; 
     time:long_name = "time since time reference (instant)" ; 
     time:units = "hours since 2010-05-01" ; 
    double v1(xr, time) ; 
     v1:long_name = "V1" ; 
     averageInstantRunoff:units = "m s-1" ; 
    double v1(time, xr) ; 
     v1:long_name = "V1" ; 
     averageInstantRunoff:units = "m s-1" ; 
    int xr(xr) ; 
     xr:long_name = "xr index" ; 
     xr:units = "-" ; 

Hier möchte ich Variable v1 machen haben Dimensionen (Zeit, xr) anstelle von (xr, Zeit).

Ich tue dies mit:

ncpdq -v v1 -a time,xr test.nc test2.nc 

Aber natürlich ist es nicht v2 kopieren. Ich mache es über große Dateien mit einer großen Anzahl von Variablen und ich möchte es nur für eine einzelne Variable tun.

Wie kann ich das tun?

Antwort

2

Sie können auch die Verwendung ncap2 permute() Methode:

ncap2 -s 'v1_prm=v1.permute($time,$xr)' in.nc out.nc 

aber dann wird die Ausgabe eines v1 und eine v1_prm. So oder so, es ist ein zweizeiliger Prozess mit NCO, weil Sie einen zweiten Schritt zum Anhängen benötigen (ncpdq-Methode) oder die zusätzliche Variable (ncap2-Methode) entfernen.

Verwandte Themen