- 积分
- 1633
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-1-5
- 最后登录
- 1970-1-1
|
在老师的指导下,进行了显著性检验,基本一致,但略有差异。脚本如下:
f = addfile('E:/MeteoInfo/Dataset/precip.mon.mean.2.5x2.5.nc')
print f
startmon = 6
monn= 3
var = 'precip'
yr = '0:60'
xr = '60:150'
vardata = f[var[0,yr,xr
y = vardata.dimvalue(0)
x = vardata.dimvalue(1)
ny = vardata.dimlen(0)
nx = vardata.dimlen(1)
prepJJA = [
for i in range(1981,2018):
tidx = (i-1948)*12
starttidx = tidx+startmon-1
t = f.gettime(tidx)
data = sum(f[var[starttidx:starttidx+monn,yr,xr,axis=0)
#data = f[var][starttidx,yr,xr]*30+f[var][starttidx+1,yr,xr]*31+f[var][starttidx+2,yr,xr]*31
prepJJA.append(data)
prepmJJA = sum(prepJJA[0:30)/30.0 #climate 1981-2010
for t in range(0,37):
prepJJA[t = (prepJJA[t-prepmJJA)*100/prepmJJA
#print prepJJA[0][0,:]
years = [1985,1989,1996,2000,2001,2008,2011,2012
com_ana_preps = [
for year in years:
yid = year - 1981
#print yid
com_ana_preps.append(prepJJA[yid)
com_ana_prep = sum(com_ana_preps[0:)/len(years)
tt = zeros([ny,nx)
pval = zeros([ny,nx)
an = len(prepJJA)
bn = len(com_ana_preps)
cn = an-bn
#print cn
for i in range(ny):
for j in range(nx):
arra = zeros(an)
kk =0
for k in range(an):
if(not (k+1981) in years):
arra[kk = prepJJA[k[i,j
kk=kk+1
#print k+1981
#print kk
arra = zeros(an)
arrb = zeros(bn)
for k in range(bn):
arrb[k = com_ana_preps[k[i,j
#print arra
#print arrb
t,p = stats.ttest_ind(arra,arrb)
#t,p = stats.ttest_1samp(arrb,0)
tt[i,j = t
pval[i,j = p
#print p
tt[pval>0.05 = nan
#print tt
axesm()
mlayer = shaperead('E:\MeteoInfo\MeteoInfo\Map\country.shp')
geoshow(mlayer,edgecolor=(0,0,255))
clevs =[-50,-40,-30,-20,-10,0,10,20,30,40,50
cols=[(182,106,40),(205,133,63),(225,165,100),(245,205,132),(245,224,158),\
(255,245,186),(205,255,205),(153,240,178),(83,189,159),(110,170,200),\
(5,112,176),(2,56,88)
#layer = contourfm(com_ana_pre,20)
layer = contourfm(com_ana_pre,clevs, colors=cols)
#colorbar(layer,orientation='horizontal')
lon,lat = meshgrid(x,y)
lon[tt==nan = nan
lat[tt==nan = nan
layer1 = scatterm(lon,lat,tt,color='k',size = 3.0,marker = '+')
#colorbar(layer1)
xlim(60,150)
ylim(0,60)
title('Anomaly Percentage(%)')
|
-
|