爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5661|回复: 1

[作图] NCL画非洲年平均风场图(ERA5数据)

[复制链接]

新浪微博达人勋

发表于 2021-12-27 19:32:45 | 显示全部楼层 |阅读模式

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

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

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)                ;图形展板展示


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

新浪微博达人勋

发表于 2021-12-27 21:42:00 | 显示全部楼层
手动点赞,有图更佳
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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