3 votos

Creación de una capa mediante el uso de consultas SQL para las categorías de uso del suelo

Tengo un mapa con unas 63 cuadrículas e intento determinar la categoría de usuario de la cubierta terrestre de mayor tamaño en cada cuadrícula. Las categorías de ocupación del suelo se han convertido en polígonos y ya dispongo de tablas de atributos con un campo para "Superficie" en cada cuadrícula. Necesito crear una capa que me indique qué categoría de uso del suelo tiene la mayor superficie. Así que tengo que sumar el "área" de cada categoría y luego determinar el máximo (área más alta) y luego hacer una capa sólo para esa categoría.

Por ejemplo La cuadrícula 1 contiene - agua = 900 m, urbanización = 1000 m, bosque = 2000 m Cuadrícula 1 - categoría con mayor superficie = bosque a 2000m - necesitaría una sola capa que mostrara el bosque sólo en esa cuadrícula. Pero luego hacer esto rápidamente para todas las otras cuadrículas en mi mapa.

Soy un usuario de nivel medio en ArcMap con habilidades de consulta SQL decente, así que me siento más cómodo en SQL y estoy seguro de hacer una consulta con una sentencia join que se une a sí mismo puede hacer eso por mí. Estoy buscando la mejor forma de ejecutar una consulta SQL que sea un poco más compleja que la típica "select * from". Herramientas como "Select attribute by" están bien, pero la sección de consultas SQL no permite realizar uniones internas. O si todo esto se tiene que hacer de otra manera, cómo puedo crear las capas que necesito. Por supuesto, podría pasar por cada cuadrícula y hacerlo manualmente, pero estoy tratando de aprender a hacer estas cosas de una manera más rápida y utilizarlas en el futuro.

¿Me aventuraré en ArcPy y/o ModelBuilder?

Quiero sumar el "Área" por "Gridcode" y luego determinar qué "Gridcode" tiene el mayor área sumada. A continuación, hacer que en una nueva capa. No necesitaría ningún otro gridcode si no suman como el máximo.

AttTable

4voto

thayer Puntos 11

Si te estoy entendiendo bien empezaste con un raster NLCD y una clase de característica de polígono de tus cuadrículas. A continuación, convirtió la trama en polígono dentro de cada una de las celdas de sus cuadrículas para obtener polígonos con la correspondiente clase de cobertura del suelo NLCD.

Enfoque del analista espacial: Yo rediseñaría tu flujo de trabajo de la siguiente manera: Antes de convertir a polígonos recomiendo usar la función Estadísticas zonales en el NLCD original, siendo sus zonas los polígonos de la cuadrícula y la clase de ocupación del suelo del NLCD el valor. Configure el campo estadístico como "MAYORÍA". A continuación, utilice la herramienta Calculadora de ráster para convertir en sin datos todo lo que no pertenezca a la clase de cobertura del suelo mayoritaria.

SetNull([NLCD]<>[zonalstat], [zonalstat])

Lo que quede será un raster de sólo la cubierta terrestre mayoritaria. También puede utilizar la herramienta Reclasificar. A continuación, puede hacer su conversión a polígono, los polígonos resultantes tendrán la única mayoría de la cubierta terrestre. Debe tener en cuenta, sin embargo, que si más de una clase de cobertura del suelo tiene el mismo número de celdas, sólo una será devuelta por este procedimiento. Por lo tanto, es posible que desee realizar Estadísticas Zonales como Tabla para encontrar cuadrículas que tengan más de una cobertura del suelo en estado mayoritario.

Enfoque SQL: Para un enfoque basado en SQL de sus polígonos de área, puede probar la función Herramienta Crear tabla de consulta si tiene una geodatabase. Nunca lo he utilizado, así que no sé hasta qué punto es potente. Su SQL que sería algo como esto:

SELECT grid_id, land_use_class, max(area) OVER (PARTITION BY area) 
FROM table
WHERE area = max(area)

Puede consultar la Documentación de funciones de ventana para PostgreSQL para más detalles.

Pero es posible que desee comprobar que sus polígonos no se dividieron, por ejemplo, por un área de diferente cobertura del suelo entre dos áreas de la misma cobertura del suelo. Tiene que hacer multipolígonos cuando convierta desde ráster, de lo contrario su cobertura del suelo dominante podría quedar enmascarada porque la dominante no es contigua.

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