コード例 #1
0
ファイル: cmip5tools.py プロジェクト: kokorev/altcli
	def loadRegionMeanData(self,fn):
		cdo=cliData.load(fn)
		reg,mod=cdo.meta['region'], cdo.meta['model']
		if reg not in self.regionsAvg: self.regionsAvg[reg]=dict()
		try:
			self.regionsAvg[reg][mod]=cdo
		except KeyError:
			print 'cliData object should have "region" and "model" keys in the meta dictionary'
			raise
		else:
			self.models[mod]=None
			self.results[mod]=dict()
		pass
コード例 #2
0
ファイル: cmip5tools.py プロジェクト: kokorev/altcli
	def getObsRegionMean(self, reg):
		"""

		:param reg:
		:return: :raise AttributeError:
		"""
		try:
			cdo = self.obsMeanData[reg]
		except KeyError:
			fn=self.getObsDataSrc(reg)
			try:
				cdo=cliData.load(fn,results=True)
				self.obsMeanData[reg] = cdo
			except IOError:
				if self.obsDataSet is None: raise AttributeError, "please set observation data source"
				cdo = self.calcObsRegMean(reg)
		return cdo
コード例 #3
0
ファイル: cmip5tools.py プロジェクト: kokorev/altcli
	def getModelRegionMean(self, reg, mod):
		"""
		Получает среднерегиональный ряд для конкретной модели.
		Проверяет нет ли нужного объекта в словаре или в файле, если нет, то рассчитывает
		:param reg: region name
		:param mod: model ID
		:return: cliData object
		"""
		try:
			cdo = self.regionMeanData[reg][mod]
		except KeyError:
			fn=self.getModelDataSrc(reg,mod)
			try:
				cdo=cliData.load(fn,results=True)
				self.regionMeanData[reg][mod] = cdo
			except IOError:
				cdo = self.calcRegionalMean(reg, mod)
			except ValueError:
				cdo=None
		return cdo