使用 for 循环调整来自 etopo 的网格数据
resizing grid data from etopo using for loops
我有一个从 http://ngdc.noaa.gov/mgg/global/global.html 下载的文件,我在其中提取了一个自定义网格来解决我的海洋学问题。但是,此网格的分辨率(1 分钟或 1/60. 度)比我需要 运行 我的实验更高。因此,我想知道如果我想要一个 10 分钟的网格分辨率,我如何 "resize" 它使用 for 循环?我知道如何在 MATLAB 中制作它(代码粘贴在下面)但是因为我想成为 python 用户我不知道如何去做。
MATLAB 代码:
ii=0;
for i=1:10:1681;
ii=ii+1;
jj=0;
for j=1:10:4561;
jj=jj+1;
n=j+((i-1)*4561);
long2(ii,jj)=lon(n);
latie2(ii,jj)=lat(n);
c2(ii,jj)=depth(n);
end
end
深度文件结构如下,数组大小为1621x4561:
array([[ 200, 191, 192, ..., 1344, 1345, 1343],
[ 191, 178, 192, ..., 1330, 1332, 1337],
[ 178, 176, 177, ..., 1297, 1303, 1314],
...,
[-1806, -1853, -1897, ..., 295, 296, 295],
[-1803, -1845, -1887, ..., 294, 295, 295],
[-1806, -1844, -1881, ..., 294, 294, 295]], dtype=int16)
在此先致谢
您可以尝试使用 ncks
每十分之一的经度和纬度进行 hyperslabbing
ncks -d lat,,,10 -d lon,,,10 in.nc out.nc
我有一个从 http://ngdc.noaa.gov/mgg/global/global.html 下载的文件,我在其中提取了一个自定义网格来解决我的海洋学问题。但是,此网格的分辨率(1 分钟或 1/60. 度)比我需要 运行 我的实验更高。因此,我想知道如果我想要一个 10 分钟的网格分辨率,我如何 "resize" 它使用 for 循环?我知道如何在 MATLAB 中制作它(代码粘贴在下面)但是因为我想成为 python 用户我不知道如何去做。
MATLAB 代码:
ii=0;
for i=1:10:1681;
ii=ii+1;
jj=0;
for j=1:10:4561;
jj=jj+1;
n=j+((i-1)*4561);
long2(ii,jj)=lon(n);
latie2(ii,jj)=lat(n);
c2(ii,jj)=depth(n);
end
end
深度文件结构如下,数组大小为1621x4561:
array([[ 200, 191, 192, ..., 1344, 1345, 1343],
[ 191, 178, 192, ..., 1330, 1332, 1337],
[ 178, 176, 177, ..., 1297, 1303, 1314],
...,
[-1806, -1853, -1897, ..., 295, 296, 295],
[-1803, -1845, -1887, ..., 294, 295, 295],
[-1806, -1844, -1881, ..., 294, 294, 295]], dtype=int16)
在此先致谢
您可以尝试使用 ncks
每十分之一的经度和纬度进行 hyperslabbingncks -d lat,,,10 -d lon,,,10 in.nc out.nc