Me gustaría que lo siguiente seleccione (resalte) la capa "proyecto" que se cruza con la cuadrícula, y luego extraiga un registro de la "Cuadrícula" seleccionada. No necesito guardar la capa.
Nota: Ejecutar el script desde ArcMap en la ventana de la consola de Python.
import arcpy
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("project","project_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management("project_lyr","INTERSECT","Grid")
Este código se ejecuta y no se dan errores, sin embargo, no selecciona (resalta) ninguna función. Alguna idea de por qué? También corre muy lento.
Básicamente estoy tratando de hacer esto:
Esto se ejecuta muy rápido casi al instante, pero quiero hacer lo mismo con Python. Solo necesito un valor de la tabla de la entidad seleccionada, no necesito una copia de la capa.
Parte de la solución puede ser usar el espacio de trabajo en memoria que es
Escribir datos en el espacio de trabajo en memoria es a menudo significativamente más rápido que escribir en otros formatos ...
Simplemente no estoy seguro de cómo implementar el espacio de trabajo en memoria
fuente
import arcpy
comando tarda un tiempo en ejecutarse.arcpy.MakeFeatureLayer()
línea, yaproject
que ya es una capa. Solo hazloarcpy.SelectLayerByLocation_management("project","INTERSECT","Grid")
.Respuestas:
¡Buena pregunta!
Dmahr tiene razón, es más rápido simplemente seleccionar la capa en lugar de crear una capa de entidades. También agregaría el resto de las variables, aunque sean opcionales.
Otra cosa que encuentro es que ejecutar cosas en la ventana de Python de ArcMap siempre es más lento. Me parece que si escribe el código en un archivo .py, lo agrega como un script a la caja de herramientas y luego lo ejecuta, el procesamiento irá más rápido.
fuente