-->

04 julio 2011

Seleccion por atributos en ArcGis

Mediante la opción “Select by Attributes” se puede realizar una consulta o seleccionar aquellos elementos de un Feature que cumple una determinada condición. Seleccionar por atributos es muy parecidos a la consulta definida en el artículo Definiendo un Query en ArcGis, la diferencia está en que al aplicar Select by Attributes” solo se resaltan los elementos seleccionados sin desaparecer los que no cumplen la condición. La consulta realizada se puede guardar, una vez construida, a través del botón “Save”, luego la podremos recuperar usando el botón “Load”, botones localizados en la parte inferior de la ventana.

Para realizar la consulta se utiliza el lenguaje SQL (Structured Query Language). La notación en este caso es la siguiente:

SELECT * FROM [Feature o tabla] WHERE [condición] que significa “selecciona los objetos (o registros) del Feature (o tabla) llamado [Feature] que cumplan la condición [condición]”. La condición es una expresión lógica cuyo resultado es verdadero o falso y está compuesta por campos, operadores y valores. Por ejemplo

Expresión

Resultado

SELECT * FROM Pozos WHERE

Municipio = Apartadó

Seleccionará del Feature Pozos aquellos elementos cuyo valor del campo Municipio sea igual a Apartadó

SELECT * FROM Pozos WHERE

Municipio <> Apartadó

Seleccionará del Feature Pozos aquellos elementos cuyo valor del campo Municipio sea diferente a Apartadó

SELECT * FROM Pozos WHERE

Municipio = “Apartadó” And Litología = “Si”

Seleccionará del Feature Pozos aquellos elementos localizados en el municipio de Apartadó (campo Municipio) y que además tengan litología (valor “Si” del campo litología). Esta última expresión es la que vamos a implementar en el presente ejercicio

Para ilustrar la realización de una consulta por atributos ArcGis utilizaremos el shape de pozos existentes en el acuífero del golfo de Urabá, tal como se muestra continuación.

F1. Datos Selección

Paso 1. Vamos al menú Selection escogemos la opción Select By Attributes...

F2. Select By Attributes

Nos aparece la ventana Select By Attributes, compuesta por las siguientes partes.

  • Layer: La capa a la cual le vamos a aplicar la consulta.
  • Method: crear una seleccion, seleccionar sobre lo ya seleccionado…
  • Campos: Campos para realizar la selección, Aparecerán todos los campos que contiene el Feature seleccionado.
  • Get Unique values: En esta parte aparecerán los valores o tributos del campo seleccionado
  • Select from: recuadro para escribir las condiciones para realizar la selección.

F3. Ventana Select By Attributes

Paso 2. Escribimos la expresión SELECT * FROM [Pozos] WHERE Municipio = “Apartadó” And Litología = “Si”. Procedemos de la siguiente forma.

  • En la pestaña Layer, Selecionamos Pozos.
  • Buscamos el campo Municipio y damos doble clic para que se agregue debajo de Select*from.
  • Oprimimos el botón “=”.
  • Damos clic en el botón Get Unique Values y de los atributos que aparecen seleccionamos “Apartadó”.

Veremos lo siguiente.

F4. primera parte de la consulta

Si deseamos ver el resultado parcial damos clic en el botón Apply, se mostrarán todos los pozos localizados en el municipio de Apartadó. Pero aun falta saber cuales de ellos tienen Litología

F 4.1 Resultado parcial de la consulta

Como la ventana Select By Attributes sigue visible, construimos la segunda parte de la consulta de la siguiente forma.

  • Clic en el botón And
  • Buscamos el campo Litología y damos doble clic sobre el mismo para agregarlo debajo de Select*from.
  • Oprimimos el botón “=”.
  • Damos clic en el botón Get Unique Values y de los atributos que aparecen seleccionamos “Si”.

La ventana se verá como sigue.

F5. consulta completa

Clic en Ok para ver el resultado final de la consulta. Veremos seleccionados aquellos pozos que están localizados en el municipio de Apartadó y además tienen Litología.

F6. Resultados de la consulta

 

