def run_minor_crossvalidation(): # Initialize OGGM and set up the run parameters # initialization, select region if wanted and return GDIRs gdirs = initialization_selection() # some preprocessing gdirs = preprocessing(gdirs) # ----- cross validation loop # dataframe to store results xval = pd.DataFrame([], columns=['prcpsf', 'tliq', 'tmelt', 'tgrad', 'std_quot', 'bias', 'rmse', 'core', 'std_oggm', 'std_ref', 'nans']) xval = calibration(gdirs, xval, major=0) xval_perglacier, mb_perglacier = minor_xval_statistics(gdirs) outdict = {'statistic': xval, 'per_glacier': xval_perglacier, 'massbalance': mb_perglacier, 'date_created': datetime.datetime.now().strftime('%Y-%m-%d'), 'oggmversion': mbcfg.PARAMS['oggmversion']} pout = os.path.join(mbcfg.PATHS['storage_dir'], 'xval_%s_minor.p' % mbcfg.PARAMS['oggmversion']) pickle.dump(outdict, open(pout, 'wb'))
def run_major_crossvalidation(): # Initialize OGGM and set up the run parameters if mbcfg.PARAMS['histalp']: histalp() # initialization, select region if wanted and return GDIRs gdirs = initialization_selection() # some preprocessing gdirs = preprocessing(gdirs) # ----- cross validation loop # dataframe to store results xval = pd.DataFrame([], columns=[ 'prcpsf', 'tliq', 'tmelt', 'tgrad', 'std_quot', 'bias', 'rmse', 'core' ]) # define each parameter range prcpsf = np.arange(mbcfg.PARAMS['prcp1'], mbcfg.PARAMS['prcp2'] + mbcfg.PARAMS['prcp_step'], mbcfg.PARAMS['prcp_step']) tliq = np.arange(mbcfg.PARAMS['tliq1'], mbcfg.PARAMS['tliq2'] + mbcfg.PARAMS['tliq_step'], mbcfg.PARAMS['tliq_step']) tmelt = np.arange(mbcfg.PARAMS['tmel1'], mbcfg.PARAMS['tmel2'] + mbcfg.PARAMS['tmel_step'], mbcfg.PARAMS['tmel_step']) tgrad = np.arange(mbcfg.PARAMS['tgra1'], mbcfg.PARAMS['tgra2'] + mbcfg.PARAMS['tgra_step'], mbcfg.PARAMS['tgra_step']) # loop over all for PR in prcpsf: cfg.PARAMS['prcp_scaling_factor'] = PR for TL in tliq: cfg.PARAMS['temp_all_liq'] = TL for TM in tmelt: cfg.PARAMS['temp_melt'] = TM for TG in tgrad: cfg.PARAMS['temp_default_gradient'] = TG # execute calibraion and crossvalidation log.info('prcpSF={}, Tliq={}, Tmelt={}, Tgrad={}'.format( PR, TL, TM, TG)) xval = calibration(gdirs, xval, major=1) outdict = { 'statistic': xval, 'date_created': datetime.datetime.now().strftime('%Y-%m-%d'), 'oggmversion': mbcfg.PARAMS['oggmversion'] } pout = os.path.join(mbcfg.PATHS['storage_dir'], 'xval_%s_major.p' % mbcfg.PARAMS['oggmversion']) pickle.dump(outdict, open(pout, 'wb'))