爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1630|回复: 1

[求助] 用ERA5小时数据算水汽,但是NCL代码算出来有缺测

[复制链接]
回帖奖励 5 金钱 回复本帖可获得 5 金钱奖励! 每人限 1 次

新浪微博达人勋

发表于 2023-7-2 22:13:35 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
想算成都地区的水汽,但是NCL算出来1000-850hpa只有西边界有值,其他都为缺测值,然后700-850hpa南边界有值,但其他两个边界依旧为缺测值,最后300-500hpa四个边界都有值,想问一下问什么会出现这样的情况
因字节限值,代码在评论区,请见谅


密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2023-7-2 22:16:35 | 显示全部楼层
begin
name=(/"vapor flux"/)
g = 9.8
diri = "/"
filq = "1.19-1.27q.nc"   ; daily data for current year [366 days]
filu = "1.19-1.27u.nc"
filv = "1.19-1.27v.nc"
filps= "1.19-1.27data.nc"

pthu = diri+filu      
pthv = diri+filv
pthq = diri+filq     
pthps= diri+filps

fu   = addfile(pthu ,"r")
fv   = addfile(pthv ,"r")
fq   = addfile(pthq ,"r")
fps  = addfile(pthps,"r")




u = short2flt(fu->u(:,{500:600},:,:))
v = short2flt(fv->v(:,{500:600},:,:))
qq =short2flt(fq->q(:,{500:600},:,:))

levels= u&level

q = qq
q@unit = "kg/kg"
copy_VarCoords(qq,q)

p = short2flt(fps->sp)

ps =  area_hi2lores_Wrap(p&longitude,p&latitude,p,False,1, q&longitude, q&latitude,False)

qu = u*q
qv = v*q

qu@unit = "m.kg/s.kg"
qv@unit = "m.kg/s.kg"
copy_VarCoords(q,qu)
copy_VarCoords(q,qv)
printVarSummary(qu)

;==========================================================
;                        积分
;==========================================================

dp   = dpres_plevel_Wrap(levels*100, ps, 50000, 0)
dpg = dp/g
dpg@unit = "kg/m2"
copy_VarCoords(qu, dpg)

qn_qu = dim_sum_n(qu*dpg, 1)
qn_qv = dim_sum_n(qv*dpg, 1)
qn_qu@unit = "kg/m.s"
qn_qv@unit = "kg/m.s"
copy_VarCoords(ps,qn_qu)
copy_VarCoords(ps,qn_qv)
printMinMax(dim_avg_n_Wrap(qn_qu,0),False)
printMinMax(dim_avg_n_Wrap(qn_qv,0),False)
;==========================================================
;
;==========================================================
qn_div    = (uv2dv_cfd(dim_avg_n_Wrap(qn_qu,0),dim_avg_n_Wrap(qn_qv,0), qn_qu&latitude, qn_qu&longitude, 0))*100000
copy_VarMeta(qu(0,0,:,:), qn_div)
printMinMax(qn_div,False)
dx = 2.5
; 西边界
y1 = qn_qu(:,{30.05:31},{102.54})

; 东边界
y2 = qn_qu(:,{30.05:31},{104.2})

; 南边界
y3 = qn_qv(:,{30.05},{102.54:104.2})

; 北边界
y4 = qn_qv(:,{31},{102.54:104.2})

Q_w = new((/dimsizes(p&time)/),"float")
Q_e = Q_w
Q_s = Q_w
Q_n = Q_w

do i = 0,dimsizes(Q_w)-1
  Q_w(i) = simpeq(y1(i,:),dx)*1.11/100
  Q_e(i) = simpeq(y2(i,:),dx)*1.11/100
  Q_s(i) = simpeq(y3(i,:),dx)*1.11*cos(21*3.14159/180)/100
  Q_n(i) = simpeq(y4(i,:),dx)*1.11*cos(35*3.14159/180)/100
end do
Qt = Q_w-Q_e+Q_s-Q_n
print(Q_w)
print(Q_e)
print(Q_s)
print(Q_n)
print(Qt)

wks    = gsn_open_wks("pdf","D:/AIXI/6-10.pdf")
res                   =  True              ; plot mods desired
res@vpHeightF = 0.35
res@vpWidthF = 0.6
res@trXMinF = 1008192
res@trXMaxF = 1008311
res@trYMinF = -2
res@trYMaxF = 4
res@xyDashPattern = 0
res@xyMarkLineMode =(/"MarkLines"/)
res@xyLineThicknessF=(/"2"/)
res@xyMarker =(/1/)
res@xyMarkerSizeF = 0.01
res@xyLineColor =(/"pink"/)
res@tiXAxisString = "hour"
res@tiYAxisString = "vapor flux"
res@gsnYRefLine = 0
res@gsnYRefLineDashPattern = 16
res@gsnYRefLineThicknessF = 0.5
plot1=gsn_csm_xy(wks,u&time,Qt(:), res)
end
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表