- 积分
- 1603
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-3-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
begin
f = addfile("个例数据.grib", "r")
time_o = f->initial_time0_hours
time_new = todouble(time_o)
copy_VarMeta(time_o,time_new)
utc_date = cd_calendar(time_new, 0)
day = tointeger(utc_date(:,2))
hour = tointeger(utc_date(:,3))
idx = ind(hour.eq.11) ;8点开始
tk = f->T_GDS0_ISBL(idx,{500:1000},:,:);温度 ;K
omea = f->W_GDS0_ISBL(idx,{500:1000},:,:)
uwnd = f->U_GDS0_ISBL(idx,{500:1000},:,:)
vwnd = f->V_GDS0_ISBL(idx,{500:1000},:,:)
leftlat = 40
rightlat = 35
leftlon = 100
rightlon = 110
function calculate_anomal(leftlat,rightlat,leftlon,rightlon,se3)
begin
level = se3&lv_ISBL1
xlat = se3&g0_lat_2(::-1)
xlon = se3&g0_lon_3
npts = 31
dist = gc_latlon(leftlat,leftlon,rightlat,rightlon,npts,2)
lat_new = dist@gclat
lon_new = dist@gclon
points = ispan(0,npts-1,1)*1.0
t_cross = linint2_points_Wrap(xlon,xlat,se3,True,dist@gclon,dist@gclat,2)
t_cross!0 = "level"
t_cross&level = level
return ([/t_cross,lat_new,lon_new/])
end
var = calculate_anomal(leftlat,rightlat,leftlon,rightlon,tk)
t_cross = var[0]
lat_new = var[1]
lon_new = var[2]
var1 = calculate_anomal(leftlat,rightlat,leftlon,rightlon,vwnd)
v_cross = var1[0]
var2 = calculate_anomal(leftlat,rightlat,leftlon,rightlon,omea)
w_cross = var2[0]
var3 = calculate_anomal(leftlat,rightlat,leftlon,rightlon,uwnd)
u_cross = var3[0]
;================================================================================================
wks = gsn_open_wks ("png", "test_TK_long1" ) ; open workstation
res = True ; plot mods desired
res@tiMainString = " " ; title
res@gsnLeftString = " "
res@gsnRightString = " "
res@cnLevelSelectionMode = "ManualLevels" ; manual contour levels
max_val = max(t_cross)
min_val = min(t_cross)
res@cnMinLevelValF = toint(min_val) ;sprintf("%.1f", min_val)
res@cnMaxLevelValF = toint(max_val) ;sprintf("%.1f", max_val)
res@cnLevelSpacingF = 4 ; contour interval
;res@cnMinLevelValF = -50. ; min level
;res@cnMaxLevelValF = 50. ; max level
res@cnLineLabelsOn = True ; turn on line labels
res@cnFillOn = True ; turn on color fill
res@cnFillPalette = "BlWhRe" ; set color map
res@cnLineLabelsOn = False
;res@vpWidthF = 0.5 ; 图形宽度占画布宽度的80%
;res@vpHeightF = 0.6 ; 图形高度占画布高度的60%
res@cnLinesOn = False ; 隐藏等值线
res@vcLineArrowColor = "black" ; 矢量颜色
res@vcRefAnnoOn = False ; 显示参考矢量标注
res@vcRefAnnoOn = True ; 开启参考标签
res@vcGlyphStyle = "LineArrow"
res@vcLineArrowThicknessF = 5
res@vcMinDistanceF = 0.03
res@vcRefLengthF = 0.05
res@vcRefAnnoString2On = False ; 关闭第二行字符串
res@vcRefAnnoOrthogonalPosF = -1.15 ; 标签垂直位置
res@vcRefAnnoParallelPosF = 1.00 ; 标签水平位置
res@vcRefAnnoBackgroundColor = "white" ; 标签背景色
res@gsnLeftString = " "
res@gsnRightString = " "
res@vcRefMagnitudeF = 5.0 ; 参考矢量大小
res@vcRefAnnoString1 = "5 m/s" ; 标签内容
res@pmLabelBarOrthogonalPosF = -0.02
res@pmLabelBarWidthF = 0.4
res@pmLabelBarHeightF = 0.1
;---------------------------------------------------------------------------------------
res@tmXBMode = "Explicit"
res@tmXBValues = (/0,15,30/)
res@tmXBLabels = (/lat_new(0)+"N"+lon_new(0)+"E",(lat_new(0)+lat_new(30))/2+"N"+(lon_new(0)+lon_new(30))/2+"E",lat_new(30)+"N"+lon_new(30)+"E"/)
;---------------------------------------------------------------------------------------
w_cross = w_cross*2.5*-1
copy_VarMeta(v_cross,w_cross)
;---------------------------------------------------------------------------------------
plot = gsn_csm_pres_hgt_vector(wks,t_cross,v_cross,w_cross,res)
end
|
|