将所有变量和维度从int / float转换为netcdf文件中的double

时间:2016-04-20 16:26:27

标签: python netcdf nco

我有一个带有foll的netCDF文件。 ncdump:

method:"POST",

是否有一个nco命令将int / float中的所有变量和维度转换为double?

我发现了这个:

netcdf nc_data {
dimensions:
    lon = 1440 ;
    bounds = 2 ;
    lat = 720 ;
    time = UNLIMITED ; // (6 currently)
variables:
    double lon_bounds(lon, bounds) ;
    double lat_bounds(lat, bounds) ;
    int time(time) ;
        time:units = "year as %Y.%f" ;
        time:calendar = "proleptic_gregorian" ;
        time:long_name = "time" ;
        time:standard_name = "time" ;
        time:axis = "T" ;
    float lat(lat) ;
        lat:units = "degrees_north" ;
        lat:long_name = "latitude" ;
        lat:standard_name = "latitude" ;
        lat:axis = "Y" ;
        lat:bounds = "lat_bounds" ;
    float lon(lon) ;
        lon:units = "degrees_east" ;
        lon:long_name = "longitude" ;
        lon:standard_name = "longitude" ;
        lon:axis = "X" ;
        lon:bounds = "lon_bounds" ;
    float valf(time, lat, lon) ;
        valf: standard_name = “area_fraction”
        valf:missing_value = -9999.f ;
        valf:_fillvalue = -9999.f ;
        valf:long_name = "val fraction" ;
        valf:units = "fraction of grid cell" ;
}

但是,这一次只能运行一个变量,我的文件中有~30个变量

1 个答案:

答案 0 :(得分:2)

ncap2可以优雅地执行此操作,但它需要当前快照(很快将成为4.6.0)。请注意,上面使用的命令不会更改自NCO版本4.5.3以来输出文件中变量的类型,并且当前快照确实允许它工作。 (ncap2的临时版本要求输出变量的名称与输入的名称不同,以便更改其类型,例如haratistore

重要的是,ncap2的当前快照了解变量列表。因此,您可以使用此脚本创建具有更改名称的某些变量的输出文件:

val_dbl=double(valf)

不需要重命名变量。