首页 > 解决方案 > NCO:仅针对特定区域将数据从一个 netcdf 文件复制到另一个文件中

问题描述

我有两个具有完全相同维度(时间、纬度、经度)的 NetCDF 文件。下面是其中一个文件的标题。

netcdf file1 {
dimensions:
        lon = 360 ;
        lat = 177 ;
        time = 360 ;
variables:
        double lon(lon) ;
                lon:units = "degrees_east" ;
                lon:long_name = "Longitude" ;
        double lat(lat) ;
                lat:units = "degrees_north" ;
                lat:long_name = "Latitude" ;
        double time(time) ;
                time:long_name = "Time" ;
                time:units = "months since 1989-05-01 00:00" ;
        double tmp(time, lat, lon) ;
                tmp:_FillValue = -999000000. ;
}

我想将一个文件中的值复制到另一个文件中,但仅限于由 lat1、lat2 和 lon1、lon2 确定的小区域。两个文件具有相同的时间坐标。

就像是:(lon1<lon<=lon2) & (lat1<lat<=lat2) file1 = file2

我想知道我是否可以使用 NCO 来做到这一点。

任何帮助将不胜感激。感谢

标签: replacenco

解决方案


阅读有关该功能的手册部分。ncap2 where它描述了如何在 hyperslab 上使用 where。这样就可以了:

*var_tmp=var2(:,0,:,:); 
where (var1 < 0.5) var_tmp=1234; 
var2(;,0,:,;)=var_tmp;

推荐阅读