Lon = np.append(Lon,360+Lon[0]) X,Y = meshgrid(Lon,Lat) opt.append(X) opt.append(Y) # obtain final value for diff so values overlap a = zeros((len(diff),1)) diff = np.concatenate((diff,a),axis=-1) for lat in range(0, len(diff)): diff[lat][-1] = diff[lat][0] opt.append(diff) if sig == True: try: from sig_test import ttest regions = ttest(test_dat1,test_dat2,tcrit=tcrit,sig_lvl=sig_lvl,diff=mnmx) extra = regions[:,0] extra.shape = (regions[:,0].shape[0],1) regions = np.concatenate((regions,extra),1) except ValueError as err: print "Value Error: " + str(err) if graph == True: # generate output filename sgtype = 'ttest' output = str(output)+'_blk_'+str(typ)+'_'+str(sgtype)+'_'+str(int(100*(1-cutoff)+1)) from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt # use low resolution coastlines.
def plots(SC='SCmax',compress=False,select=True,two_hist=True,wrttime=False,hist=False,strength='jsi',start=1957,end='2001',sig=False,sea='Atlantic'): # get data data = jet(strength=strength) # plot data wrt time to compare to blocking cycle import matplotlib.pyplot as plt from solar import years yrs = np.array(years()[SC])-start all_yrs = np.array(range(1957,2002))-start if wrttime == True: fig = plt.figure() x = all_yrs+start#linspace(0, 5, 10) y = data axes = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # left, bottom, width, height (range 0 to 1) axes.plot(x, y, 'r') axes.set_xlabel('time (winters)') axes.set_ylabel(strength) axes.set_title('Jet '+strength+' wrt time'); fig.savefig(king_gra+'jet_'+strength+'_wrt_time') if two_hist == True: if select == False: from open import open_pkl database = open_pkl(king_dat,'era40.year'+str(start)+'-'+str(end)+'.month11-15.jsi.JI_001.'+str(sea)+'.pkl') sdata = database[str(database['info']['name'])] sdata.shape = sdata.shape[-1] database = open_pkl(king_dat,'era40.year'+str(start)+'-'+str(end)+'.month11-15.jli.JI_001.'+str(sea)+'.pkl') ldata = database[str(database['info']['name'])] ldata.shape = ldata.shape[-1] elif compress == False: sdata = jet(strength='jsi',mnmx=SC) ldata = jet(strength='jli',mnmx=SC) else: sdata = jet(strength='jsi',compress=True) ldata = jet(strength='jli',compress=True) from matplotlib.colors import LogNorm fig = plt.figure() # plt.subplots # plt.scatter(ldata,sdata) plt.hist2d(ldata,sdata, bins=40, cmap='Greens', norm=LogNorm()) ax = plt.gca() ax.set_xlabel('jli') ax.set_ylabel('jsi') plt.title("Jet jsi v jli for "+SC) plt.colorbar() # plt.xlim(-15, 15) # plt.ylim(-15, 15) plt.show() fig.savefig(king_gra+'jet_jsi_v_jli_'+SC) if hist == True: # plot a histogram of values based on high/low solar max = np.array(years()['SCmax'])-start min = np.array(years()['SCmin'])-start # years() # # print years # print data[yrs] # print np.mean(data[yrs]),np.mean(data[max]),np.mean(data[min]) plt.subplots() plt.hist(data[all_yrs],20) plt.subplots() plt.hist(data[max],20) plt.subplots() plt.hist(data[min],20) #try a ttest for the means if sig == True: import sig_test data.shape = (data.shape[-1],1,1) print sig_test.ttest(data,data[min],tcrit=1.34)[0][0]