def test_make_directories_on_existing(self): """utils: test that no error if directory already exists.""" from natcap.invest import utils path = os.path.join(self.workspace_dir, 'foo', 'bar', 'baz') os.makedirs(path) utils.make_directories([path]) self.assertTrue(os.path.isdir(path))
def test_make_directories(self): """utils: test that make directories works as expected.""" from natcap.invest import utils directory_list = [ os.path.join(self.workspace_dir, x) for x in [ 'apple', 'apple/pie', 'foo/bar/baz']] utils.make_directories(directory_list) for path in directory_list: self.assertTrue(os.path.isdir(path))
def test_make_directories_on_file(self): """utils: test that value error raised if file exists on directory.""" from natcap.invest import utils dir_path = os.path.join(self.workspace_dir, 'foo', 'bar') os.makedirs(dir_path) file_path = os.path.join(dir_path, 'baz') file = open(file_path, 'w') file.close() with self.assertRaises(OSError): utils.make_directories([file_path])
def _get_args(workspace, num_transitions=2, valuation=True): """Create and return arguments for CBC main model. Parameters: workspace(string): A path to a folder on disk. Generated inputs will be saved to this directory. num_transitions=2 (int): The number of transitions to synthesize. valuation=True (bool): Whether to include parameters related to valuation in the args dict. Returns: args (dict): main model arguments. """ band_matrices = [numpy.ones((2, 2))] band_matrices_two = [numpy.ones((2, 2)) * 2] band_matrices_with_nodata = [numpy.ones((2, 2))] band_matrices_with_nodata[0][0][0] = NODATA_INT srs = pygeotest.sampledata.SRS_WILLAMETTE lulc_lookup_uri = _create_table( os.path.join(workspace, 'lulc_lookup.csv'), lulc_lookup_list) lulc_transition_matrix_uri = _create_table( os.path.join(workspace, 'lulc_transition_matrix.csv'), lulc_transition_matrix_list) carbon_pool_initial_uri = _create_table( os.path.join(workspace, 'carbon_pool_initial.csv'), carbon_pool_initial_list) carbon_pool_transient_uri = _create_table( os.path.join(workspace, 'carbon_pool_transient.csv'), carbon_pool_transient_list) raster_0_uri = pygeotest.create_raster_on_disk( band_matrices, srs.origin, srs.projection, NODATA_INT, srs.pixel_size(100), datatype=gdal.GDT_Int32, filename=os.path.join(workspace, 'raster_0.tif')) raster_1_uri = pygeotest.create_raster_on_disk( band_matrices_with_nodata, srs.origin, srs.projection, NODATA_INT, srs.pixel_size(100), datatype=gdal.GDT_Int32, filename=os.path.join(workspace, 'raster_1.tif')) raster_2_uri = pygeotest.create_raster_on_disk( band_matrices_two, srs.origin, srs.projection, NODATA_INT, srs.pixel_size(100), datatype=gdal.GDT_Int32, filename=os.path.join(workspace, 'raster_2.tif')) possible_transitions = [raster_1_uri, raster_2_uri] possible_transition_years = [2000, 2005] args = { 'workspace_dir': os.path.join(workspace, 'workspace'), 'results_suffix': 'test', 'lulc_lookup_uri': lulc_lookup_uri, 'lulc_transition_matrix_uri': lulc_transition_matrix_uri, 'lulc_baseline_map_uri': raster_0_uri, 'lulc_baseline_year': 1995, 'lulc_transition_maps_list': possible_transitions[:num_transitions+1], 'lulc_transition_years_list': possible_transition_years[:num_transitions+1], 'analysis_year': 2010, 'carbon_pool_initial_uri': carbon_pool_initial_uri, 'carbon_pool_transient_uri': carbon_pool_transient_uri, 'do_economic_analysis': False, } utils.make_directories([args['workspace_dir']]) if valuation: args.update({ 'do_economic_analysis': True, 'do_price_table': False, 'price': 2., 'inflation_rate': 5., 'price_table_uri': None, 'discount_rate': 2. }) return args
def test_make_directories_wrong_type(self): """utils: test that ValueError raised if value not a list.""" from natcap.invest import utils with self.assertRaises(ValueError): utils.make_directories(self.workspace_dir)