示例#1
0
	def save_Data_of_Climatology_as_npz(self, Data_of_Clim, fy, ly, product_n):
		"""
		Data_of_Climの作成は、以下のような感じで。
		Data_of_Clim = np.zeros((ygrid.size, xgrid.size, 12))
		for month in range(1, 13):
			# SGT of Ave
			t = CI.load_climatology_or_interannual_variation_as_npz(fy, ly, month, 't', 'Ave', product_n = product_n)
			s = CI.load_climatology_or_interannual_variation_as_npz(fy, ly, month, 's', 'Ave', product_n = product_n)
			Data_of_Clim[:, :, month - 1] = make_density_product_from_ts(t, s, product_n = product_n, data_type = 1)
		"""
		import D
		import subroutine
		title_name = D.Data[product_n].title_name
		year = 2000
		DIR = subroutine.NAS_dir() + 'DATA/' + title_name + '/npz/' + self.dir_name + '/'
		subroutine.check_and_make_DIR(DIR)

		for month in range(1, 13):
			_, strmonth = subroutine.strym(year, month)
			fname = self.fname + '_of_Climatology_Year' + \
					str(fy) + '-' + str(ly) + \
					'_Month' + strmonth + '_' + title_name
			if self.dimension == 2:
				subroutine.save_npz(Data_of_Clim[:, :, month - 1], DIR + fname, data_dir_flg = 'NO')
			elif self.dimension == 3:
				subroutine.save_npz(Data_of_Clim[:, :, :, month - 1], DIR + fname, data_dir_flg = 'NO')
			else:
				raise ValueError('your dimension is not valid!')
def save_Anomaly_as_npz(fy, ly, var, product_n = 3):
	a = subroutine.read_meta_data('var')
	formal_name = subroutine.celldata(a, 'var', var, 'formal_name')
	dim = subroutine.celldata(a, 'var', var, 'dim')
	_,title_name,_=subroutine.product_n_to_name(product_n)
	tmpyear = 2000

	for month in range(1,13):
		_,strmonth=subroutine.strym(2000,month)
		Clim=subroutine.load_npz('Ave_of_' + formal_name + '_m'+strmonth+'_' + str(fy) + '-' + str(ly) + '_'+title_name)

		print 'month = ', month
		start = time.time()

		for year in range(fy,ly+1):
			stryear,strmonth=subroutine.strym(year,month)
			j=year-fy
			if dim == '3D':
				data=subroutine.get_data(year,month,var,0,title_name)
			elif dim == '2D':
				data=subroutine.get_data(year,month,var,1,title_name)
			else:
				raise Exception('your dim is not valid!')

			Anomaly=data-Clim
			DIR = subroutine.get_DIR(year, month, formal_name, product_n)
			subroutine.check_and_make_DIR(DIR)
			subroutine.save_npz(Anomaly,DIR+'Anomaly_from_Mean_Annual_Cycle_Year'+str(fy)+'-'+str(ly),data_dir_flg='NO')

		print 'elapsed time:', time.time() - start
def save_climatology_or_interannual_variation_as_npz(data_allmonth, fy, ly, var, Ave_or_Std, product_n = 3):
	a=subroutine.read_meta_data('var')
	formal_name = subroutine.celldata(a, 'var', var, 'formal_name')
	_, title_name, _ = subroutine.product_n_to_name(product_n)
	for month in range(1, 13):
		_, strmonth = subroutine.strym(2000, month)
		subroutine.save_npz(data_allmonth[:, :, :, month - 1], Ave_or_Std + '_of_' + \
							formal_name + '_m' + strmonth + '_' + str(fy) + '-' + str(ly) + \
							'_' + title_name)
示例#4
0
	def save_Vertical_section_of_data_as_npz(self, year, month, data, dname, fname, var, product_n):
		# 色んなデータの鉛直断面を保存することになるだろう。
		# だから、dname,fnameは自分で設定できるようにしておく。
		# dnameはD2.D2Data[~].dir_name、
		# fnameはD2.D2Data[~].fnameが望ましいかと。
		import subroutine
		Data, _, _ = self.Get_VerticalSection_from_data(data, var, product_n)
		DIR = subroutine.get_DIR(year, month, dname, product_n)
		subroutine.check_and_make_DIR(DIR)
		subroutine.save_npz(Data, DIR + fname + '_VerticalSection_of_' + self.AreaName, data_dir_flg = 'NO')
