Appearance
Análisis Raster
En GRASS las fronteras geográficas de un mapa raster son descritas por los parámetros: norte (north), sur (south), este (east) y oeste (west). Estos valores describen las líneas que acotan el mapa y sus esquinas. Esta información puede ser modificada con el comando r.region
Como una regla general en GRASS:
- Los mapas raster de salida tienen sus fronteras y resolución igual a aquellos de la región actual.
- Los mapas raster de entrada son automáticamente recortados y ampliados (usando el algoritmo de vecino más cercano) para coincidir con la región actual.
- Los mapas raster de entrada son enmascarados automáticamente si un existe un mapa raster llamado MASK.
Cuando se leen datos no georeferenciados, el mapa importado usualmente tienen su esquina inferior izquierda en (0,0) en el sistema de coordenadas; el usuario necesita usar r.region para "posicionar" el mapa importado. El procesamiento de mapas raster en GRASS es siempre ejecutada en la configuración de la región actual, o sea la extensión de la región actual y la resolución del raster actual es usado.
Si un mapa raster llamado MASK existe, muchos módulos raster de GRASS operan solo en datos que caen dentro del área enmascarada, y tratando cualquier dato que resida fuera de la máscara como si su valor fuera NULO. La mascara es solo aplicada cuando se lee un mapa raster GRASS existente, por ejemplo cuando es usado en un módulo como un mapa de entrada.
Algebra de mapas raster
El comando r.mapcalc provee métodos del álgebra de mapas. Este módulo ejecuta aritmética en capas de mapas raster. Nuevas capas de mapas raster pueden ser creadas que son expresiones aritméticas involucrando capas de mapas raster existentes, constantes puntuales enteras y funciones.
Operadores
Operador Significado Tipo Precedencia
--------- ----------------- ----------- -------------
- negación Aritmética 12
! NOT Lógica 12
^ exponente Aritmética 11
% módulo Aritmética 10
/ división Aritmética 10
* multiplicación Aritmética 10
+ adición Aritmética 9
- sustracción Aritmética 9
> mayor que Lógica 7
>= mayor o igual Lógica 7
< menor que Lógica 7
<= menor o igual Lógica 7
== igual Lógica 6
!= diferente Lógica 6
&& AND Lógica 3
|| OR Lógica 2Funciones
Algunas de las funciones soportadas son listadas en la tabla de abajo. El tipo del resultado es indicado en última columna. F significa que las funciones siempre resulta en un valor de punto flotante, I significa que la función da un resultado entero, y * indica que el resultado es flotante si cualquiera de los argumentos de la función son valores de punto flotante y enteros si todos los argumentos son enteros.
función descripción
--------------- -----------------------------
abs(x) valor absoluto de
double(x) convierte x a punto flotante
exp(x,y) x a la potencia y
if condicional:
if(x) 1 si x no es cero, 0 sino
if(x,a) a si x no es cero, 0 sino
if(x,a,b) a si x no es cero, b sino
if(x,a,b,c) a si x > 0, b si x es cero
int(x) convierte x a entero
isnull(x) verifica si x = NULL
max(x,y[,z...]) máximo
median(x,y[,z...]) mediana
min(x,y[,z...]) mínimo
mode(x,y[,z...]) moda
pow(x,y) x a la potencia y
sqrt(x) raíz cuadrada de xEjemplos
Considere el siguiente archivo llamado raster1.arc:
ncols 10
nrows 10
xllcorner 100
yllcorner 100
cellsize 10
NODATA_value 0
0 0 0 0 0 2 2 0 3 3
0 1 1 0 2 2 0 0 3 3
0 1 1 0 2 2 0 3 3 3
0 0 3 3 0 2 0 3 3 3
0 0 3 3 0 1 1 0 0 0
0 0 0 0 0 1 1 1 1 0
0 2 2 0 0 1 1 1 1 0
0 2 2 0 0 2 2 2 2 0
0 2 1 1 0 2 2 2 2 2
0 0 0 1 1 0 0 2 2 2Para importar este archivo se utilizaría en comando:
$ r.in.gdal input=raster1.arc output=raster1
Ahora considere el siguiente archivo de datos llamado raster2.arc:
ncols 10
nrows 10
xllcorner 100
yllcorner 100
cellsize 10
NODATA_value 0
2 2 0 0 0 0 0 0 2 1
0 2 2 2 0 3 3 1 1 0
0 0 1 0 0 3 3 3 0 0
0 1 1 1 1 1 3 3 0 0
0 0 0 2 2 2 2 2 2 0
0 0 0 2 2 2 0 2 2 0
0 1 1 2 2 2 0 0 3 3
0 0 0 0 3 0 0 0 3 3
2 2 2 4 4 4 2 2 2 0
2 2 0 4 4 4 2 2 2 0Para importar este otro archivo se utilizaría un comando similar al anterior:
$ r.in.gdal input=raster2.arc output=raster2
Se puede obtener una nueva capa raster con los valores promedios de las dos capas raster anteriores, utilizando con el operadores aritméticos:
$ r.mapcalc expression="raster3=(raster1+raster2)/2"
El siguiente ejemplo muestra la utilización de operadores relacionales para comparar los valores de las dos capas. La capa resultante contendrá únicamente valores 0 (falso) ó 1 (verdadero).
$ r.mapcalc expression="raster4=(raster1<=raster2)"
La utilización de funciones se muestra en el ejemplo a continuación.
$ r.mapcalc expression="raster5=max(raster1,raster2)"
El procesamiento condicional es mostrado en el siguiente comando, el cual selecciona únicamente aquellas celdas con valor 2. Todas las demás celdas contendrán un valor de 0.
$ r.mapcalc expression="raster6=if(raster1==2)"
Estadísticas en mapas raster
El comando r.statistics permite calcular estadísticas zonales. Este comando es una herramienta para análisis estadístico exploratorio de acuerdo a cómo se traslapa con objetos en la capa base. Un variedad de medidas estadísticas estándar son posibles. Todas las celdas en la capa base son consideradas un objeto para el análisis. Para cierto tipo de aplicaciones, puede ser necesario preparar los datos de entrada de forma que todas las áreas de celdas contiguas con el mismo valor en la capa base sean identificadas en forma única, que puede ser hecho con r.clump
Los métodos disponibles para este comando son:
método descripción
---------- ----------------------
diversity diversidad
distribution distribución
average promedio
mode moda
median mediana
avedev desviación promedio
stddev desviación estándar
variance varianza
min mínimo
max máximo
sum sumaLos cálculos son ejecutados en cada área de los datos de la capa de cobertura que se encuentran dentro de cada valor único, o categoría, de la capa base.
La capa de salida es una versión reclasificada de la capa base con idénticos valores de celda, pero con etiquetas modificadas. Es decir, los resultados de los cálculos son almacenados en las etiquetas de la capa de salida. Para transferir los valores almacenados en las etiquetas a los valores de las celdas, se puede usar el comando r.mapcalc junto con el operador @.
Ejemplos
$ r.statistics base=raster1 cover=raster2 out=raster7 method=average
$ r.mapcalc expression="raster8=@raster7"
Funciones en vecindario
El comando r.neighbors genera para cada valor de la celda una función de los valores asignados a las celdas alrededor de ella, y almacena nuevos valores de celda en la capa raster de salida.
El comando r.neighbors toma cada celda en el archivo raster de entrada, y examina los valores asignados a celdas en algún vecindario, definido por el usuario, alrededor de ella. Este genera un mapa raster en el que a cada celda le es asignado un valor que es alguna función (especificada por el usuario) de los valores en el vecindario de la celda.
Métodos de operación en el vecindario:
método descripción
--------- -----------
average promedio
median mediana
mode moda
minimum mínimo
maximum máximo
stddev desviación estándar
sum suma
variance variancia
diversity diversidadEjemplos
El siguiente comando crea una capa raster a partir del promedio de valores en un vecindario de tamaño 3:
$ r.neighbors input=raster2 output=raster9 method=average size=3
El siguiente comando muestra un ejemplo adicional con un vecindario "redondo" de tamaño 5:
$ r.neighbors -c input=raster1 output=raster10 method=average size=5
Agrupamiento de celdas
El comando r.clump encuentra todas las áreas de valores de celdas continuas en el mapa raster de entrada. Este asigna un valor único a cada una de estas áreas ("grupo") en el mapa raster de salida. La distinción de categorías en el mapa de entrada es preservada. Esto significa que si distintos valores son adyacentes, ellos no serán agrupados juntos. El algoritmo utilizado no considera celdas en diagonal.
Ejemplos:
Para crear los diferentes grupos de una capa raster se puede utilizar el comando:
$ r.clump input=raster1 output=raster11