- 积分
- 282
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-6-10
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2019-1-23 16:09:56
|
显示全部楼层
; ==============================================================
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 "/Users/mac/Downloads/shuju/draw/geodiag_plot_utils.ncl"
load "/Users/mac/Downloads/shuju/draw/zh.ncl"
; ==============================================================
ntime=12
nstd=753
latlon = asciiread("/Users/mac/Downloads/shuju/new_latlon.txt",(/nstd,2/),"float")
lat = latlon(:,0)
lon = latlon(:,1)
; ==============================================================
ep = asciiread("/Users/mac/Downloads/shuju/Month_Tmax_adj_final.txt",(/ntime,nstd/),"float")
;==============interploation====================================
nx=141
ny=81
sx=70.0
ex=140.0
sy=15.0
ey=55.0
mdata=new((/6,ny,nx/),"float")
mdata!0="time"
do t=0,12
tt=ep(t+3,:)
; mdata(t,:,:)=zh_rectgrid(lon(0:nstd-1),lat(0:nstd-1),tt(0:nstd-1),1.0,"/Users/mac/Downloads/shuju/draw/cnmask.dat","float",nx,ny,sx,ex,sy,ey,"nat",True)
mdata(t,:,:)=zh_rectgrid(lon(0:nstd-1),lat(0:nstd-1),tt(0:nstd-1),1.0, \
"/Users/mac/Downloads/shuju/draw/cnmask.grd","float",nx,ny,sx,ex,sy,ey,"ds",True)
print(t)
end do
mdata=where(mdata.le.-100,mdata@_FillValue,mdata)
printVarSummary(mdata)
printMinMax(mdata,True)
;===========================================================
; PLOTS
;============================================================
wks = gsn_open_wks("eps","Month_Tmax_adj_final")
gsn_define_colormap(wks,"WhiteBlueGreenYellowRed") ; choose colormap
plot = new(6,graphic) ; create graphic array
; only needed if paneling
res = True
res@gsnDraw = False ; don't draw yet
res@gsnFrame = False ; don't advance frame yet
res@gsnSpreadColors = True ; spread out color table
res@gsnAddCyclic = False
res@mpOutlineOn = False
res@mpFillOn = False
res@mpLimitMode = "Corners"
res@mpLeftCornerLatF = 15
res@mpLeftCornerLonF = 70
res@mpRightCornerLatF = 55
res@mpRightCornerLonF = 140
res@cnFillOn = True ; turn on color fill
res@cnLinesOn = False ; True is default
res@cnLineLabelsOn = False ; True is default
res@lbLabelBarOn = False ; turn off individual lb's
res@gsnSpreadColors = True ; use full color map
res@gsnSpreadColorStart = 10
res@gsnSpreadColorEnd = 256 ; don't use added gray
; set symmetric plot min/max
; symMinMaxPlt(eof_rot, 16, False, res) ; contributed.ncl
res@cnLevelSelectionMode ="ManualLevels" ;"AutomaticLevels" ; "ManualLevels"
res@cnMinLevelValF = 1.
res@cnMaxLevelValF = 4.
res@cnLevelSpacingF = 0.2
; panel plot only resources
resP = True ; modify the panel plot
resP@gsnMaximize = True ; large format
resP@gsnPanelYWhiteSpacePercent = 4
resP@gsnPanelLabelBar = True ; add common colorbar
resP@lbLabelStride = 2 ; auto stride on labels
resP@txString = "Extreme precipitation days"
resP@txFontHeightF =0.02
resP@txFont=25
resP@lbLabelFont =25
resP@lbLabelFontHeightF =.01
resP@pmLabelBarWidthF = 0.7
resP@pmLabelBarHeightF = 0.04
config = True
config@isShowProvince = False
config@isShowSouthChinaSea = True
config@isAddMask = True
config@isShowRivers = True
;*******************************************
; Plot standard patterns
;*******************************************
res@gsnRightString ="";"Extreme precipitation days"
res@tmXBLabelFontHeightF = 0.025
res@tmYLLabelFontHeightF = 0.025
res@tmYLLabelFontThicknessF = 0.8
res@tmXBLabelFontThicknessF = 0.8
res@tmXBLabelFont = 25
res@tmYLLabelFont = 25
res@tmXBValues = fspan(80,120,3)
res@tmYLValues = fspan(20,50,4)
res@tmYLLabels = (/"20~S~o~N~N","30~S~o~N~N","40~S~o~N~N","50~S~o~N~N"/)
res@tmXBLabels = (/"80~S~o~N~E","100~S~o~N~E","120~S~o~N~E"/)
res@gsnStringFont=22
res@gsnStringFontHeightF= 0.028
month=(/"(a) January","(b) February","(c) March","(d) April","(e) May","(f) June","(g) July","(h) August","(i) September","(j) October","(k) November","(l) December"/)
do i=0,11
res@gsnLeftString = month(i)
plot(i)=gsn_csm_contour_map(wks,mdata(i,:,:),res)
attach_china_map(wks, plot(i), config)
end do
gsn_panel(wks,plot,(/2,3/),resP) ; only plot the 1st four
|
|