def test_rgi_intersects(self): # Make a fake RGI file rgi_dir = os.path.join(self.dldir, 'rgi50') utils.mkdir(rgi_dir) make_fake_zipdir(os.path.join(rgi_dir, 'RGI_V5_Intersects'), fakefile='Intersects_OGGM_Manifest.txt') make_fake_zipdir(os.path.join(rgi_dir, 'RGI_V5_Intersects', '11_rgi50_CentralEurope'), fakefile='intersects_11_rgi50_CentralEurope.shp') make_fake_zipdir(os.path.join(rgi_dir, 'RGI_V5_Intersects', '00_rgi50_AllRegs'), fakefile='intersects_rgi50_AllRegs.shp') rgi_f = make_fake_zipdir(rgi_dir) def down_check(url, cache_name=None, reset=False): expected = ('https://cluster.klima.uni-bremen.de/~fmaussion/rgi/' + 'RGI_V5_Intersects.zip') self.assertEqual(url, expected) return rgi_f with FakeDownloadManager('_progress_urlretrieve', down_check): rgi = utils.get_rgi_intersects_dir() utils.get_rgi_intersects_region_file('11', version='5') utils.get_rgi_intersects_region_file('00', version='5') assert os.path.isdir(rgi) assert os.path.exists(os.path.join(rgi, 'Intersects_OGGM_Manifest.txt')) # Make a fake RGI file rgi_dir = os.path.join(self.dldir, 'rgi60') utils.mkdir(rgi_dir) make_fake_zipdir(os.path.join(rgi_dir, 'RGI_V6_Intersects'), fakefile='Intersects_OGGM_Manifest.txt') rgi_f = make_fake_zipdir(rgi_dir) def down_check(url, cache_name=None, reset=False): expected = ('https://cluster.klima.uni-bremen.de/~fmaussion/rgi/' + 'RGI_V6_Intersects.zip') self.assertEqual(url, expected) return rgi_f with FakeDownloadManager('_progress_urlretrieve', down_check): rgi = utils.get_rgi_intersects_dir(version='6') assert os.path.isdir(rgi) assert os.path.exists(os.path.join(rgi, 'Intersects_OGGM_Manifest.txt'))
def test_download_rgi_intersects(self): tmp = cfg.PATHS['rgi_dir'] cfg.PATHS['rgi_dir'] = os.path.join(self.dldir, 'rgi_extract') of = utils.get_rgi_intersects_dir() of = os.path.join(of, '01_rgi50_Alaska', 'intersects_01_rgi50_Alaska.shp') self.assertTrue(os.path.exists(of)) cfg.PATHS['rgi_dir'] = tmp
def test_rgi_intersects(self): # Make a fake RGI file rgi_dir = os.path.join(self.dldir, 'rgi50') utils.mkdir(rgi_dir) make_fake_zipdir(os.path.join(rgi_dir, 'RGI_V5_Intersects'), fakefile='Intersects_OGGM_Manifest.txt') rgi_f = make_fake_zipdir(rgi_dir) def down_check(url, cache_name=None, reset=False): expected = ('https://www.dropbox.com/s/y73sdxygdiq7whv/' + 'RGI_V5_Intersects.zip?dl=1') self.assertEqual(url, expected) return rgi_f with FakeDownloadManager('_progress_urlretrieve', down_check): rgi = utils.get_rgi_intersects_dir() assert os.path.isdir(rgi) assert os.path.exists(os.path.join(rgi, 'Intersects_OGGM_Manifest.txt')) # Make a fake RGI file rgi_dir = os.path.join(self.dldir, 'rgi60') utils.mkdir(rgi_dir) make_fake_zipdir(os.path.join(rgi_dir, 'RGI_V6_Intersects'), fakefile='Intersects_OGGM_Manifest.txt') rgi_f = make_fake_zipdir(rgi_dir) def down_check(url, cache_name=None, reset=False): expected = ('https://www.dropbox.com/s/vawryxl8lkzxowu/' + 'RGI_V6_Intersects.zip?dl=1') self.assertEqual(url, expected) return rgi_f with FakeDownloadManager('_progress_urlretrieve', down_check): rgi = utils.get_rgi_intersects_dir(version='6') assert os.path.isdir(rgi) assert os.path.exists(os.path.join(rgi, 'Intersects_OGGM_Manifest.txt'))
# How many grid points around the glacier? # Make it large if you expect your glaciers to grow large cfg.PARAMS['border'] = 80 cfg.PARAMS['optimize_inversion_params'] = True # Set to True for cluster runs if Cluster: cfg.PARAMS['use_multiprocessing'] = True cfg.PARAMS['continue_on_error'] = True else: cfg.PARAMS['use_multiprocessing'] = False cfg.PARAMS['continue_on_error'] = False # We use intersects # (this is slow, it could be replaced with a subset of the global file) rgi_dir = utils.get_rgi_intersects_dir() cfg.set_intersects_db(os.path.join(rgi_dir, '00_rgi50_AllRegs', 'intersects_rgi50_AllRegs.shp')) # Pre-download other files which will be needed later utils.get_cru_cl_file() utils.get_cru_file(var='tmp') utils.get_cru_file(var='pre') # Some globals for more control on what to run RUN_GIS_mask = False RUN_GIS_PREPRO = False # run GIS pre-processing tasks (before climate) RUN_CLIMATE_PREPRO = False # run climate pre-processing tasks RUN_INVERSION = False # run bed inversion # Read RGI file
cfg.PATHS['working_dir'] = WORKING_DIR # Use multiprocessing? cfg.PARAMS['use_multiprocessing'] = True # Here we override some of the default parameters # How many grid points around the glacier? # Make it large if you expect your glaciers to grow large cfg.PARAMS['border'] = 100 # Set to True for operational runs cfg.PARAMS['continue_on_error'] = False # We use intersects # (this is slow, it could be replaced with a subset of the global file) rgi_dir = utils.get_rgi_intersects_dir(version='5') cfg.set_intersects_db( path.join(rgi_dir, '00_rgi50_AllRegs', 'intersects_rgi50_AllRegs.shp')) # Pre-download other files which will be needed later utils.get_cru_cl_file() utils.get_cru_file(var='tmp') utils.get_cru_file(var='pre') # Download the RGI file for the run # We us a set of four glaciers here but this could be an entire RGI region, # or any glacier list you'd like to model dl = 'https://www.dropbox.com/s/6cwi7b4q4zqgh4a/RGI_example_glaciers.zip?dl=1' with zipfile.ZipFile(utils.file_downloader(dl)) as zf: zf.extractall(WORKING_DIR) rgidf = salem.read_shapefile(