def loadEnsembleFit(lfit=True, dist=None, dist_args=None, reference=None, target=None, lglobalScale=False, lrescale=False, lflatten=True, sample_axis=None, lcrossval=False, ncv=0.2, lbootstrap=False, nbs=100, WRF_exps=None, CESM_exps=None, WRF_ens=None, CESM_ens=None, variable_list=None, load_list=None, lproduct='outer', lshort=True, datatype=None, **kwargs): ''' convenience function to load ensemble time-series data and compute associated distribution ensembles ''' if lrescale and not lfit: raise ArgumentError load_list = [] if load_list is None else load_list[:] # use a copy, since the list may be modified # load shape ensemble if datatype.lower() == 'shape': ensemble = loadShapeEnsemble(variable_list=variable_list, WRF_exps=WRF_exps, CESM_exps=CESM_exps, WRF_ens=WRF_ens, CESM_ens=CESM_ens, load_list=load_list, lproduct=lproduct, **kwargs) if datatype.lower() == 'station': ensemble = loadStationEnsemble(variable_list=variable_list, WRF_exps=WRF_exps, CESM_exps=CESM_exps, WRF_ens=WRF_ens, CESM_ens=CESM_ens, load_list=load_list, lproduct=lproduct, **kwargs) # N.B.: kwargs are first passed on to loadShapeEnsemble/loadStationEnsemble and then to loadEnsembleTS # generate matching datasets with fitted distributions fitens, sclens = addDistFit(ensemble=ensemble, lfit=lfit, dist=dist, dist_args=dist_args, lflatten=lflatten, lrescale=lrescale, reference=reference, target=target, lglobalScale=lglobalScale, lbootstrap=lbootstrap, nbs=nbs, lcrossval=lcrossval, ncv=ncv, sample_axis=sample_axis, load_list=load_list, lproduct=lproduct, **kwargs) # N.B.: kwargs are mainly needed to infer the expanded shape of the ensemble list # return ensembles (will be wrapped in a list, if BatchLoad is used) if lshort: if lfit and lrescale: return ensemble, fitens, sclens elif lfit: return ensemble, fitens else: return ensemble else: return ensemble, fitens, sclens
def loadStationEnsemble(variable_list=None, **kwargs): ''' wrapper for clim.load.loadStationEnsemble that sets experiment and variable lists ''' if variable_list is None: variable_list = variables_rc return clim_load.loadStationEnsemble(variable_list=variable_list, WRF_exps=WRF_exps, CESM_exps=CESM_exps, WRF_ens=WRF_ens, CESM_ens=CESM_ens, **kwargs)
def loadStationEnsemble(variable_list=None, **kwargs): """ wrapper for clim.load.loadStationEnsemble that sets experiment and variable lists """ if variable_list is None: variable_list = variables_rc return clim_load.loadStationEnsemble( variable_list=variable_list, WRF_exps=WRF_exps, CESM_exps=CESM_exps, WRF_ens=WRF_ens, CESM_ens=CESM_ens, **kwargs )
print fitens[0][0].MaxPrecip_1d.atts.sample_axis; print '' print fitens[0][1] if fitens is not None else fitens ; print '' print sclens[0] if sclens is not None else sclens ; print '' assert len(stnens) == len(seasons) print stnens[0][0] print stnens[0][1].MaxPrecip_1d.mean() elif test == 'rescaling': # some settings for tests exps = ['max-val','max-all']; exps = [exps_rc[exp].exps for exp in exps] provs = ('BC',); seasons = 'summer' lflatten = True; lfit = True # rescale stnens,fitens,scalens = loadStationEnsemble(names=exps, provs=provs, seasons=seasons, varlist='precip', lrescale=True, reference='Observations', target='max-ens', filetypes='hydro', domain=None, lfit=lfit, lflatten=lflatten, lbootstrap=False, nbs=10, variable_list=variables_rc, default_constraints=constraints_rc, WRF_exps=WRF_exps, CESM_exps=None, WRF_ens=ensembles, CESM_ens=None, load_list=['names'], lproduct='outer') # special rescaling for projection plots scalens = [rescaleDistributions(ens, reference=fitens[0]['Observations'], target='max-ens') for ens in fitens] # print diagnostics print fitens[0]; print '' print scalens[0]; print '' print scalens[1][1]
def loadStationEnsemble(variable_list=variables_rc, stationtype=default_stationtype, **kwargs): ''' wrapper for clim.load.loadStationEnsemble that sets experiment and variable lists ''' return clim_load.loadStationEnsemble(variable_list=variable_list, stationtype=stationtype, WRF_exps=WRF_exps, CESM_exps=CESM_exps, WRF_ens=WRF_ens, CESM_ens=CESM_ens, obs_ts='EC', **kwargs)
seasons = 'summer' lflatten = True lfit = True # rescale stnens, fitens, scalens = loadStationEnsemble( names=exps, provs=provs, seasons=seasons, varlist='precip', lrescale=True, reference='Observations', target='max-ens', filetypes='hydro', domain=None, lfit=lfit, lflatten=lflatten, lbootstrap=False, nbs=10, variable_list=variables_rc, default_constraints=constraints_rc, WRF_exps=WRF_exps, CESM_exps=None, WRF_ens=ensembles, CESM_ens=None, load_list=['names'], lproduct='outer') # special rescaling for projection plots scalens = [ rescaleDistributions(ens, reference=fitens[0]['Observations'],