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
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
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