From 6c1e9eb216e71f1a7553ba5a5ddc648dd3c62373 Mon Sep 17 00:00:00 2001 From: Fabien Maussion Date: Fri, 11 Jan 2019 21:08:22 +0100 Subject: [PATCH] from_prepro: also allow single strings (#664) --- oggm/tests/test_utils.py | 23 +++++++++++++++++------ oggm/utils/_funcs.py | 3 +++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/oggm/tests/test_utils.py b/oggm/tests/test_utils.py index 2edc9cbd0..853423f65 100644 --- a/oggm/tests/test_utils.py +++ b/oggm/tests/test_utils.py @@ -318,7 +318,7 @@ def setUp(self): self.rgidf = gpd.read_file(rgi_file) self.rgidf['RGIId'] = [rid.replace('RGI50', 'RGI60') for rid in self.rgidf.RGIId] - cfg.PARAMS['use_multiprocessing'] = True + cfg.PARAMS['use_multiprocessing'] = False cfg.PATHS['dem_file'] = utils.get_demo_file('srtm_oetztal.tif') cfg.PATHS['working_dir'] = self.testdir self.clean_dir() @@ -405,7 +405,7 @@ def test_to_and_from_tar_string(self): def test_start_from_level_1(self): # Go - initialize working directories - gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:4], + gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:2], from_prepro_level=1, prepro_rgi_version='61', prepro_border=160) @@ -419,7 +419,7 @@ def test_start_from_level_1(self): def test_start_from_level_1_str(self): # Go - initialize working directories - entitites = self.rgidf.iloc[:4].RGIId + entitites = self.rgidf.iloc[:2].RGIId cfg.PARAMS['border'] = 10 gdirs = workflow.init_glacier_regions(entitites, from_prepro_level=1) @@ -430,10 +430,21 @@ def test_start_from_level_1_str(self): assert n_intersects > 0 workflow.execute_entity_task(tasks.glacier_masks, gdirs) + # One string + cfg.PARAMS['border'] = 10 + gdirs = workflow.init_glacier_regions('RGI60-11.00897', + from_prepro_level=1) + n_intersects = 0 + for gdir in gdirs: + assert gdir.has_file('dem') + n_intersects += gdir.has_file('intersects') + assert n_intersects > 0 + workflow.execute_entity_task(tasks.glacier_masks, gdirs) + def test_start_from_level_2(self): # Go - initialize working directories - gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:4], + gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:2], from_prepro_level=2, prepro_rgi_version='61', prepro_border=160) @@ -448,7 +459,7 @@ def test_start_from_level_2(self): def test_start_from_level_3(self): # Go - initialize working directories - gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:4], + gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:2], from_prepro_level=3, prepro_rgi_version='61', prepro_border=160) @@ -463,7 +474,7 @@ def test_start_from_level_3(self): def test_start_from_level_4(self): # Go - initialize working directories - gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:4], + gdirs = workflow.init_glacier_regions(self.rgidf.iloc[:2], from_prepro_level=4, prepro_rgi_version='61', prepro_border=160) diff --git a/oggm/utils/_funcs.py b/oggm/utils/_funcs.py index 427719771..88db9999d 100644 --- a/oggm/utils/_funcs.py +++ b/oggm/utils/_funcs.py @@ -114,6 +114,9 @@ def query_yes_no(question, default="yes"): # pragma: no cover def tolist(arg, length=None): """Makes sure that arg is a list.""" + if isinstance(arg, str): + return [arg] + try: (e for e in arg) except TypeError: