2 votos

¿Cómo utilizar las consultas SQL en arcpy.SelectLayerByAttribute?

Intento seleccionar características de una capa que sé que existe. Estoy utilizando Gestión de SelectLayerByAttribute en arcpy. Tengo una capa que está bien definida antes en el código llamada "turmalina". Estoy tratando de consultar esta capa para devolver todas las características con el valor de "Ocurrencia" en el campo STATUS__NEW.

Esto es lo que tengo:

where = "Status__New = 'Occurrence'" 
arcpy.SelectLayerByAttribute_management(tourmaline, "", where)

Cuando se ejecuta este código no se selecciona ningún elemento del mapa. He probado variaciones de la cláusula where utilizando comillas dobles y corchetes alrededor del nombre del campo, pero ninguna de ellas funciona.

Utilizando la herramienta Select Layer By Attributes de ArcMap para seleccionar las mismas características utilizando la siguiente sentencia SQL selecciona las características correctamente.

SELECT * FROM tourmaline WHERE:
Status__New = 'Occurrence'

¿Por qué ocurre esto? ¿Por qué mi sentencia SelectLayerByAttribute es incorrecta?

1voto

Artem Oboturov Puntos 101

Mientras el nombre de tu campo sea correcto (no uno o tres guiones bajos en lugar de los dos que muestras), debería funcionar. Lo tienes formateado correctamente. ¿Has comprobado que no hay una diferencia entre el nombre del campo y el alias en este campo? Arcpy lee el verdadero nombre del campo para esta herramienta.

La única otra cosa que se me ocurre es que si su campo Status__New tiene valores de dominio codificados, tiene que estar seleccionando por el valor codificado. Por ejemplo, si hubiera un valor codificado de 1 para "Ocurrencia", querría utilizar la siguiente selección:

    where = "Status__New = 1"

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