Replace NCO:仅为特定区域将数据从一个netcdf文件复制到另一个netcdf文件

Replace NCO:仅为特定区域将数据从一个netcdf文件复制到另一个netcdf文件,replace,nco,Replace,Nco,我有两个NetCDF文件,它们的尺寸(时间、纬度、经度)完全相同。下面是其中一个文件的标题 netcdf file1 { dimensions: lon = 360 ; lat = 177 ; time = 360 ; variables: double lon(lon) ; lon:units = "degrees_east" ; lon:long_name = "L

我有两个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阅读有关
ncap2
where
函数的部分。它描述了如何在hyperslab上使用where。这样做:

*var_tmp=var2(:,0,:,:); 
where (var1 < 0.5) var_tmp=1234; 
var2(;,0,:,;)=var_tmp;
*var_tmp=var2(:,0,:,:);
其中(var1<0.5)var_tmp=1234;
var2(;,0,:,;)=var_tmp;
阅读有关
ncap2
where
功能的部分。它描述了如何在hyperslab上使用where。这将实现:

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

谢谢Charlie回答我的问题。因此,为了让您的建议生效,我需要将文件1和文件2合并为第三个文件,并更改第三个文件中的一个变量名称。对吗?谢谢Charlie回答我的问题。因此,为了让您的建议生效,我需要将文件1和文件2合并为一个三分之一d文件,并更改第三个文件中的一个变量名称。对吗?