Script de bash para sumar atributos en columnas con v.db.select (GRASS-QGIS)

En un artículo reciente tuve la necesidad de obtener la suma de todos los valores de un campo en una tabla atributiva para estimar un índice. Por premura, usé la salida del comando:

v.to.db -p map=rio_split type=line option=length col=longitud units=me > longitud

en una hoja de cálculo. Sin embargo, leyendo el manual de v.db.select, descubrí que éste produce una salida con sólo el encabezado de la columna, sin los id, lo cual es más fácil de filtrar con grep. Por esta razón, lo usé en un sencillo script de bash, desde cónsola de GRASS (fuera de ésta no funciona), para obtener directamente el valor de la suma sin recurrir como intermediario a una hoja de cálculo. Para la suma se usa la calculadora bc de precisión arbitraria. El script se encuentra a continuación:

#! /bin/bash
clear
temporal=`v.db.select map=rio_split col=longitud | grep -oE '[0-9.-]*'`
suma=0
for var in $temporal
do 
	suma=$(echo "$suma + $var" | bc )
done
echo $suma

Produce sólo la suma en la columna y vectorial que me interesa en cónsola de GRASS-QGIS. No obstante, puede ser generalizado para procesar cualquier columna de diferentes vectoriales. En este caso, lo grabé en mi home de usuario como script_suma (al ante ponerle el prefijo script_ todos los scripts del home de usuario serán listados en una misma zona para más fácil ubicación), le di permisos de ejecución con chmod +x script_suma y al ejecutarlo con ./script_suma produjo el valor de 127484.623576 m, es decir, el esperado.

Esta entrada fue publicada en GRASS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

3 respuestas a Script de bash para sumar atributos en columnas con v.db.select (GRASS-QGIS)

  1. Pingback: Script de bash para sumar atributos en columnas con v.db.select (GRASS-QGIS) | Geoprocessing - Geoprocessamento | Scoop.it

  2. Pingback: Script de bash para determinar valor máximo en columnas con v.db.select (GRASS-QGIS) |

  3. Pingback: Script de bash para determinar promedio y desviación estándar en columnas con v.db.select (GRASS-QGIS) |

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s