21 comentarios :

  1. MUY INTERESANTE GRACIAS POR LA INFORMACIÓN

    ResponderEliminar
  2. Los amo, no saben cuanto me han ayudado !!!!

    ResponderEliminar
  3. Saben como pasar atributos de dos objetos por ejemplo de una linea de un shape a otra linea??? estoy tratando de programarlo en VB.Net ayuda porfa!!

    ResponderEliminar
    Respuestas
    1. Abraham, lamentablemente aun no manejo programación vba para arcgis... pero es algo que tengo presente

      Eliminar
    2. Este comentario ha sido eliminado por un administrador del blog.

      Eliminar
    3. Hola turin11, gracias por tu aporte y por tu continua participación en el blog, en verdad me agrada mucho. No obstante, la finalidad del blog no admite la piratería. Podemos agregar todo tipo de enlaces siempre y cuando no violen los derechos de autor. Gracias una vez mas pero debo borrar el enlace colocado.

      Eliminar
  4. Gracias, me ayudó de mucho tu explicación

    ResponderEliminar
  5. Que tal, en primer lugar muchas felicidades por este sitio web, es de mucha ayuda para nosotros los que nos manejamos en el tema SIG, mi duda es en el tema Selección por atributos: Necesito buscar de un SHP, Escribi la expresión SELECT * FROM [Rios] WHERE Name = “Rio Azul” .. pero al mismo tiempo necesito seleccionar otros rios al mismo tiempo para no hacerlo uno por uno, como se puede hacer?

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. Hola como puedo seleccionar sitios con especificaciones de suelo, clima, vegetación, pendiente y exposición?

    ResponderEliminar
    Respuestas
    1. Hola!, no me es clara tu pregunta, no ahorres palabras en explicar para que podemos ayudarte. saludos

      Eliminar
    2. Hola! quiero hacer algo parecido a lo que se muestra arriba, tengo un mapa geológico formado por polígonos. Quiero calcular la superficie de cada una de las series geológicas de mi mapa ( que están formadas cada una por diversos polígonos). Para ello cuento con un campo en el que se encuentra diferenciados todos los polígonos que forman el mapa según la serie geológica a la que pertenecen (hay grupos de polígonos que pertenecen a las mismas series geológicas), también cuento con otro campo que contiene la superficie de cada uno de los polígonos. Bien pues quisiera saber qué superficie ocupa cada serie geológica en mi mapa y no se como hacerlo.Si me pudiesen ayudar. Millones de gracias de antemano! Saludos

      Eliminar
    3. Hola Maritik, despues de aplicar y seleccionar los poligonos que comparten el mismo atributo (serie geológica), depues abres la tabla de atributos (alli ves los registros seleccionados). despues de ello das clic derecho sobre el campo donde tienes las áreas y alli seleccionas la opción Statistics, te aparecerá una ventana con varios calculos, entre ellos la sumatoria de la áreas

      Eliminar
  8. Muchas gracias Pedro! al final mientras esperaba la respuesta di con la manera de hacerlo aunque no fue así he probado a hacerlo como tú me indicas y obtengo el mismo resultado. Yo lo hice con summarize seleccionando el campo de las series geológicas en la casilla nº1 y el campo de las áreas en la casilla nº2 y desplegando el menú de la izq donde también se encuentra las mismas operaciones estadísticas en que la opción statistics. Se obtiene la misma información aunque de manera distinta ya que de la forma que conseguí hacerlo se crea un campo en la tabla de atributos. Has sido muy amable respondiéndome tan rápido, te lo agradezco de veras. Me parece un blog magnífico! soy novata en esto así que hablaremos pronto seguro! saludos!

    ResponderEliminar
  9. Que tal amigo, me gustaría saber si se puede lo siguiente:
    Tengo un shape en el cual tengo registrado un n numero de cuentas, y me solicitan via Excel x decir 50 cuentas, pueda realizar una búsqueda masiva?, o debo realizarlo una x una?

    De antemano muchas gracias.

    ResponderEliminar
  10. Hola estimado, una consulta. ¿Sabes que sentencia SQL se debe usar para seleccionar el valor máximo o mínimo de una tabla de atributos? Por ejemplo: tengo un shape de lotes y quisiera seleccionar el lote de mayor y menor área mediante una sentencia SQL.
    Saludos y gracias

    ResponderEliminar
    Respuestas
    1. LOGRASTE SOLUCIONARLO ESTOY CON EL MISMO PROBLEMA

      Eliminar
    2. Tengo la misma inquietud. Lograron solucionarlo?

      Eliminar
  11. HOLA.
    OYE COMO UNO PUEDES HACER UNA SELECCION DE POLIGONOS QUE SE ENCUENTREN EN UN RANGO DE DOS AREAS.

    ResponderEliminar
  12. buenas noches,, pero si quiero agregar un campo mas, por ejemplo agregar una consulta sql, osea tres.. como seria?

    ResponderEliminar

Tu comentario es muy importante...¿Cómo te pareció el tema?