为此,我使用python来绘制和操作数据。
对于这个问题,我使用netcdf格式的再分析数据。
数据中包含了geopotential,我通过以下方法估算了geopotential的高度。
地势的netcdf变量如下:
<类的netCDF4._netCDF4。变量'> int16 z(时间,水平,纬度,经度)scale_factor: 0.9163788350787961 add_offset: 28797.397523473086 _FillValue: -32767 missing_value: -32767单位:m**2 s**-2 long_name: Geopotential standard_name: Geopotential unlimited dimensions:电流形状=(1,2,51,101)填充on
然后,我继续提取这个变量,如下所示,并通过将变量geop除以来计算位势高度$g_{0} = 9.81$。然后我把它赋值给一个变量Z美元
Geop =文件。变量['z'][:] g = 9.81 z = geop/ g# gepotential高度
现在我绘制这个变量,结果如下图所示(单位为位势米):
通过流体静力方程$ dp = -\rho GDZ $,我尝试直接计算p,做如下计算:
Zl=Z[0,level==1000,:,:] rho = 1.25 g = 9.81 dp = -1 *(rho*g*Zl) #采用流体静力近似dp
这给了我如下图所示的这些值:
Masked_array (data=[[410.9842133392113, 307.8915943928496, 209.38086962187754,…],187.6168722887587, 256.3452849196665, 289.56401769127297], [650.3881840035501, 506.05851747863653, 360.58337740988014, ..., 358.29243032218073, 456.8031550931528, 493.4583084963061], [901.2468901063676, 731.716805616793, 570.2050359341547, ..., 334.23748590136256, 433.893684216182, 479.71262597012355], ..., [-1690.9597396227766, -1719.596578218989, -1756.251731622142, ..., -348.46474623233917, -248.80854791751972, -521.4312513534605], [-1539.7572318347738, -1561.5212291678972, -1642.84985078114, ..., -371.37421710930994, -324.409801811521, -394.2836879862807], [-1335.8629410297408, -1397.7185123975598, -1535.1753376593797, ..., -397.7201086178229, -355.3375874954281, -338.15548433770346]]], mask=[[[False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], ..., [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False], [False, False, False, ..., False, False, False]]], fill_value=1e+20)
但结果是负值。
如何准确地将高度的重力势转化为表面的压强?