我正在与MITgcm合作进行一些模拟,特别是对内波模型的模拟;我得到了带有结果的.nc文件,但有些变量的坐标不完全相同。我要解释一下:我想计算出速度的分量,但是,由于一些我不完全理解的数值原因,水平速度坐标在细胞的左侧,垂直坐标在细胞的底部。为了操作速度数据,我需要统一所有坐标的参考。在
我考虑过做这样的事
u (i,j,k) = u(i,j,k) + u(i+1,j,k)
v (i,j,k) = v(i,j,k) + v(i,j+1,k)
所以我的坐标都在单元的中心,在同一个参照系中。在
我不知道如何使用python编辑NetCDF文件。我很乐意提取所有u和v数据,像我说的那样进行编辑,并用这两个变量创建一个新的NetCDF文件。在
有可能吗?我怎么能做到呢?在
编辑:添加了ncdump信息
^{pr2}$
该模型使用的是staggered grid,其中u-速度在网格的西/东面上求解,而v-速度在北/南网格面上求解。在
你是对的,现在你需要对组件进行后期处理,这样u-和v-都被放置在每个网格单元的中心。在
让我们将
nx
定义为x维中的网格单元数(即,u分量在其中求解),而ny
是y维中的网格单元数(即v分量在其中求解)。nz
是垂直模型层的数目。在那么}具有}进入每个细胞的中心:
u
的维数是nx+1
xny
xnz
,而{nx
xny+1
xnz
。这是一个简单的平均值,然后让u
和{u_center = 0.5 * (u[0:nx,:,:] + u[1:nx+1,:,:]) # now has dimensions [nx,ny,nz])
v_center = 0.5 * (v[:,0:ny,:] + v[:,1:ny+1,:]) # now has dimensions [nx,ny,nz])
如何从命令行使用cdo使用2点平均值,使用shift函数和集合平均值函数?在
注:如果您的字段是全局的,那么您需要使用以下方法在经度方向执行循环移位:
^{pr2}$相关问题 更多 >
编程相关推荐