rainmetricdemo.py 文件源码

python
阅读 44 收藏 0 点赞 0 评论 0

项目:rain-metrics-python 作者: apendergrass 项目源码 文件源码
def makedistplots(ppdf1,pamt1,bincrates):
    #### This is how we'll normalize to get changes per degree warming. 
    dry=ppdf1[0]*100 # Change in dry days
    # % rain rates in mm/d for x axis ticks and labeling 
    otn=np.linspace(1,9,9)
    xtickrates=np.append(0,otn*.1)
    xtickrates=np.append(xtickrates,otn)
    xtickrates=np.append(xtickrates,otn*10)
    xtickrates=np.append(xtickrates,otn*100)
    xticks=np.interp(xtickrates,bincrates,range(0,len(bincrates))); #% bin numbers associated with nice number rain rate
    xticks,indices=np.unique(xticks,return_index=True)
    xtickrates=xtickrates[indices]
    ### Bin width - needed to normalize the rain amount distribution
    db=(bincrates[2]-bincrates[1])/bincrates[1];
    ### Now we plot
    plt.figure(figsize=(4,6))
    plt.clf()
    ax=plt.subplot(211)
    plt.plot(range(0,len(pamt1)),pamt1/db, 'k')
    #plt.ylim((-.05,.15))
    plt.xlim((4,130))
    #plt.setp(ax,xticks=xticks,xticklabels=['0','0.1','','','','','','','','','','1','','','','','','','','','10','','','','','','','','','100','','','','','','','','','1000'])
    plt.setp(ax,xticks=xticks,xticklabels=[''])
    #plt.xlabel('Rain rate (mm/d)')
    plt.title('Rain amount (mm/d)')
    ax=plt.subplot(212)
    plt.plot(range(0,len(ppdf1)),ppdf1*100, 'k')
    plt.plot((0,len(ppdf1)),(0,0),'0.5')
    plt.xlim((4,130))
    ### Annotate with the dry day frequency
    ymin, ymax = ax.get_ylim()
    t=plt.text(4,ymax*0.95, "{:.1f}".format(dry)+'%')
    plt.setp(t,va='top',ha='left')
    plt.setp(ax,xticks=xticks,xticklabels=['0','0.1','','','','','','','','','','1','','','','','','','','','10','','','','','','','','','100','','','','','','','','','1000'])
    plt.xlabel('Rain rate (mm/d)')
    plt.title('Rain frequency (%)')
    plt.savefig("rainmetricdemo.pdf")
    return

### Call the function to make the rain distribution
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号