- 积分
- 1329
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2020-3-13
- 最后登录
- 1970-1-1
![[简森森] 粉丝数:21 微博数:99 新浪微博达人勋](source/plugin/sina_login/img/light.png)
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
;;;;;;;涉及 NCL调分辨率;;;;;;;南北东西半球的经纬度单位设置;;;;;;;;;计算年平均值;;;;;;;;;;
f = addfile("wind.grib","r")
u = f->10U_GDS0_SFC_S123 ;300*lat281*lon321
v = f->10V_GDS0_SFC_S123
time = f->initial_time0_hours
t = cd_calendar(time,0) ;300*6
yyyy = t(:,0) ;300
mon = t(:,1)
mm = toint(mon)
ny = dimsizes(yyyy)
;---------------------------------plot-----------------------------
wks_type = "png"
wks_type@wkWidth = 2500 ;调整分辨率
wks_type@wkHeight = 2500
wks = gsn_open_wks(wks_type,"wind"+yyyy(0)+"_"+yyyy(ny-1))
stringw = (/"(a)","(b)","(c)","(d)","(e)","(f)","(g)","(h)","(i)","(j)","(k)","(l)"/) ;定义图形标号
monname = (/"Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sept.","Oct.","Nov.","Dec."/)
plot = new(12,graphic)
res = True
res@gsnDraw = False
res@gsnFrame = False
res@gsnAddCyclic = False ;The range of your longitude data is not 360.
res@gsnLeftString = ""
res@gsnRightString = ""
;----------------vector-----------------
res@vcLineArrowThicknessF = 2.
res@vcMinDistanceF = 0.03 ;箭头之间的最小距离
res@vcRefLengthF = 0.03 ;参考箭头在图形中的长度
res@vcRefAnnoOn = True ;绘制参考箭头
res@vcRefMagnitudeF = 5 ;参考箭头所表示的物理量的大小
res@vcRefAnnoSide = "Top" ;位置
res@vcRefAnnoOrthogonalPosF = 0.01 ;调整位置
res@vcRefAnnoBackgroundColor = -1 ;参考箭头背景色设为透明
res@vcRefAnnoPerimOn = False ;不画参考箭头的边框
res@vcRefAnnoString1On = True ;画参考箭头之上的字符串
res@vcRefAnnoString1 = "5"
res@vcRefAnnoString2On = True ;之下字符串
res@vcRefAnnoString2 = "m/s"
;--------------map--------------
res@mpMinLonF = -25
res@mpMaxLonF = 55
res@mpMinLatF = -35
res@mpMaxLatF = 35
;--------------坐标标签----------
res@tmXBMode = "Explicit"
;-------longtitude-----
lon_value = (/-15,0,15,30,45/)
lon_lable = lon_value+"~S~o~N~E"
do i=0,4
if (i .lt. 1) then
lon_lable(0) = -1*lon_value(0)+"~S~o~N~W"
else if (i .eq. 1) then
lon_lable(1) = 0
else
lon_lable(i) = lon_value(i)+"~S~o~N~E"
end if
end if
end do
res@tmXBValues = lon_value
res@tmXBLabels = lon_lable
;------latitude------
lat_value = (/-30,-15,0,15,30/)
lat_lable = lat_value+"~S~o~N~N"
do i=0,4
if (i .lt. 2) then
lat_lable(i) = -1*lat_value(i)+"~S~o~N~S"
else if (i .eq. 2) then
lat_lable(2) = 0
else
lon_lable(i) = lon_value(i)+"~S~o~N~N"
end if
end if
end do
res@tmYLValues = lat_value
res@tmYLLabels = lat_lable
;---------循环计算+画图----------
do i = 0 ,11
res@gsnLeftString = stringw(i) + monname(i)
res@gsnLeftStringOrthogonalPosF = -0.15
uu = new((/25,281,321/),float)
vv = new((/25,281,321/),float)
k = 0
do j = 0 ,299
if ((mm(j)-1)%12 .eq. i) then
uu(k,:,:) = u(j,:,:) ;25*281*321
vv(k,:,:) = v(j,:,:)
k=k+1;
end if
end do
uave = dim_avg_n_Wrap(uu,0)
vave = dim_avg_n_Wrap(vv,0)
plot(i) = gsn_csm_vector_map(wks,uave,vave,res)
end do
pnlres = True
gsn_panel(wks,plot,(/3,4/),pnlres) ;图形展板展示
|
|