Пример #1
0
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.
Пример #2
0
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]