Story Transcript
Aprendiendo GRASS Publicación
Armando Arce
08 de February de 2016
Índice general
1. Contenidos
3
I
II
Aprendiendo GRASS, Publicación
Este documento organiza y resume los comandos más importantes del producto SIG llamado GRASS (Geographic Resources Analysis Support System). Toda la información ha sido tomada del manual de Grass 7.0
Índice general
1
Aprendiendo GRASS, Publicación
2
Índice general
CAPÍTULO 1
Contenidos
1.1 Datos Vectoriales Un “mapa vectorial” es una capa de datos consistente de una serie de elementos dispersos en el espacio geográfico. Estos pueden ser datos puntuales (sitios de perforación), líneas (carreteras), polígonos (límites de parques), volúmenes (estructuras CAD en 3D) o alguna combinación de ellos. Normalmente, cada elemento en el mapa estará asociado a un conjunto de atributos de la capa almacenados en una base de datos (nombres de calles, identificador del sitio, el tipo geológico, etc.). Como una regla general, estos pueden existir en el espacio 2D o 3D y son independientes de la región de procesamiento del SIG. Para listar las diferentes capas de datos, que se han creado en GRASS, existe el comando general llamado g.list. De esto modo para listar solo las capas de datos vectoriales se debe utilizar el parámetro type de la siguiente forma: g.list type=vect
Existen también comandos generales para borrar un conjunto de datos (g.remove) o cambiarle el nombre (g.rename). En este caso el parámetro vect indica el nombre de la capa de datos a eliminar. Por ejemplo,
3
Aprendiendo GRASS, Publicación
para borrar una capa vectorial de puntos se podría utilizar un comando como: g.remove vect=puntos
1.1.1 Información de la capa El comando v.info permite averiguar información sobre una capa dada. Este comando también permite revisar todo el historial de operaciones aplicadas a una capa particular. Un aspecto importante de este comando es que muestra el tipo y cantidad de elementos que conforman la capa. Estos elementos pueden ser: puntos, líneas, centroides, áreas, caras (3D), núcleos, e islas. Por ejemplo, el siguiente comando muestra las operaciones aplicadas a la capa lineas1: v.info -h map=lineas1
1.1.2 Manejo en formato binario El comando v.in.ogr permite importar capas vectoriales desde diferentes formatos binarios. Existe un parámetro opcional spatial que define una extensión espacial. Este parámetro permite restringir la región a un subconjunto mientras se importan los datos. La generación y limpieza de topología de áreas es ejecutada automáticamente, pero puede fallar en casos especiales. Si la proyección cartográfica de la fuente de datos no coincide con la de la localización actual, el comando genera un error. Si se desea ignorar esta diferencia entre proyecciones se puede usar el parámetro -o que sobrescribe la proyección, o bien, se le puede indicar al comando que cree una nueva localización mediante el parámetro location, con dicha proyección. Mediante el parámetro type se puede cambiar el tipo de dato por omisión, por ejemplo: point importa los centroides de las áreas como pun-
4
Capítulo 1. Contenidos
Aprendiendo GRASS, Publicación
tos, line importa las fronteras de las áreas como líneas, boundary importa líneas como fronteras de áreas, y centroid importa puntos como centroides. Por ejemplo, para importar una capa vectorial de líneas, en formato shapefile, se podría utilizar el siguiente comando: v.in.ogr dsn=c:/temp/lineas.shp output=lineas1 -o
La exportación de datos vectoriales se realiza mediante el comando v.out.ogr, el cual puede exportar a diferentes formatos, como por ejemplo shapefile. El parámetro type permite indicar el tipo de elemento que se desea exportar. Algunos ejemplos de la utilización de este comando son los siguientes:
v.out.ogr input=puntos type=point layer=1 format=ESRI_Shapefile \ dsn=C:/temp olayer=puntos -e -c v.out.ogr input=lineas2 type=line layer=1 format=ESRI_Shapefile \ dsn=C:/temp olayer=segmentos -e -c v.out.ogr input=poligonos1 type=centroid layer=1 format=ESRI_Shap dsn=C:/temp olayer=centroides -e -c v.out.ogr input=poligonos1 type=area layer=1 format=ESRI_Shapefil dsn=C:/temp olayer=poligonos -e -c
1.1.3 Manejo de datos en formato ASCII Los módulos v.in.ascii y v.out.ascii permiten el ingreso/exportación de archivos de texto conteniendo coordenadas y datos de atributos, respectivamente. Se pueden utilizar dos formatos para dichos datos (parámetro format ): puntual o vectorial. Para el caso del formato puntual (point) cada fila del archivo contendrá las coordenadas X,Y de un punto junto con algunos otros atributos asociados. Los valores pueden estar separados por un delimitador (parámetro fs) que seleccione el usuario. Si no se definen los nombres de las columnas (parámetro columns) entonces se utilizan nombres por omisión. También existen parámetros para especificar el número de la columna en donde aparece el valor de X, Y, Z y el identificador o categoría (parámetro cat). El formato vectorial (standard) utiliza varias filas del archivo para es1.1. Datos Vectoriales
5
Aprendiendo GRASS, Publicación
pecificar todos los vértices (uno por fila) que componen un elemento geográfico. Además, se utiliza un código para identificar el tipo de elemento: (P) punto, (L) línea, (A) área, (B) frontera, (C) centroide, etc. Este formato no incluye atributos asociados dentro del mismo archivo, estos residen en otro archivo aparte y son asociados mediante un identificador o categoría (cat) común a ambos archivos. Un archivo en formato vectorial puede contener una mezcla de elementos de diferentes tipos, sin embargo, es conveniente intentar mantener únicamente elementos del mismo tipo en cada archivo. El separador de datos (parámetro fs) puede ser un caracter cualquiera; o la palabra tab, space, comma ó un espacio en blanco. El formato de los datos de latitud,longitud pueden ser dados en grados decimales (+/-) DDD.DDDDDD Ejemplo datos puntuales Un archivo ASCII con coordenadas geográficas, llamado coords.txt, podría lucir de la siguiente forma: 1664619,5103481 1664473,5095782 1664273,5101919 1663427,5105234 1663709,5102614
Para importar este archivo en Grass se debe utilizar el siguiente comando: v.in.ascii fs=',' input=coords.txt output=mymap1
Como la opción cat no aparece, un campo extra llamado cat que contiene los identificadores será auto-generado. Considere ahora otro archivo llamado points.txt que incluirá atributos y el identificador en forma explícita: 1,1664619,5103481,studna 2,1664473,5095782,kadibudka 3,1664273,5101919,hruska
6
Capítulo 1. Contenidos
Aprendiendo GRASS, Publicación
4,1663427,5105234,mysi dira 5,1663709,5102614,mineralni pramen
El comando para importar este otro archivo varía pues es necesario especificar el nombre de cada campo: v.in.ascii fs=',' input=points.txt output=mymap2 \ x=2 y=3 cat=1 columns='cat int,x double precision, \ y double precision,label varchar(20)'
En el momento que se requiera volver a exportar estos datos en formato ASCII, se utilizará el siguiente comando (el orden de los campos puede variar en la salida): v.out.ascii fs=',' input=mymap2 output=points.txt columns=label
Ejemplo datos lineales Un archivo ASCII también puede contener datos lineales, sin embargo se requiere un dato adicional que indique de cuántos vértices consta cada línea y en cuántas capas está presente. Luego de listar los vértices aparece un dato con el número de capa y su identificador (categoría) en esa capa. Estos datos se muestran en el siguiente archivo llamado lines.txt: L
6 1 5958812 5958957 5959021 5959048 5959069 5958812 1 5 L 4 1 5959010 5959096 5959091 5959010 1 7
3400828 3400877 3400930 3400973 3401032 3400828
3401338 3401370 3401450 3401338
1.1. Datos Vectoriales
7
Aprendiendo GRASS, Publicación
En este caso se definen dos líneas, la primera consta de seis vértices y aparecerá solo en la capa 1 con número de categoría (cat) de 5, la segunda línea consta de cuatro vértices aparece solo en la capa 1 y su número de categoría es 7. El comando para importar este archivo no varía de aquellos utilizados para datos puntuales, sin embargo se debe utilizar la opción -n para indicar que el archivo no incluye encabezados: v.in.ascii input=lines.txt output=mymap3 -n format=standard
Sin embargo, aún falta importar los datos sobre atributos asociados. El archivo linesAttr.csv muestra algunos atributos en formato CSV los cuales pueden ser convertidos a format DBF utilizando una aplicación de hoja de cálculo: cat,label 1,St.Paul Park 2,Central Park 3,South Park
El comando utilizado para asociar (conectar) el archivo de atributos en formato DBF con el mapa de líneas, es el siguiente: v.db.connect map=mymap2 table=linesAttr key=cat
La exportación de datos lineales en formato ASCII se realiza de la misma que los datos puntuales con la excepción al indicar el formato de salida. Note que los atributos asociados no estarán presentes en la salida. Un aspecto interesante es que este pueden filtrar algunos elementos, al realizar la exportación, utilizando el parámetro where: v.out.ascii input=mymap3 output=lines.txt -n format=standard where="cat => 2 and cat >= < 0, b si x es cero convierte x a entero verifica si x = NULL máximo mediana mínimo moda x a la potencia y raíz cuadrada de x
Ejemplos 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 "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 conten-
30
Capítulo 1. Contenidos
Aprendiendo GRASS, Publicación
drá únicamente valores 0 (falso) ó 1 (verdadero). r.mapcalc "raster4=(raster1