admin管理员组文章数量:1530940
2024年6月8日发(作者:)
NCL绘图示例(二):台风路径及风圈图
施宁
(南京信息工程大学 大气科学学院)
begin
ncol = 6
nrow = 31 ;时次总数
; (1) 读入台风资料
path = "./"
data = asciiread(path,(/31,6/),"integer")
amp = data(:,1) ; 强度
lat = data(:,2)/10. ; 纬度
lon = data(:,3)/10. ; 经度
nbin = 6 ;已知该该气旋共经历了6个等级的演变
wks = gsn_open_wks("eps","plot-primitive")
gsn_define_colormap(wks, "tbrAvg1")
cmap = read_colormap_file("tbrAvg1") ;读取色板中的颜色
ncol = dimsizes(cmap(:,0)) ;色板的颜色总数
res = True ; plot mods desired
res@gsnFrame = False
res@gsnDraw = False ; don't draw plot yet
res@mpMinLatF = 5 ; zoom in on a subregion
res@mpMaxLatF = 35
res@mpMinLonF = 110
res@mpMaxLonF = 150
res@mpOutlineOn = True
res@pmTickMarkDisplayMode = "Always"
map = gsn_csm_map(wks,res)
;--添加任意折线,表示出台风路径
lnres = True
lnres@gsLineColor = "black"
lnres@gsLineThicknessF = 1.5
lnres@gsLineDashPattern = 0
str = unique_string("string")
map@$str$ = gsn_add_polyline(wks,map,lon,lat,lnres)
;;添加标识,表示出每个时次的台风中心位置
mkres = True
mkres@gsMarkerSizeF = 0.01 ;大小。在 0~1范围内设置。
mkres@gsMarkerIndex = 3
mkres@gsMarkerThicknessF = 1.5
do i = 0, nrow-1
mkres@gsMarkerColor = toint(floor(ncol/nbin*amp(i)-1)) ;在整个色板中准
等距离的挑选颜色
str = unique_string("string")
map@$str$ = gsn_add_polymarker(wks,map,lon(i),lat(i),mkres)
end do
;--在图形正下方添加等级图例
x_ndc = (/0.25,0.35,0.45,0.55,0.65,0.75/)
y_ndc = (/0.14,0.14,0.14,0.14,0.14,0.14/)
t_ndc = tostring(ispan(1,6,1)) ;假定已知等级为1、2……6
mkres@gsMarkerSizeF = 0.01 ;标识的大小,在 0~1范围内设置。
mkres@gsMarkerThicknessF = 1.5 ;标识的粗细
txres = True
txres@txFontHeightF = 0.02
do i = 0,5 ; 绘制每个等级的图例,它由标识和文本构成
mkres@gsMarkerColor = toint(floor(ncol/nbin*(i+1)-1))
gsn_polymarker_ndc(wks,x_ndc(i),y_ndc(i),mkres)
gsn_text_ndc(wks,t_ndc(i),x_ndc(i)+0.02,y_ndc(i),txres) ;将文本向右边移动
end do
txres@txFontHeightF = 0.03
str = unique_string("string")
txres@txPerimOn = False
map@$str$ = gsn_add_text(wks,map,"Nepartak",135,22,txres)
draw(map)
;--以下绘制第22时次的大致风圈范围:以其中心为圆心,以0.05长度为半径的
圆形区域
xout_ndc = lon
yout_ndc = lat
datatondc(map,lon,lat,xout_ndc,yout_ndc)
degrad = 0.943 ;3.1415926/180
degrees = ispan(0,360,1) ;创建361点
xcos = cos(degrad*degrees) ;各个角度的余弦值
xsin = sin(degrad*degrees) ;各个角度的正弦值
;--圆心点位置及半径
xcenter = xout_ndc(21) ;第22时次中心所在x位置
ycenter = yout_ndc(21) ;第22时次中心所在y位置
radius = 0.05
;--计算出各个点在单位坐标系中的坐标位置
xc = xcenter + (radius * xcos)
yc = ycenter + (radius * xsin)
;--设置多边形的绘图参数,根据单位坐标系中的位置绘制多边形
lnres = True
lnres@gsFillColor = 46
lnres@gsFillOpacityF = 0.5 ;50%透明
lnres@gsFillLineThicknessF = 2. ;多边形边框粗细
gsn_polygon_ndc(wks,xc,yc,lnres)
frame(wks)
end
版权声明:本文标题:NCL绘图示例台风路径及风圈图-大气科学学报 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1717801254a611422.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论