1

我有一个

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 = "-" ;

在这里,我想让变量v1具有(时间,xr)而不是(xr,时间)的维度。

我这样做使用:

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

但当然,它不会复制 v2。我对具有大量变量的大文件执行此操作,而我只想对单个变量执行此操作。

我怎样才能做到这一点?

4

1 回答 1

3

您还可以使用ncap2 permute () 方法:

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

但是你的输出将有一个 v1 和一个 v1_prm。无论哪种方式,NCO 都是一个两行流程,因为您需要第二步来追加(ncpdq 方法)或删除额外变量(ncap2 方法)。

于 2017-12-05T03:05:55.093 回答