爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11491|回复: 12

[其他] NCL不同地形高度插值求助

[复制链接]

新浪微博达人勋

发表于 2015-7-16 10:37:47 | 显示全部楼层 |阅读模式

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

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

x
有人做过NCL 不同地形高度的插值吗,我想利用WRF模拟结果,差值某个地区10m的风速,但是NCL差值出来的结果是海平面10m,而我想要的结果是海平面+地形高度之后10m的风速,请问这要怎么差值?tc_plane = wrf_user_intrp3d(tc,z,"h",height,0.,False)这个语句插值出来是海拔高度的,有人弄过吗,多谢啦

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

新浪微博达人勋

发表于 2015-7-16 13:22:36 | 显示全部楼层
本帖最后由 longlivehj 于 2015-7-16 13:24 编辑

QQ图片20150716132008.png QQ图片20150716132004.png
分别为70m等高面和地形以上70m。就用以下两条语句,处理一下z就可以了。
z  = wrf_user_getvar(a, "z", -1)
z = z - conform(z, wrf_user_getvar(a, "ter", -1), (/0, 2, 3/))

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2015-7-16 11:30:28 | 显示全部楼层
参数z用减掉地形高度后的值
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-12 23:01:50 | 显示全部楼层
longlivehj 发表于 2015-7-16 13:22
分别为70m等高面和地形以上70m。就用以下两条语句,处理一下z就可以了。
z  = wrf_user_getvar(a, "z",  ...

请问我写成这样对么,但是运行总是提示v_plane这行有错误~您觉得会出现什么问题呢?
还有想请教一下0,2,3这个参数是什么意思呢?需要修改吗?
v  = wrf_user_getvar(a,"V",it)
v_plane = wrf_user_intrp3d(v,z,"h",height,0.,False)
z  = wrf_user_getvar(a, "z", it)
z = z - conform(z, wrf_user_getvar(a, "ter", it), (/0, 2, 3/))

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

新浪微博达人勋

发表于 2016-1-12 23:43:23 | 显示全部楼层
longlivehj 发表于 2015-7-16 13:22
分别为70m等高面和地形以上70m。就用以下两条语句,处理一下z就可以了。
z  = wrf_user_getvar(a, "z",  ...

在思考其中的height是不是需要先定义才不会报错,望指教~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-13 09:13:20 | 显示全部楼层
vanilla7 发表于 2016-1-12 23:43
在思考其中的height是不是需要先定义才不会报错,望指教~

错误提示?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-13 10:09:08 | 显示全部楼层

提示先显示这一行有问题v_plane = wrf_user_intrp3d(v,z,"h",height,0.,False)
然后把height=new(2,float)后又显示z不存在于a中,不能用这个z  = wrf_user_getvar(a, "z", it) 打开
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-13 10:24:09 | 显示全部楼层
vanilla7 发表于 2016-1-13 10:09
提示先显示这一行有问题v_plane = wrf_user_intrp3d(v,z,"h",height,0.,False)
然后把height=new(2,floa ...

z还没有获取就插值啊!语句的顺序调整一下。至于a中找不到z,不清楚。把所有错误信息全部贴出比较好。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-13 11:03:13 | 显示全部楼层
longlivehj 发表于 2016-1-13 10:24
z还没有获取就插值啊!语句的顺序调整一下。至于a中找不到z,不清楚。把所有错误信息全部贴出比较好。

z=wrf_user_getvar(a,"z",it)
;z=z-conform(z,wrf_user_getvar(a,"ter",it),(/0,2,3/))

u = wrf_user_getvar(a,"U",it)
;height=new(2,float)
height=50.
u_plane=wrf_user_intrp3d(u,z,"h",height,0.,False)

v = wrf_user_getvar(a,"V",it)
height=50.
v_plane=wrf_user_intrp3d(v,z,"h",height,0.,False)

u10 = u_plane*1.94386
v10=  v_plane*1.94386
u10@units = "kts"
v10@units = "kts"
WindVeo = sqrt(u_plane*u_plane+v_plane*v_plane)

这个是修改后,现在可以读取z了,可是却总是提示WindVeo = sqrt(u_plane*u_plane+v_plane*v_plane)
这一行有错误
fatal:Dimension size mismatch,dimension(2) of left hand side reference does not have the same size as the right hand side reference after subscripting.
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-13 11:06:01 | 显示全部楼层
longlivehj 发表于 2016-1-13 10:24
z还没有获取就插值啊!语句的顺序调整一下。至于a中找不到z,不清楚。把所有错误信息全部贴出比较好。

这个是我从官网上修改的想要得到平均风速的脚步,希望可以实现得到50m,70m这样的,可是总是提示刚才的错误
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"

begin

a = addfile("wrfout_d03_2012-04-11_00_00_00.nc","r")

type = "pdf"
wks = gsn_open_wks(type,"case")

res = True
res@MainTitie = "REAL-TIME WRF"
res@Footer = False
pltres = True
mpres = True

times = wrf_user_getvar(a,"times",-1)
ntimes = dimsizes(times)
it = 0
res@TimeLabel = times(it)

;slp = wrf_user_getvar(a,"slp",it)
;wrf_smooth_2d(slp,3)

;t2 = wrf_user_getvar(a,"T2",it)
;tc2 = t2-273.16
;tf2 = 1.8*tc2+32
;tf2@description = "Surface Temperature"
;tf2@units = "F"

z=wrf_user_getvar(a,"z",it)
;z=z-conform(z,wrf_user_getvar(a,"ter",it),(/0,2,3/))

u = wrf_user_getvar(a,"U",it)
;height=new(2,float)
height=50.
u_plane=wrf_user_intrp3d(u,z,"h",height,0.,False)

v = wrf_user_getvar(a,"V",it)
height=50.
v_plane=wrf_user_intrp3d(v,z,"h",height,0.,False)

u10 = u_plane*1.94386
v10=  v_plane*1.94386
u10@units = "kts"
v10@units = "kts"
WindVeo = sqrt(u_plane*u_plane+v_plane*v_plane)


;u10 = wrf_user_getvar(a,"U10",it)
;v10 = wrf_user_getvar(a,"V10",it)
;u10 = u10*1.94386
;v10 = v10*1.94386
;u10@units = "kts"
;v10@units = "kts"
;WindVeo = sqrt(u10*u10*1.2+v10*v10*1.2)

opts = res
opts@ContourParameters=(/0.,24.,1./)
opts@gsnSpreadColorEnd = -3
contour_WindVeo = wrf_contour(a,wks,WindVeo,opts)
delete(opts)

;opts = res
;opts@cnFillOn = True
;opts@ContourParameters=(/-20.,90.,5./)
;opts@gsnSpreadColorEnd = -3
;contour_tc = wrf_contour(a,wks,tf2,opts)
;delete(opts)

;opts = res
;opts@cnLineColor = "Blue"
;opts@cnHighLabelsOn = True
;opts@ContourParameters = (/900.,1100.,4./)
;contour_psl = wrf_contour(a,wks,slp,opts)
;delete(opts)

opts = res
opts@FieldTitle = "Winds"
opts@NumVectors = 47
vector = wrf_vector(a,wks,u10,v10,opts)
delete(opts)

;plot = wrf_map_overlays(a,wks,(/contour_tc,contour_psl,vector/),pltres,mpres)
plot = wrf_map_overlays(a,wks,(/contour_WindVeo,vector/),pltres,mpres)


end
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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