Appearance
Conversión raster/vectorial
Dependiendo del tipo de fenómeno geográfico que el dato vectorial representa, se distinguen dos tipos de transformación desde datos vectoriales y raster:
Para elementos geométricos (puntos, líneas y áreas) se utiliza transformación directa desde vectores a áreas o líneas raster.
Para campos continuos (isolíneas, contornos) se requiere interpolación espacial para transformar desde líneas vectoriales a raster.
Extracción de elementos desde objetos raster a vectores requiere vectorización.
Vectorización automática de datos raster
Algunas veces es necesario convertir datos raster existentes (líneas, áreas) a datos vectoriales. Esto se puede realizar mediante un mecanismo automatizado. GRASS provee los módulos r.to.vect y r.contour
Vectorización de puntos raster
Para la vectorización de puntos desde un mapa raster se debe especificar el tipo 'point' en el comando r.to.vect, por ejemplo considere el siguiente archivo tipo raster ARC:
ncols 10
nrows 10
xllcorner 100
yllcorner 100
cellsize 10
NODATA_value 0
0 0 0 0 0 0 0 0 2 0
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 2 0 0
0 0 0 0 0 0 0 0 0 0En dicho archivo se definen algunas celdas que contienen valores con alguna categoría (1 y 2), el resto de celdas se consideran nulas. Ahora para importar dicho raster y convertir las celdas a datos vectoriales puntuales se deben ejecutar los siguientes comandos:
r.in.gdal input=rasterPuntos.arc output=rasterPuntos
g.region rast=rasterPuntos
r.to.vect in=rasterPuntos out=vectorPuntos type=pointVectorización de líneas raster
Existen diferentes procedimientos para la sectorización de líneas y áreas. Con el fin de vectorial una línea de un mapa, un requisito es "adelgazar" todas las líneas del mapa raster con r.thin. Luego, se aplica el comando r.to.vect para convertir todas las líneas en el mapa raster al modelo de datos vectorial. Considere el siguiente archivo raster conteniendo información de líneas en formato ARC:
ncols 10
nrows 10
xllcorner 100
yllcorner 100
cellsize 10
NODATA_value 0
1 0 0 0 0 0 0 0 2 0
0 1 0 0 0 0 0 2 0 0
0 0 1 0 0 0 0 2 0 0
0 0 0 1 0 0 0 2 0 0
0 0 0 0 1 1 0 2 2 2
0 0 0 0 0 1 0 0 0 0
3 3 3 0 0 0 1 1 1 0
0 0 0 3 0 0 0 0 0 1
0 0 0 0 3 0 0 3 0 0
0 0 0 0 0 3 3 0 3 3Nótese que existen tres tipos de categorías correspondientes a elementos lineales diferentes. Los comandos para importar este archivo y realizar la conversión a elementos vectoriales serían los siguientes:
r.in.gdal input=rasterLineas.arc output=rasterLineas
g.region rast=rasterLineas
r.thin in=rasterLineas out=rasterThin
r.to.vect -v in=rasterThin out=vectorLineas type=lineLa opción -v hace que los nuevos elementos vectoriales se creen asignado como categoría el valor de las celdas relacionadas.
Vectorización de áreas raster
Las áreas pueden ser convertidas a polígonos vectoriales con el mismo comando r.to.vect. Esto convierte las áreas raster a polígonos vectoriales y también copia los atributos al mapa vectorial. Ahora se utilizará el siguiente archivo raster con información sobre áreas para realizar la conversión:
ncols 10
nrows 10
xllcorner 100
yllcorner 100
cellsize 10
NODATA_value 0
0 0 0 0 0 0 0 0 2 0
0 0 0 0 0 0 0 2 2 0
0 1 1 0 0 0 2 2 0 0
0 1 1 1 0 0 2 2 2 0
0 0 0 1 1 1 0 2 2 2
0 0 0 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 3 3 3 0 0 0 0
0 0 0 0 3 3 3 3 0 0
0 0 0 0 0 3 3 0 0 0En este caso se han definido tres áreas diferentes mediante celdas con el mismo valor. El conjunto de comandos que permiten importar dicho archivo raster y extraer los elementos vectoriales poligonales son los siguientes:
r.in.gdal input=rasterAreas.arc output=rasterAreas
g.region rast=rasterAreas
r.to.vect in=rasterAreas out=vectorAreas type=area -s -vLa opción -s suaviza las esquinas. El módulo opera en la región actual.
Creando isolíneas desde superficies raster
El módulo r.contour genera líneas vectoriales desde una mapa raster que representa una superficie. Entre las opciones que se deben especificar está el intervalo de las líneas (p.ej. 10m), todos los otros valores pueden ser determinados automáticamente. Se va a utilizar el siguiente archivo con información raster que representan variaciones de un medición realiza en una superficie:
ncols 10
nrows 10
xllcorner 100
yllcorner 100
cellsize 10
NODATA_value 0
5 5 5 5 5 5 5 6 6 6
4 4 4 4 4 4 5 5 6 6
4 4 4 4 4 4 4 5 5 5
3 3 3 3 3 4 4 5 5 5
3 3 3 3 3 3 4 4 4 5
2 2 2 2 2 3 3 4 4 4
2 2 2 2 2 2 3 3 4 4
1 1 1 1 2 2 2 3 4 4
1 1 1 1 1 2 2 3 4 4
1 1 1 1 1 2 2 3 4 4Los valores van variando suavemente a través de la superficie. El conjunto de comandos que permiten importar y generar las curvas de nivel respectivas son los siguientes:
r.in.gdal input=rasterSuperficie.arc output=rasterSuperficie
g.region -p rast=rasterSuperficie
r.contour in=rasterSuperficie out=CurvasNivel step=2La topología es construída automáticamente.
Transformación de datos vectoriales a raster
El comando v.to.rast genera un mapa raster desde un mapa vectorial de entrada. La transformación de objetos vectoriales a celdas raster depende de la resolución actual. Establecer la resolución puede ser hecho con g.region usando el parámetro res (resolution). La opción col permite definir el nombre de un atributo que será utilizado para asignar la categoría a las celdas (debe ser numérico).
Por ejemplo, se puede tomar como base el archivo lines.txt que se muestra a continuación:
L 6 1
5958812 3400828
5958957 3400877
5959021 3400930
5959048 3400973
5959069 3401032
5958812 3400828
1 5
L 4 1
5959010 3401338
5959096 3401370
5959091 3401450
5959010 3401338
1 7El comando v.to.rast solo afecta los datos en la áreas dentro de las fronteras de la región actual. Antes de ejecutar v.to.rast el usuario debe asegurarse que la región actual esté correctamente definida.
Se debe especificar el parámetro use para indicar si se utilizará la categoría para identificar las celdas, o bien, alguna otra columna de la tabla de datos.
v.in.ascii input=lines.txt output=lines -n format=standard
g.region -p vect=lines res=10
v.to.rast in=lines out=raster use=catTambién se pueden generar coberturas raster a partir de polígonos. Por ejemplo, shora se puede utilizar el archivo areas.txt para realizar la conversión:
A 6 1
5958812 3400828
5958957 3400877
5959021 3400930
5959048 3400973
5959069 3401032
5958812 3400828
1 5
A 4 1
5959010 3401338
5959096 3401370
5959091 3401450
5959010 3401338
1 7Para convertir un mapa vectorial de polígonos a un mapa raster se aplica el mismo comando anterior:
v.in.ascii input=areas.txt output=areas -n format=standard
v.centroids input=areas output=vectAreas
g.region -p vect=vectAreas res=10
v.to.rast in=vectAreas out=rastAreas use=catEjercicios
- Convierta los mapas vectoriales elaborados en el Tutorial 1 a mapas raster. Recuerde que cada celda debe tomar su valor a partir de la categoría de los elementos vectorial. Utilice una resolución adecuada de forma que las celdas no son demasiado grandes ni demasiado pequeñas.
- Convierta los mapas vectoriales elaborados en el Tutorial 2 a mapas raster. Recuerde que cada celda debe tomar su valor a partir de la categoría de los elementos vectorial. Utilice una resolución adecuada de forma que las celdas no son demasiado grandes ni demasiado pequeñas.
- Convierta el mapa raster elaborado en el Tutorial 3 a archivos vectoriales. Recuerde que cada elemento vectorial debe tomar su valor a partir de la categoría de las celdas.