【问题标题】:How to calculate moisture flux divergence in python如何在python中计算水分通量散度
【发布时间】:2021-10-19 14:13:08
【问题描述】:

我想计算南部非洲的水分通量散度 (MFD)。对于特定的一天,我使用 850 hPa 的 u 和 v 风分量和 850 hPa 的特定湿度。我已按照此处描述的步骤进行操作:Calculating wind divergence of u and v using Python, np.gradient 和此处:https://earthscience.stackexchange.com/questions/8418/how-to-calculate-water-vapor-flux-divergence-from-temperature-relative-humidity

我使用的代码如下:

from matplotlib.cm import get_cmap
from __future__ import print_function
from netCDF4 import Dataset,num2date,date2num
from matplotlib.colors import from_levels_and_colors
from cartopy import crs
from cartopy.feature import NaturalEarthFeature, COLORS
#
import metpy.calc as mpcalc
import xarray as xr
import cartopy.crs as ccrs
import matplotlib
import cartopy.feature as cfe
import numpy as np
import matplotlib.pyplot as plt
import datetime
#
#############################################################################################################
####################################### Calculate Moisture Divergence ####################################### 
#############################################################################################################
#
root_dir = '/users/pr007/mkaryp/'
nc = Dataset(root_dir+'merge_SAF.nc')
#
v = np.array(nc.variables['va850'][0,:,:])                    
u = np.array(nc.variables['ua850'][0,:,:])
q = np.array(nc.variables['hus850'][0,:,:])        
#
lon=nc.variables['lon'][:]
lat=nc.variables['lat'][:]
#
qu = q*u
qv = q*v  
#
# Compute dx and dy spacing for use in divergence calculation
dx, dy = mpcalc.lat_lon_grid_deltas(lon, lat)
# Calculate horizontal moisture flux divergence using https://unidata.github.io/MetPy/latest/api/generated/metpy.calc.divergence.html
HMC = (np.array(mpcalc.divergence(qu, qv, dx=dx, dy=dy)))
#

输出如下图:Moisture Flux Divergence for a specific day

Div = (np.array(mpcalc.divergence(u, v, dx=dx, dy=dy)))

但是,当我在散度函数 (mpcalc.divergence) 中使用 u 和 v(而不是 qu 和 qv)时,输出在空间上是相同的(此处显示:Wind divergence for the same day (as in previous plot))。 '''

我想知道是否有更有意义的方法来计算 python 中的水分通量散度。

谢谢!

【问题讨论】:

    标签: python metpy


    【解决方案1】:

    很久没玩散度、风和比湿了……但是数学和大气物理不应该有这么大的变化。从严格的数学角度来看,水分通量散度的关系如下:

    div(quv) = q div(uv) + grad(q).uv
    

    (英文是因为我不能在这里写出漂亮的公式:湿气通量散度是风散度乘以湿气值加上风矢量的标量乘以湿气场的梯度)

    如果我的气象记忆还不错,我会假设在 850 hPa 的大多数情况下,水分的变化不如风的变化重要,第一项应该大于第二项。此外,我们在 850 hPa 及以上的测量点很少,因此场是平滑的。所以 AFAIK,风发散和水分通量发散在空间上看起来很接近也就不足为奇了。

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 2021-04-12
      • 1970-01-01
      • 2015-01-12
      • 2016-03-04
      • 2021-04-08
      相关资源
      最近更新 更多