hi,
I want to get the mean vector between 2 layers , so i create a new u,v to see the mean direction and magnitude. while the script error is as follows:
warning:StreamlinePlotInitialize: zero vector field; StreamlinePlot not possible:[errno=1103]
Any suggestions will be appreciate. Thanks
JinQ
--
JinQ, M.S.
Ocean University of China
--
scripts:
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
begin
;
; The WRF ARW input file.
; This needs to have a ".nc" appended, so just do it.
a = addfile("wrfout_d03_2010-09-09_12:00:00o.nc","r")
type = "pdf"
; type = "eps"
wks = gsn_open_wks(type,"mean")
; Set some basic resources
res = True
res@gsnMaximize=True
res@gsnDraw = False ; let gsn_panel do plotting
res@gsnFrame = False
;res@pmTickMarkDisplayMode="Always"
res@tmXBTickSpacingF= 2
res@tmYLTickSpacingF= 2
res@tmXBLabelFontHeightF=0.025
res@tmYLLabelFontHeightF=0.025
res@tmXBMinorOn = False ; no lon minior tickmarks
res@tmYLMinorOn = False
res@mpDataSetName = "Earth..4"
res@mpDataBaseVersion = "MediumRes"
res@mpOutlineSpecifiers = (/"China:states","India","Taiwan"/)
res@mpLimitMode = "LatLon"
res@mpMinLatF = 22
res@mpMaxLatF = 28.1
res@mpMinLonF = 115.7
res@mpMaxLonF = 120.7
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
times = wrf_user_list_times(a) ; get times in the file
ntimes = dimsizes(times) ; number of times in the file
; The specific pressure levels that we want the data interpolated to.
pressure_levels = (/ 850., 200./) ; pressure levels to plot
nlevels = dimsizes(pressure_levels) ; number of pressure levels
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
do it = 12,ntimes-36,12 ; TIME LOOP
print("Working on time: " + times(it) )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
u = wrf_user_getvar(a,"ua",it) ; u averaged to mass points
v = wrf_user_getvar(a,"va",it) ; v averaged to mass points
p = wrf_user_getvar(a, "pressure",it) ; pressure is our vertical coordinate
z = wrf_user_getvar(a, "z",it) ; grid point height
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pressure0 = pressure_levels(0)
pressure1 = pressure_levels(1)
; z_plane = wrf_user_intrp3d( z,p,"h",pressure,0.,False)
u_plane0 = wrf_user_intrp3d( u,p,"h",pressure0,0.,False)
v_plane0 = wrf_user_intrp3d( v,p,"h",pressure0,0.,False)
u_plane1 = wrf_user_intrp3d( u,p,"h",pressure1,0.,False)
v_plane1 = wrf_user_intrp3d( v,p,"h",pressure1,0.,False)
u_planeb=wgt_areaave(u_plane1,1.,1.,0)-wgt_areaave(u_plane0,1.,1.,0)
v_planeb=wgt_areaave(v_plane1,1.,1.,0)-wgt_areaave(v_plane0,1.,1.,0)
u_plane=new(dimsizes(u_plane0),float)
v_plane=new(dimsizes(v_plane0),float)
copy_VarMeta(u_plane0,u_plane)
copy_VarMeta(v_plane0,v_plane)
u_plane=(/u_planeb/)
v_plane=(/v_planeb/)
u_plane = u_plane*1.94386 ; kts
v_plane = v_plane*1.94386 ; kts
u_plane@units = "kts"
v_plane@units = "kts"
lat2d=a->XLAT(0,:,:)
lon2d=a->XLONG(0,:,:)
u_plane@lat2d=lat2d
u_plane@lon2d=lon2d
v_plane@lat2d=lat2d
v_plane@lon2d=lon2d
; Plotting options for Wind Vectors
opts = res
opts@vcGlyphStyle = "CurlyVector"
opts@vcMinDistanceF =0.02
opts@vcRefLengthF = 0.045
; opts@vcRefMagnitudeF = 20.0
opts@vcRefAnnoOrthogonalPosF = -1.
vector = gsn_csm_vector_map_ce(wks,u_plane,v_plane,opts)
draw(vector)
delete(opts)
frame(wks)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end do ; END OF TIME LOOP
end
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Jan 10 00:15:11 2012
This archive was generated by hypermail 2.1.8 : Wed Jan 18 2012 - 09:21:55 MST