15
\ begingroup美元

我正在研究NCEP GFS数据来绘制各种地图。我想要的一个这样的情节是能见度。我看到一些网站显示能见度图表,数据来源显示为NCEP GFS。

我在GFS文件中找不到任何与可见性相关的变量。

有没有计算能见度的具体公式?

\ endgroup美元
1
  • \ begingroup美元 所有METAR报告都包括这一点。w1.weather.gov / xml / current_obs / KABQ.xml显示当前能见度10英里。对“地表天气”的描述weather.gov /电流“地面观测站报告的温度、天空状况、能见度、降水类型和累积量、风速和方向等”。虽然地图本身不显示可见性,但RSS/XML数据显示可见性。还是你在寻找一种不同的能见度?(如airquality.weather.gov)? \ endgroup美元
    - - - - - -user967
    2016年2月16日17:57

1回答1

13
\ begingroup美元

我计算地表能见度从WRF输出使用的计算,我从适应DTC的统一后置处理器,特别是从他们的Fortran程序在UPPV2.2 / src / unipost / CALVIS.f.计算是基于水珠混合比、空气温度和压力,所有这些都来自最低的模型层。如果你的GFS输出有水聚物混合比例,你可以使用这个公式来计算能见度。原始代码中的文档如下:

这个例程从qc, qr, qi和qs计算表面或最低模型层的水平能见度。qv——水汽混合比(kg/kg) qc——云水混合比(kg/kg) qr——雨水混合比(kg/kg) qi——云冰混合比(kg/kg) qs——雪混合比(kg/kg) tt——温度(k) pp——压力(Pa)如果iice=0: qprc=qr qrain=qr and qclw=qc如果T>0C qcld=qc =0 =0如果T<0C qsnow=qs and qclice=qc如果T<0C =0 =0如果T>0C如果iice=1:qprc=qr+qs qrain=qr和qclw=qc qcld=qc+qi qsnow=qs和qclice=qc独立于上述定义,该方案可以使用不同的水成物状态假设:meth='d':如果T<0, qprc是全部冻结,如果T>0 meth='b':用于确定qprc是雨还是雪的Bocchieri方案。温度假设用于确定qcld是液态还是冷冻态。冰毒= ' r ':使用四混合比率qrain, qsnow, qclw,和qclice常规使用以下表达式消光系数,β(公里* * 1),与C的质量浓度(g / m * * 3):云水:β= 144.7 * C * *(0.8800)雨水:β= 2.24 * C * *(0.7500)云冰:β= 327.8 * C * *(1.0000)雪:β= 10.36 * C * *(0.7776)得到了这些表达式从下列来源:云水:从Kunkel雨水(1984):来自m - p dist'n, No=8e6 m**-4, rho_w=1000 kg/m**3对于云冰:假设随机取向板遵循质量-直径关系来自Rutledge和Hobbs(1983)对于雪:来自Stallabrass(1985),假设beta = -ln(.02)/vis每个存在的水物种的消光系数,然后将所有适用的beta相加得到单个beta。然后使用下面的关系来确定能见度(以千米为单位),其中ε是对比度的阈值,通常取为.02:vis = -ln(ε)/beta[发现于Kunkel (1984)]

我将这个例程中的代码改编为下面的Python函数,您可以根据自己的目的使用它:

def calculate_visibility(qv,qc,qr,qi,qs,T,p): """根据UPP算法计算可见性。参见UPPV2.2/src/unipost/CALVIS中的文档。F表示输入参数和引用的描述。""" Rd = 287。Coeflc = 144.7 coeflp = 2.24 coeffc = 327.8 coeffp = 10.36 explc = 0.88 explp = 0.75 expfc = 1。EXPFP电视= T = 0.7776 * (1 + 0.61 * qv) #虚拟温度rhoa = p / (Rd *电视)#空气密度(公斤m ^ 3) rhow = 1 e3 #水密度(公斤m ^ 3) rhoi = 0.917 e3 #冰密度(公斤m ^ 3) vovmd = (1 + qv) / rhoa + (qc + qr) / rhow +(气+ qs) / rhoi conc_lc = 1 e3 * qc / vovmd conc_lp = 1 e3 * qr / vovmd conc_fc = 1 e3 *气/ vovmd conc_fp = 1 e3 * qs / vovmd #确保所有浓度是积极conc_lc (conc_lc < 0) = 0 conc_lp (conc_lp < 0) = 0 conc_fc (conc_fc < 0) = 0 conc_fp (conc_fp < 0) = 0 betav = COEFFC * conc_fc * * EXPFC \ +COEFFP*conc_fp**EXPFP\ + COEFLC*conc_lc**EXPLC\ + COEFLP*conc_lp**EXPLP+1E-10 vis = -np.log(0.02)/betav #能见度[km] vis[vis > 24.135] = 24.135 return vis
\ endgroup美元
3.
  • 4
    \ begingroup美元 这是我在SO问题上得到的最直接最完美的答案。非常感谢。这将使许多人受益。 \ endgroup美元
    - - - - - -sundar_ima
    2016年2月17日17:15
  • 1
    \ begingroup美元 谢谢你的工作。但是关于这个公式我有一个问题。这个公式有水珠混合比例,空气温度和压力作为输入。但我注意到,可见光的吸收和散射作用会降低能见度气溶胶(例如黑碳)。这个公式适用于实际情况吗? \ endgroup美元
    - - - - - -汉Zhengzu
    2016年3月18日11:04
  • \ begingroup美元 不,这个公式只考虑了干净的空气、水蒸气、液滴和冰晶。 \ endgroup美元
    - - - - - -milancurcic
    2016年3月18日15:34

你的答案

点击“张贴您的答案”,即表示您同意我们的服务条款隐私政策而且饼干的政策

这不是你想要的答案?浏览带标签的其他问题问自己的问题