爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2740|回复: 5

请各位帮忙看看这个正距平概率合成有没有什么问题

[复制链接]

新浪微博达人勋

发表于 2018-4-18 19:57:17 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
按照国家气候中心http://cmdp.ncc-cma.net/pred/cn_enso.php?product=cn_enso_lanina&season=decaying_JJA&area=asia&elem=prep#Lanina做个合成图。脚本代码如下
f = addfile('f:/precip.mon.mean.2.5x2.5.nc')
axesm()
mlayer = shaperead('F:\MeteoInfo\MeteoInfo\Map\country1.shp')
geoshow(mlayer,edgecolor=(0,0,255))
prepJJA = []
for i in range(1981,2018):
    tidx = (i-1948)*12
    t = f.gettime(tidx)
    data = f['precip'][tidx+5,:,:]+f['precip'][tidx+6,:,:]+f['precip'][tidx+7,:,:]   
    prepJJA.append(data)
prepmJJA = sum(prepJJA[0:30])/30.0

for t in range(0,37):
    prepJJA[t] = (prepJJA[t]-prepmJJA)*100/prepmJJA
    prepJJA[t] = prepJJA[t] /abs(prepJJA[t])
    prepJJA[t][prepJJA[t]<0] = 0
years = [1985,1989,1996,2000,2001,2008,2011,2012]
pos_ana_probs = []
for year in years:
    yid = year - 1981
    #print yid   
    pos_ana_probs.append(prepJJA[yid])
#print pos_ana_probs[2]
pos_ana_prob = sum(pos_ana_probs[0:])*100/len(years)

clevs =[0,10,20,30,40,50,60,70,80,90,100]
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 = imshow(pos_ana_prob,clevs, colors=cols)
colorbar(layer,orientation='horizontal')
xlim(60,150)
ylim(0,60)
title('Positive Anomaly Probability(%)')

1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-18 20:14:03 | 显示全部楼层
别的没仔细看,不过imshow需要改为imshowm
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-18 21:18:40 | 显示全部楼层
imshowm报错
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-18 21:58:00 | 显示全部楼层

你可以加入MeteoInfo QQ群方便交流。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-18 22:39:56 | 显示全部楼层

RE: 请各位帮忙看看距平百分率、正距平概率合成有没有什么问题

国家气候中心合成图。降水距平百分率脚本如下:
f = addfile('f:/precip.mon.mean.2.5x2.5.nc')
axesm()
mlayer = shaperead('F:\MeteoInfo\MeteoInfo\Map\country1.shp')
geoshow(mlayer,edgecolor=(0,0,255))
prepJJA = []
for i in range(1981,2018):
    tidx = (i-1948)*12
    t = f.gettime(tidx)
    data = f['precip'][tidx+5,:,:]+f['precip'][tidx+6,:,:]+f['precip'][tidx+7,:,:]   
    prepJJA.append(data)
prepmJJA = sum(prepJJA[0:30])/30.0
for t in range(0,37):
    prepJJA[t] = (prepJJA[t]-prepmJJA)*100/prepmJJA
years = [1985,1989,1996,2000,2001,2008,2011,2012]
com_ana_pres = []
for year in years:
    yid = year - 1981
    #print yid   
    com_ana_pres.append(prepJJA[yid])
com_ana_pre = sum(com_ana_pres[0:])/len(years)
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')
xlim(60,150)
ylim(0,60)
title('Anomaly Percentage(%)')


2.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-18 23:20:26 | 显示全部楼层
qxsw2016 发表于 2018-4-18 22:39
国家气候中心合成图。降水距平百分率脚本如下:
f = addfile('f:/precip.mon.mean.2.5x2.5.nc')
axesm()
...

嗯,和气候中心的图基本一致。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表