示例#5
0
	def save_data_as_npz(self, Timeseries, fy, ly, var, depth = 1, product_n = 3):
		import D
		import Var
		import subroutine
		vid = Var.var_to_id(var)
		formal_name = Var.VAR[vid].Get_formal_name()
		title_name = D.Data[product_n].title_name
		xgrid, ygrid, zgrid = D.get_grid_value(var, product_n)
		subroutine.save_npz(Timeseries, self.AreaName + '_Area-Averaged-' + \
							formal_name + '_at_' + str(zgrid[depth - 1]) + \
							'm_Year' + str(fy) + '-' + str(ly) + '_' + title_name)
示例#6
0
	def save_data_as_npz(self, Timeseries, fy, ly, var = 's', depthn = 1, product_n = 3, Rawdata_or_Anomaly = 'Rawdata', fy_of_Anomalydata = 1990, ly_of_Anomalydata = 2011):
		import D
		import subroutine
		import Var
		title_name = D.Data[product_n].title_name
		xgrid, ygrid, zgrid = D.get_grid_value('s', product_n)
		vid = Var.var_to_id(var)
		formal_name = Var.VAR[vid].Get_formal_name()

		if Rawdata_or_Anomaly == 'Rawdata':
			fname_RA = formal_name
		elif Rawdata_or_Anomaly == 'Anomaly':
			fname_RA = '[Anomaly_of_' + formal_name + str(fy_of_Anomalydata) + '-' + str(ly_of_Anomalydata) + ']'
		else:
			raise ValueError('your Rawdata_or_Anomaly argument is not valid!')

		subroutine.save_npz(Timeseries, self.AreaName + '_of_' + fname_RA + '_at_' + str(zgrid[depthn - 1]) + \
							'm_Year' + str(fy) + '-' + str(ly) + '_' + title_name)
示例#7
0
	def save_Ave_or_Std_of_Data_as_npz(self, AvSt_of_Data, fy, ly, product_n, Ave_or_Std = 'Ave'):
		import D
		import subroutine
		title_name = D.Data[product_n].title_name
		year = 2000
		DIR = subroutine.NAS_dir() + 'DATA/' + title_name + '/npz/' + self.dir_name + '/'
		subroutine.check_and_make_DIR(DIR)

		for month in range(1, 13):
			_, strmonth = subroutine.strym(year, month)
			fname = self.fname + '_of_Climatology_Year' + \
					str(fy) + '-' + str(ly) + \
					'_Month' + strmonth + '_' + title_name
			if self.dimension == 2:
				subroutine.save_npz(AvSt_of_Data[:, :, month - 1], DIR + fname, data_dir_flg = 'NO')
			elif self.dimension == 3:
				subroutine.save_npz(AvSt_of_Data[:, :, :, month - 1], DIR + fname, data_dir_flg = 'NO')
			else:
				raise ValueError('your dimension is not valid!')
示例#8
0
	def save_data_as_npz(self, year, month, data, product_n):
		import subroutine
		DIR = subroutine.get_DIR(year, month, self.dir_name, product_n)
		subroutine.check_and_make_DIR(DIR)
		subroutine.save_npz(data, DIR + self.fname, data_dir_flg = 'NO')
示例#9
0
	def save_Area_Trimmed_data_as_npz(self, data, year, month, dname, fname, product_n):
		import subroutine
		DIR = subroutine.get_DIR(year, month, dname, product_n)
		subroutine.check_and_make_DIR(DIR)
		subroutine.save_npz(data, DIR + fname + '_trimmed_at_' + self.AreaName, data_dir_flg = 'NO')
示例#10
0
	def save_UV_of_VerticalSection_as_npz(self, year, month, Data, product_n):
		import subroutine
		DIR = subroutine.get_DIR(year, month, 'Current', product_n)
		subroutine.check_and_make_DIR(DIR)
		subroutine.save_npz(Data, DIR + 'UV_of_VerticalSection_of_' + self.AreaName, data_dir_flg = 'NO')
示例#11
0
 def save(self, Xt, Xo):
     subroutine.save_npz(Xt, 'True' + self.fname)
     subroutine.save_npz(Xo, 'Obs' + self.fname)