cfg.BASENAMES['synthetic_experiment'] = ('synthetic_experiment.pkl', _doc) # We use intersects db = utils.get_rgi_intersects_region_file(version='61', region=REGION) cfg.set_intersects_db(db) # RGI file path = utils.get_rgi_region_file(REGION, version='61') rgidf = gpd.read_file(path) rgidf = rgidf.sort_values('Area', ascending=False) # exclude non-landterminating glaciers rgidf = rgidf[rgidf.TermType == 0] rgidf = rgidf[rgidf.Connect != 2] wgms = utils.get_ref_mb_glaciers_candidates() # Keep only the wgms reference glaciers rgidf = rgidf.loc[rgidf.RGIId.isin(wgms)] # initialize glaciers #gdirs = workflow.init_glacier_regions(rgidf) t_0 = 1917 epsilon = 125 exp_df = pd.DataFrame() ''' for gdir in gdirs: df = pd.DataFrame() try:
def configure(workdir, glclist, baselineclimate='HISTALP', resetwd=False): global MERGEDICT global GLCDICT global ADDITIONAL_REFERENCE_GLACIERS # Initialize OGGM cfg.initialize() cfg.PATHS['working_dir'] = workdir # Local working directory (where OGGM will write its output) utils.mkdir(workdir, reset=resetwd) # Use multiprocessing? cfg.PARAMS['use_multiprocessing'] = True # Set to True for operational runs cfg.PARAMS['continue_on_error'] = False # We use intersects cfg.PARAMS['use_intersects'] = True rgif = utils.get_rgi_intersects_region_file('11', version='60') cfg.set_intersects_db(rgif) cfg.PARAMS['use_rgi_area'] = True # set negative flux filtering to false. should be standard soon cfg.PARAMS['filter_for_neg_flux'] = False cfg.PARAMS['correct_for_neg_flux'] = True # here in relic we want to run the mb calibration every time cfg.PARAMS['run_mb_calibration'] = True # glacier length cfg.PARAMS['min_ice_thick_for_length'] = 1.0 cfg.PARAMS['glacier_length_method'] = 'consecutive' # check if we want to merge a glacier mglclist = [] for glc in glclist: mglc = merge_pair_dict(glc) if mglc is not None: mglclist += mglc[0] # How many grid points around the glacier? # Make it large if you expect your glaciers to grow large cfg.PARAMS['border'] = 160 gdirs = workflow.init_glacier_regions(glclist + mglclist, from_prepro_level=3) # and we want to use all glaciers for the MB calibration refids = get_ref_mb_glaciers_candidates() # right now we only do Alpine glaciers refids = [rid for rid in refids if '-11.' in rid] # but do leave out the actual glaciers refids = [rid for rid in refids if rid not in glclist + mglclist] # I SAID ALPS, NOT PYRENEES refids.remove('RGI60-11.03232') refids.remove('RGI60-11.03209') refids.remove('RGI60-11.03241') # initialize the reference glaciers with a small border ref_gdirs = workflow.init_glacier_regions(rgidf=refids, from_prepro_level=3, prepro_border=10) # save these ids for later ADDITIONAL_REFERENCE_GLACIERS = refids # climate if baselineclimate == 'CRU': cfg.PARAMS['prcp_scaling_factor'] = 2.5 cfg.PARAMS['temp_melt'] = -1.0 if baselineclimate == 'HISTALP': cfg.PARAMS['baseline_climate'] = baselineclimate # and set standard histalp values cfg.PARAMS['prcp_scaling_factor'] = 1.75 cfg.PARAMS['temp_melt'] = -1.75 # run histalp climate on all glaciers! execute_entity_task(tasks.process_histalp_data, gdirs + ref_gdirs, y0=1849) # TODO: if I do use custom climate stuff like histalp_annual_mean: # ->>>> look back at commits before 1.10.2019 return gdirs