3 votos

¿Cómo procesar por lotes las tablas de atributos en QGIS (o GRASS)?

Estoy usando GRASS 6.4.3 en Linuxmint 16. Tengo un bash script para GRASS que uso para procesar casi 300 archivos raster. El script primero importa algunos archivos raster ( r.in.gdal ), luego hace algunos cálculos y clasificación (usando r.mapcalc y r.reclass ). Y finalmente transforma el raster resultante en vector ( r.to.vect ) y lo guarda ( v.out.ogr , utilizando type=area ).

Digamos que cada archivo vectorial tiene un campo denominado categoría y que sólo toma dos valores 1 y 2. Como sólo me interesa el área total de los polígonos con categoría = 2 y con un área superior a 10.000 m2, abro cada archivo vectorial en QGIS, edito su tabla de atributos, calculo el área de cada polígono y los elimino todos con categoría=1 y $superficie<10.000 .

Pero tengo que hacerlo manualmente,

¿Hay alguna manera de hacerlo en un proceso por lotes dentro de QGIS?

O mejor aún, ¿es posible hacerlo en GRASS?

¿Es posible editar la tabla de atributos dentro de la consola de comandos en GRASS?

¿Podría hacerlo en el mismo bash script que uso para hacer todos los demás procesos en GRASS?

He estado leyendo este pero no estoy seguro de cómo aplicarlo a mi problema. No he podido encontrar cómo calcular el área de los polígonos y añadirla a una nueva columna usando GRASS. Creo que podría utilizar db.select para buscar los polígonos que quiero eliminar, pero no sé cómo hacerlo.

Gracias por su ayuda.

5voto

Mila Puntos 6

Bueno, puedes hacerlo usando ogr2ogr, después de exportar los vectores de GRASS a shp:

ogr2ogr -sql "SELECT * FROM file_in WHERE 'category' == 2 AND OGR_GEOM_AREA > 10000" file_out.shp file_in.shp

file_in.shp son los datos exportados de GRASS

archivo_fuera.shp es su resultado filtrado.

Entonces puedes correr:

ogr2ogr -sql "SELECT count(OGR_GEOM_AREA) FROM file_out" file_out.shp

O si no necesita resultados filtrados, simplemente coloque el argumento WHERE:

ogr2ogr -sql "SELECT count(OGR_GEOM_AREA) FROM file_in WHERE 'category' == 2 AND OGR_GEOM_AREA > 10000" file_in.shp

Espero que sea de ayuda.

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