OW参数计算

  • 涡旋OW参数计算
  • 一般选取threshold -2×10-12
  • AE与CE的ow值均为复制,因而仅参考ow参数无法判断AE还是CE
import netCDF4
d_step=0.08333588
earth_radius=6370997.0

'''
deg2rad将角度单位转化为弧度单位
d_ = 360 / (0.083 * cos(deg2rad(y[i])) * pi * 2 * earth_radius)
(h0-h1)*d
'''

'''偏导数和梯度不是一个东西!'''
def ow_x(h,lat):
	'''求x方向上的偏导数'''
    length=len(h[0])
    h[abs(h)>100]=np.nan
    h_new=np.zeros((len(h),length))
    
    rad=deg2rad(lat)
    for j in range(1,length-1):
        d=360/(d_step*2*np.cos(rad) * pi * 2 * earth_radius)
        one=h[:,j+1]-h[:,j-1]
        two=one*d
        h_new[:,j]=two
    return h_new

def ow_y(h,lat):
	'''求y方向上的偏导数'''
    length=len(h)
    h[abs(h)>100]=np.nan
    h_new=np.zeros((len(h),len(h[0])))
    
    for j in range(1,length-1):
        rad=deg2rad(lat[j])
        d=360/(d_step*2*np.cos(rad) * pi * 2 * earth_radius)
        one=h[j+1,:]-h[j-1,:]
        two=one*d
        h_new[j,:]=two
    return h_new

'''数据读取'''
file='D:\\data\\cmems_mod_glo_phy_my_0.083_P1M-m_1692762273151.nc'
data=netCDF4.Dataset(file)

v_all=data.variables['vo'][:].data[0,0,:,:]
u_all=data.variables['uo'][:].data[0,0,:,:]
x=data.variables['longitude'][:].data
y=data.variables['latitude'][:].data
depth=data.variables['depth'][:].data
time=data.variables['time'][:].data

sn=(u_x-v_y)
ss=(v_x+u_y)
w=(v_x-u_y) #涡度,用协助判断AE与CE
W=sn**2+ss**2-w**2 #所求的OW参数

X,Y=np.meshgrid(x,y)
'''绘制OW参数'''
plt.contourf(X,Y,W)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值