6 votos

¿Copiar las características seleccionadas (dirigidas) a un nuevo shapefile utilizando ArcPy?

Estoy tratando de copiar filas específicas de la tabla de atributos de un shapefile a un nuevo shapefile que contendrá sólo las filas especificadas en su tabla de atributos, es decir, si un campo GDP_TOP10 = 1 .

Yo estoy usando esto en este momento:

#Grab rows using Search Cursor with WHERE clause
rows = arcpy.SearchCursor("C:/CGDP.shp", "GDP_TOP10 = 1")
for row in rows:
    arcpy.CopyFeatures_management("CGDP.shp", "New.shp")
del row
del rows

Sin embargo, esto sólo copia todo el shapefile, no las filas que quiero seleccionar con el cursor. Si ejecuto una sentencia print bajo mi bucle for en su lugar, funciona e imprime sólo los campos relevantes, pero el comando copy to new shapefile no parece copiar específicamente.

¿Existe un comando ArcPy diferente para copiar sólo las filas que coinciden con una consulta?

10voto

UnkwnTech Puntos 21942

Recomiendo utilizar el Seleccionar_análisis que aceptará un where clause .

arcpy.Select_analysis("C:/CGDP.shp", "C:/New.shp", ' "GDP_TOP10" = 1 ')

6voto

Paul Puntos 555

Cree una capa de características con una selección y luego utilice CopyFeatures:

arcpy.management.MakeFeatureLayer("C:/CGDP.shp", "new_layer", ' "GDP_TOP10" = 1 ')
arcpy.management.CopyFeatures("new_layer", "c:/new.shp")
arcpy.management.Delete("new_layer")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X