- 积分
- 2173
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-5-16
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我是以12个月为时间尺度来计算的1960-2015年逐个月的spi指数 ,到print spi为止一切顺利 计算无误,但是后续的出图失败并且运行没有出现错误,希望能得到大家的帮助,万分感谢!!
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"
begin
data = asciiread("/home/WQiuuu/PRE/xnpretjiyue/xntjiall.txt",(/672,3/), "float")
prc = data(:,2) ; make one dimensional
nprc = dimsizes(prc) ; check size
if ((nprc%12).ne.0) then
print("prc size must be divisible by 12") ; full 12-month years only
exit
end if
prc@_FillValue = -999.0
spi = dim_spi_n(prc, 12, False, 0)
; create a yyyymm array for printing purposes
year = toint(data(:,0))
nyear = dimsizes(year)
yrStrt = year(0)
yrLast = year(nyear-1)
yyyymm = yyyymm_time(yrStrt, yrLast, "integer") ; contributed.ncl
ntim = dimsizes(yyyymm)
if ((ntim%12).ne.0) then
print("ntim must be divisible by 12")
exit
end if
print(yyyymm+" "+sprintf("%8.2f", prc)+" "+sprintf("%8.2f", spi))
year = yyyymm/100
yrStrt = year(0)
yrLast = year(ntim-1)
nyear = yrLast-yrStrt+1
yyyymm = yyyymm_time(yrStrt, yrLast, "integer")
yrfrac = (/ yyyymm_to_yyyyfrac(yyyymm, 0.0) /)
wks = gsn_open_wks ("png","spi12all3-48")
; send graphics to PNG file
res = True ; plot mods desired
res@gsnDraw = False
res@gsnFrame = False
res@vpHeightF= 0.4 ; change aspect ratio of plot
res@vpWidthF = 0.8
res@vpXF = 0.1 ; start plot at x ndc coord
res@trYMinF = -3.0 ; min value on y-axis
res@trYMaxF = 3.0 ; max value on y-axis
res@gsnYRefLine = 0.0 ; create a reference line
res@xyMonoDashPattern = True
res@xyLineThicknessF = 1
res@xyLineColors = "black"
res@gsnCenterString = "run=12"
plot = gsn_csm_xy (wks,yrfrac,spi,res)
;frame(wks)
end
|
|