Hi
I have 200 shapefile in a folder. all fo them are similar. I need select by atribute and them aply eliminate tool and save the shapes files.
Is it possible to do automatically with all the layers from model builder or arcpy? How can I do?
thnak you very much
Do your process once so you can get the scripting syntax for each step.
Check the documentation on iterators in Modelbuilder if you aren't used to python.
Create a basic model to see if it works once. I would suggest having a separate destination folder from the input folder it you are going to iterate all shapefiles in one folder.
Perhaps get a model started and people can leap in to see whether a model or script would be simpler in your case
Thank you @Dan Patterson,
.I tried it with Iterate Files in model builder but i can not connect output with the next step (Selec layer by atribute). I use connect icon but only can use precondition option. How can I upload a screenshot to show you?
The easiest is to do a screen grab of the model, then insert it with the 'camera' (insert image) option into the post
That is I want to do with 190 files. I did with one shp example, its name is "Rod_inter_Masa_156_16.shp"
I want select polygons ❤️ ha, them use eliminate tool, by merging them with neighboring polygons that have the largest area or the longest shared border and finally save the result in a folder.
Doy you know how can I automate it?
Thank you
# Import arcpy module
import arcpy
# Local variables:
Rod_inter_Masa_156_16 = "Rod_inter_Masa_156_16"
Rod_inter_Masa_156_16__2_ = "Rod_inter_Masa_156_16"
Rod_inter_Masa_156_16_Elimin = "C:\\Users\\info\\Documents\\ArcGIS\\Default.gdb\\Rod_inter_Masa_156_16_Elimin"
prueba_shp = "C:\\Prueba_subrodal2\\prueba.shp"
# Process: Select Layer By Attribute
arcpy.SelectLayerByAttribute_management(Rod_inter_Masa_156_16, "NEW_SELECTION", "\"Superfic_1\" <= 3")
# Process: Eliminate
arcpy.Eliminate_management(Rod_inter_Masa_156_16__2_, Rod_inter_Masa_156_16_Elimin, "LENGTH", "", "")
# Process: Copy Features
arcpy.CopyFeatures_management(Rod_inter_Masa_156_16_Elimin, prueba_shp, "", "0", "0", "0")
I tried to do it in model builder but unsuccessfully. I can not connect file.shp with select layer by attribute...
Completely untested... but basically, set your workspace to the geodatabase which contains your data.
Set an output folder (note the 'raw' formatting)
cycle through the featureclasses, do a select by attributes, then eliminate.
import arcpy
import os
arcpy.env.workspace = "C:\\Users\\info\\Documents\\ArcGIS\\Default.gdb
fcs = arcpy.ListFeatureClasses()
out_folder = r"C:\SomeFolderForOutput"
for fc in featureclasses:
out_name = "{}\\{}_elim.shp".format(out_folder, fc)
arcpy.SelectLayerByAttribute_management(fc, "NEW_SELECTION", "\"Superfic_1\" <= 3")
arcpy.Eliminate_management(fc, out_name, "LENGTH", "", "")
Dan Patterson thank you very much.
I did it:
import arcpy
from arcpy import env
env.overwriteOutput = True
import os
arcpy.env.workspace = r"E:\PLANFOR\PD_G000053VA_N\Carto\A_Monre\Tipos_masa\Prueba_subrodal\Rodales_tipmas.gdb"
fcs = arcpy.ListFeatureClasses()
out_folder = r"E:\PLANFOR\PD_G000053VA_N\Carto\A_Monre\Tipos_masa\Prueba_subrodal\Salida"
for fc in fcs:
out_name = "{}\\{}_elim.shp".format(out_folder, fc)
arcpy.SelectLayerByAttribute_management(fc, "NEW_SELECTION", "\"Superfic_1\" <= 3")
arcpy.Eliminate_management(fc, out_name, "LENGTH", "", "")
but it is there an error:
I do not know why.
In order to use "arcpy.SelectLayerByAttribute_management" the input must be a layer. See the help:
The input must be a feature layer or a table view. The input cannot be a feature class or table.
So you will have to use Make Feature Layer—Help | ArcGIS Desktop before arcpy.SelectLayerByAttribute_management
In ArcGIS Pro the reference to the featureclass can be used and a layer is automatically created for you.
good catch... that's what you get for coding blind