2 votos

¿Cómo utilizar los criterios espaciales con el cursor de búsqueda de ArcPy Data Access?

El Documentación de ArcGIS sobre el cursor de búsqueda de acceso a datos estados:

Los registros devueltos por SearchCursor pueden ser restringidos para que coincidan con criterios de atributos o criterios espaciales.

Pero no veo ningún ejemplo de cómo especificar criterios espaciales al llamar al cursor de búsqueda. Para este ejemplo tengo una geometría y deseo restringir los resultados del cursor de búsqueda a sólo las características que intersecan esa geometría y cumplen con otros criterios de atributos.

with arcpy.da.SearchCursor(fc,field_list,
                          "Admin_Code is null and shape intersects admin_area_geometry") 

Entiendo que podría realizar un cursor de búsqueda con la consulta de atributos y luego utilizar el método de intersecciones de geometría pero esto sería lento al tener que hacer un bucle por cada característica.

¿Cómo puedo especificar tanto el criterios espaciales al crear un cursor de búsqueda?

1voto

Hameno Puntos 129

Yo sugeriría usar una cláusula where para disminuir el impacto de sacar la información de la geometría, de esta manera no se itera a través de toda la tabla:

import arcpy

fc = 'c:/base/data.gdb/roads'
class_field = 'Road Class'
name_field = 'Name'

# Create an expression with proper delimiters
expression = arcpy.AddFieldDelimiters(fc, name_field) + ' = 2'

# Create a search cursor using an SQL expression
with arcpy.da.SearchCursor(fc, [class_field, name_field, SHAPE@],
                           where_clause=expression) as cursor:
    for row in cursor:
        # continue with logic

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