def saveNodesSHP(self, targetPath, isFake=False): "Save nodes to a shapefile" geometry_store.save( store.replaceFileExtension(targetPath, "shp"), self.getProj4(), [shapely.geometry.asShape(node) for node in self.cycleNodes(isFake)], )
def saveSubnetsSHP(self, targetPath): 'Save subnets to a shapefile' # If there are no subnets, if not self.countSubnets(): return # Save geometry_store.save(store.replaceFileExtension(targetPath, 'shp'), self.getProj4(), [shapely.geometry.asShape(x) for x in self.cycleSubnets()])
def saveNodesSHP(self, targetPath, isFake=False): 'Save nodes to a shapefile' geometry_store.save(store.replaceFileExtension(targetPath, 'shp'), self.getProj4(), [ shapely.geometry.asShape(node) for node in self.cycleNodes(isFake) ])
def saveSubnetsSHP(self, targetPath): 'Save subnets to a shapefile' # If there are no subnets, if not self.countSubnets(): return # Save geometry_store.save( store.replaceFileExtension(targetPath, 'shp'), self.getProj4(), [shapely.geometry.asShape(x) for x in self.cycleSubnets()])
def saveSegmentsSHP(self, targetPath, is_existing=None): # If there are no segments, if not self.countSegments(is_existing): return # Save return geometry_store.save( store.replaceFileExtension(targetPath, "shp"), self.getProj4(), [shapely.geometry.asShape(x) for x in self.cycleSegments(is_existing)], )
def saveSegmentsSHP(self, targetPath, is_existing=None): # If there are no segments, if not self.countSegments(is_existing): return # Save return geometry_store.save( store.replaceFileExtension(targetPath, 'shp'), self.getProj4(), [ shapely.geometry.asShape(x) for x in self.cycleSegments(is_existing) ])
def test(self): 'Run tests' print 'Save and load a SHP file without attributes' path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries) result = geometry_store.load(path) result_proj = result[0].strip() # In some environments, proj seems to drop the ellps param which seems redundant anyway # self.assertEqual(result[0].strip(), geometry_store.proj4LL) self.assertTrue ( result_proj == geometry_store.proj4LL or result_proj == geometry_store.proj4LL.replace("+ellps=WGS84 ", "") ) self.assertEqual(len(result[1]), len(shapelyGeometries)) print 'Save and load a SHP file with attributes' path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, fieldPacks, fieldDefinitions) result = geometry_store.load(path) self.assertEqual(len(result[2]), len(fieldPacks)) for shapelyGeometry, fieldPack in itertools.izip(result[1], result[2]): print for fieldValue, (fieldName, fieldType) in itertools.izip(fieldPack, result[3]): print '%s = %s' % (fieldName, fieldValue) print shapelyGeometry print 'Save a SHP file with attributes with different targetProj4' path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, fieldPacks, fieldDefinitions, targetProj4=geometry_store.proj4SM) result = geometry_store.load(path) self.assertNotEqual(result[0].strip(), geometry_store.proj4LL) print 'Load a SHP file with attributes with different targetProj4' path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, fieldPacks, fieldDefinitions) result = geometry_store.load(path, targetProj4=geometry_store.proj4SM) self.assertNotEqual(result[0].strip(), geometry_store.proj4LL) print 'Save and load a ZIP file without attributes using save' path = self.getPath('.shp.zip') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries) result = geometry_store.load(path) result_proj = result[0].strip() self.assertTrue ( result_proj == geometry_store.proj4LL or result_proj == geometry_store.proj4LL.replace("+ellps=WGS84 ", "") ) self.assertEqual(len(result[1]), len(shapelyGeometries)) print 'Save and load a ZIP file with attributes using save' path = self.getPath('.shp.zip') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, fieldPacks, fieldDefinitions) result = geometry_store.load(path) self.assertEqual(len(result[2]), len(fieldPacks)) print 'Test saving and loading ZIP files of point coordinates' path = self.getPath('.shp.zip') geometry_store.save_points(path, geometry_store.proj4LL, [(0, 0)], fieldPacks, fieldDefinitions) result = geometry_store.load_points(path) self.assertEqual(result[1], [(0, 0)]) print 'Test get_transform_point' transform_point0 = geometry_store.get_transform_point(geometry_store.proj4LL, geometry_store.proj4LL) transform_point1 = geometry_store.get_transform_point(geometry_store.proj4LL, geometry_store.proj4SM) self.assertNotEqual(transform_point0(0, 0), transform_point1(0, 0)) print 'Test get_transform_geometry' transform_geometry = geometry_store.get_transform_geometry(geometry_store.proj4LL, geometry_store.proj4SM) self.assertEqual(type(transform_geometry(geometry.Point(0, 0))), type(geometry.Point(0, 0))) self.assertEqual(type(transform_geometry(ogr.CreateGeometryFromWkt('POINT (0 0)'))), type(ogr.CreateGeometryFromWkt('POINT (0 0)'))) print 'Test get_coordinateTransformation' geometry_store.get_coordinateTransformation(geometry_store.proj4LL, geometry_store.proj4SM) print 'Test get_spatialReference' geometry_store.get_spatialReference(geometry_store.proj4LL) with self.assertRaises(geometry_store.GeometryError): geometry_store.get_spatialReference('') print 'Test get_geometryType' geometry_store.get_geometryType(shapelyGeometries) print 'Test save() when a fieldPack has fewer fields than definitions' with self.assertRaises(geometry_store.GeometryError): path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, [x[1:] for x in fieldPacks], fieldDefinitions) print 'Test save() when a fieldPack has more fields than definitions' with self.assertRaises(geometry_store.GeometryError): path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, [x * 2 for x in fieldPacks], fieldDefinitions) print 'Test save() when the driverName is unrecognized' with self.assertRaises(geometry_store.GeometryError): path = self.getPath('.shp') geometry_store.save(path, geometry_store.proj4LL, shapelyGeometries, driverName='') print 'Test load() when format is unrecognized' with self.assertRaises(geometry_store.GeometryError): path = self.getPath('') geometry_store.load(path)