""" University of Washington, Department of Geography Geography 465 Winter 2009 FROM SINGLE PART FEATURES TO MULTIPLE PART FEATURE Author: Michalis Avraam Provided with a single- or multipart feature class, return a multipart single feature feature class. """ import arcgisscripting gp = arcgisscripting.create(9.3) gp.workspace = r"S:\HomeDir\Desktop\geog465wi09\geog465\wi09\labAssignments\lab5data" inFC = "WAnamedIslands.shp" srcCur = gp.SearchCursor(inFC) srcDsc = gp.Describe(inFC) outFC = "composite5.shp" gp.CreateFeatureClass(gp.workspace, outFC, "POLYGON") insCur = gp.InsertCursor(outFC) insDsc = gp.Describe(outFC) updArray = gp.CreateObject("Array") srcRow = srcCur.Next() while srcRow: srcGeom = srcRow.GetValue(srcDsc.shapefieldname) if not srcGeom.IsMultipart: tempArray = gp.CreateObject("Array") srcPart = srcGeom.GetPart(0) #print "SINGLE", srcPart tmpPnt = srcPart.Next() while tmpPnt: tempArray.add(tmpPnt) print "SINGLE:", tmpPnt del(tmpPnt) tmpPnt = srcPart.Next() updArray.Add(tempArray) del(tempArray) else: for partNum in range(srcGeom.PartCount): srcPart = srcGeom.GetPart(partNum) #print "MULTI", srcPart updArray.Add(srcPart) srcRow = srcCur.Next() del(srcRow) del(srcCur) insRow = insCur.NewRow() insRow.SetValue(insDsc.shapefieldname, updArray) insCur.InsertRow(insRow) del(insCur)