def union(p1,p2): driver = ogr.GetDriverByName("ESRI Shapefile") #Open file 1 and get its layer and feature file1 = driver.Open(p1,0) if file1 is None: print "Could not open", file1 sys.exit(1) layer1 = file1.GetLayer(0) #get layer from file feat1 = layer1.GetNextFeature() #get feature from layer geom1 = feat1.GetGeometryRef() #get geometry from feature geomType = geom1.GetGeometryType() #get geometry type #Open file 2 and get its layer file2 = driver.Open(p2,0) if file2 is None: print "Could not open", file2 sys.exit(2) layer2 = file2.GetLayer(0) #get layer from file feat2 = layer2.GetNextFeature() #get feature from layer geomCollection = ogr.Geometry(type = ogr.wkbGeometryCollection) while feat1: geometry1 = feat1.GetGeometryRef() geomCollection.AddGeom(geometry1) feat1 = layer1.GetNextFeature() while feat2: geometry2 = feat2.GetGeometryRef() geomCollection.AddGeom(geometry2) feat2 = layer2.GetNextFeature()