#Import standard library modules import arcgisscripting import os #Create the Geoprocessor object gp = arcgisscripting.create(9.3) #Get a list of the featureclasses in the input folder source_fc = "H:/temp_D/testt" Entity = "H:/temp_D/test" outputfolder = "H:/temp_D" gp.Toolbox = "Data Management" # convert a featureclass to a layer gp.MakeFeatureLayer_management (source_fc, "source_lyr") # have Layers for AddJoin gp.AddJoin_management("source_lyr", "GID", Entity, "GID", "KEEP_ALL") # convert a layer to a featureclass gp.CopyFeatures_management ("source_lyr", source_fc) gp.FeatureClassToShapefile_conversion(source_fc, outputfolder) # clear memory of layers gp.Delete("source_lyr") gp.AddMessage(gp.GetMessages()) print gp.GetMessages()
Solved! Go to Solution.
################################################## ######################## ##AddJoin feature layers to a feature layer ##Elaine Kuo ##01 July 2013 ################################################## ####################### #Import standard library modules import arcgisscripting import os #Create the Geoprocessor object gp = arcgisscripting.create(9.3) gp.QualifiedFieldNames = "UNQUALIFIED" #Set the input workspace workingfolder= "H:/temp_D/test" gp.Workspace = workingfolder #Set the output workspace outputfolder= "H:/temp_D" outWorkspace= outputfolder source_fc = "H:/temp_D/testt/A_grid.shp" #Get a list of the featureclasses in the input folder fcs = gp.ListFeatureClasses() gp.Toolbox = "Data Management" # Make a FeatureClass layer gp.MakeFeatureLayer_management (source_fc, "source_lyr") # A counter to separate the first time through the loop from all other times counter = 0 # Loop through every item in the list that was just generated for fc in fcs: if counter == 0: # set up first Layer for AddJoin gp.AddJoin_management("source_lyr", "GID", fc, "GID", "KEEP_ALL") else: # set up second and following Layers for AddJoin gp.AddJoin_management("source_lyr", "A_grid.GID", fc, "GID", "KEEP_ALL") counter += 1 # convert a layer to a featureclass out_name = gp.Describe("source_lyr").name out_name = gp.ValidateTableName(out_name, outputfolder) out_shape = outputfolder + "/" + out_name + ".shp" gp.CopyFeatures_management ("source_lyr", out_shape) # delete Field (need to clean up with a lot more ID fields that the code you have below since now there are 50 GID values.) fieldList = gp.ListFields(out_shape) for field in fieldList: if field.name[1:3] == "ID_": gp.deletefield (out_shape, field.name) # Don't bother removing 50 joins, just kill the layer # clear memory of layers gp.Delete("source_lyr") gp.AddMessage(gp.GetMessages()) print gp.GetMessages()
################################################## ######################## ##AddJoin feature layers to a feature layer ##Elaine Kuo ##01 July 2013 ################################################## ####################### #Import standard library modules import arcgisscripting import os #Create the Geoprocessor object gp = arcgisscripting.create(9.3) gp.QualifiedFieldNames = "UNQUALIFIED" #Set the input workspace workingfolder= "H:/temp_D/test" gp.Workspace = workingfolder #Set the output workspace outputfolder= "H:/temp_D" outWorkspace= outputfolder source_fc = "H:/temp_D/testt/A_grid.shp" #Get a list of the featureclasses in the input folder fcs = gp.ListFeatureClasses() gp.Toolbox = "Data Management" # Make a FeatureClass layer gp.MakeFeatureLayer_management (source_fc, "source_lyr") # A counter to separate the first time through the loop from all other times counter = 0 # Loop through every item in the list that was just generated for fc in fcs: if counter == 0: # set up first Layer for AddJoin gp.AddJoin_management("source_lyr", "GID", fc, "GID", "KEEP_ALL") else: # set up second and following Layers for AddJoin gp.AddJoin_management("source_lyr", "A_grid.GID", fc, "GID", "KEEP_ALL") counter += 1 # convert a layer to a featureclass out_name = gp.Describe("source_lyr").name out_name = gp.ValidateTableName(out_name, outputfolder) out_shape = outputfolder + "/" + out_name + ".shp" gp.CopyFeatures_management ("source_lyr", out_shape) # delete Field (need to clean up with a lot more ID fields that the code you have below since now there are 50 GID values.) fieldList = gp.ListFields(out_shape) for field in fieldList: if field.name[1:4] == "ID_": gp.deletefield (out_shape, field.name) # Don't bother removing 50 joins, just kill the layer # clear memory of layers gp.Delete("source_lyr") gp.AddMessage(gp.GetMessages()) print gp.GetMessages()