def test_attribute_flags(self): attr_flags = ['none','all'] for attr_flag in attr_flags: ## make temporary directory path = get_temp_path(only_dir=True,nest=True) try: ## the shapefile key to use key = 'state_boundaries' ## get path to shapefile and copy directory to temporary location sc = ShpCabinet() origin = os.path.split(sc.get_shp_path(key))[0] shutil.copytree(origin,os.path.join(path,key)) ## remove original config file os.remove(os.path.join(path,key,key+'.cfg')) ## write config file config = ConfigParser.ConfigParser() config.add_section('mapping') config.set('mapping','ugid','none') config.set('mapping','attributes',attr_flag) with open(os.path.join(path,key,key+'.cfg'),'w') as f: config.write(f) ## load data sc = ShpCabinet(path) geoms = sc.get_geoms(key) for geom in geoms: if attr_flag == 'none': self.assertEqual(set(['ugid','geom']),set(geom.keys())) else: self.assertEqual(set(['ugid', 'state_name', 'state_fips', 'geom', 'state_abbr', 'id']), set(geom.keys())) finally: shutil.rmtree(path)
def test_unwrap(self): sc = ShpCabinet() _key = ['state_boundaries','world_countries'] for key in _key: geoms = sc.get_geoms(key,unwrap=True) for geom in geoms: x = geom['geom'].centroid.x self.assertTrue(x > 0)
def test_unwrap_pm(self): _pm = [-4.0,-10.0,-20.0,5.0] sc = ShpCabinet() for pm in _pm: geoms = sc.get_geoms('world_countries',unwrap=True,pm=pm) path = '/tmp/shp{0}.shp'.format(time.time()) sc.write(geoms,path) for geom in geoms: bounds = geom['geom'].bounds self.assertTrue(bounds[0] >= pm)
def test_shp_process(self): test_path = '/home/local/WX/ben.koziol/Dropbox/nesii/project/ocg/bin/test_data/test_shp_process' copy_path = os.path.join(self._test_dir, 'test_shp_process') shutil.copytree(test_path, copy_path) shp_path = os.path.join(copy_path, 'wc.shp') sp = ShpProcess(shp_path) out_folder = tempfile.mkdtemp(dir=self._test_dir) sp.process(out_folder, 'world_countries', ugid=None) sc = ShpCabinet(path=out_folder) select_ugid = [33, 126, 199] geoms = sc.get_geoms('world_countries', select_ugid=select_ugid) self.assertEqual(len(geoms), 3) names = [item['NAME'] for item in geoms] self.assertEqual(set(names), set(['Canada', 'Mexico', 'United States']))
def test_load_all(self): sc = ShpCabinet() for key in sc.keys(): geoms = sc.get_geoms(key) self.assertTrue(len(geoms) > 2)
def test_huc_loading(self): raise(SkipTest('tests loading time for HUC data')) sc = ShpCabinet() geoms = sc.get_geoms('WBDHU12_June2013',select_ugid=[2221,5000]) self.assertEqual(len(geoms),2) self.assertEqual(geoms[0]['UGID'],2221)
def test_load_all(self): raise(SkipTest('too long for no benefit')) sc = ShpCabinet() for key in sc.keys(): geoms = sc.get_geoms(key) self.assertTrue(len(geoms) > 2)
def test_huc_loading(self): raise (SkipTest('tests loading time for HUC data')) sc = ShpCabinet() geoms = sc.get_geoms('WBDHU12_June2013', select_ugid=[2221, 5000]) self.assertEqual(len(geoms), 2) self.assertEqual(geoms[0]['UGID'], 2221)
def test_load_all(self): raise (SkipTest('too long for no benefit')) sc = ShpCabinet() for key in sc.keys(): geoms = sc.get_geoms(key) self.assertTrue(len(geoms) > 2)