Instalar HEC-RAS en Slackware Linux

Instalar HEC-RAS en Slackware Linux:

Dado que no existe una versión de HEC-RAS para Linux (y en general otro sistema que no sea Windows) me di a la tarea de encontrar la forma de correr éste programa en Slackware, por que de otra forma tendría que volver a Windows solo por ésta aplicación, así que mi mejor opción fue correr la aplicación bajo Linux con wine.

Primero instalar wine, y sus dependencias que son fontforge y webcore-fonts y dado que la instalación la pensaba hacer desde los paquetes de SlackBuilds decidí usar la aplicación de sbopkg para automatizar el proceso y evitarme estar descargando, descomprimiendo, corriendo el SlackBuild y finalmente instalando todo a mano. Así que en emulador del terminal hice lo siguiente:

# sbopkg -i fontforge
# sbopkg -i webcore-fonts
# sbopkg -i wine

Con lo que los paquetes ya se encuentran instalados. Luego de un error al tratar de instalar el HEC-RAS me puse a buscar por la red y encontré el sitio de «el atareao« donde explica como instalar en Ubuntu y ví que se necesitaba tener winetricks para instalar dependencias perdidas de HEC-RAS, para instalarlo se requiere primero cabextract:

# sbopkg -i cabextract
# sbopkg -i winetricks

Una vez instalados como usuario normal hacer:

$ winecfg

Y configurar la máquina con Windows XP. A mi me salió un mensaje de que no encontraba el instalador Gecko (o algo así) y simplemente le di que lo instalara, no tardó mucho cuando se abrió la ventana del wine.

Luego, para evitar errores al momento de ejecutar la aplicación hay que hacer lo siguiente:

$ winetricks mfc40

Descargar el HEC-RAS desde http://www.hec.usace.army.mil/software/hec-ras/hecras-download.html y el archivo descargado se llamará HEC-RAS_410_Setup.exe el cual con un clic derecho desde Dolphin, abrirá el menú contextual en el que hay que seleccionar la opción «Abrir con Wine Cargador de programas de Windows» y abrirá el instalador.

Instalando HEC-RAS en Linux

Instalando HEC-RAS en Linux

Finalmente en el menú de KDE apareció una nueva categoría en las Aplicaciones llamada Wine con su logo característico, en el se encuentra una carpeta llamada Programas luego HEC y HEC-RAS, en esta última se contiene el acceso al programa. Al dar clic en el acceso directo se abre el HEC-RAS como si nada.

HEC-RAS corriendo en Slackware Linux

HEC-RAS corriendo en Slackware Linux

Ya teniendo el HEC-RAS estamos listos para hacer el trabajo sucio.

Saludos!

Instalar DraftSight en Slackware Linux

En mi necesidad de trabajar con archivos DWG, propios de AutoCAD, para editar algunos planos decidí instalar DraftSight para poder manipularlos. Me llevé una sorpresa al no encontrar algún lugar por la red en el que se describiera la forma de instalar este paquete en Slackware Linux, cuando usaba Arch había un paquete en los repositorios de AUR y eso me facilitó la existencia, sin embargo ahora en mi Slack tuve más limitantes.

Navegando por la red en busca de algo que me orientara encontré los pasos siguientes en Slacky.eu, los cuales explica la manera de instalar DraftSight desde los paquetes rpm:

Descargar el paquete Draftsight.rpm del sitio: http://www.3ds.com/products/draftsight/download-draftsight/.
Convertir el archivo rpm en un tgz con el comando rpm2tgz, para lo cual con el terminal se hace como sigue:

$ rpm2tgz DraftSight.rpm

Y cuando temine de ejcutarse aparecerá un mensaje como el siguiente:

Slackware package /home/eduardo/DraftSight.tgz created.

Instalar el paquete recien creado con:

# installpkg DraftSight.tgz

El paquete .tgz instala el programa en /opt/dassault-systemes/draftsight. El programa necesita la librería libaudio.so.2 la cual no se encuentra disponible en Slackware por lo que hay que descargar el archivo nas-libs en formato rpm, la versión es la que existe es para Fedora 13 de 32 bits y se descarga desde el sitio:

http://rpm.pbone.net/index.php3/stat/4/idpl/15863435/dir/fedora_13/com/nas-libs-1.9.2-1.fc13.i686.rpm.html

Lo cual creará un archivo llamado: nas-libs-1.9.2-1.fc13.i686.rpm el cual hay que extraer usando:

$ rpm2cpio nas-libs-1.9.2-1.fc13.i686.rpm | cpio -idmv

Se creará una carpeta llamada usr y dentro de ella habrá otras dos, de las cuales una se llama lib que contiene dos archivos. Entrar a esa carpeta y desde el terminal copiar el archivo libaudio.so.2.4 a la carpeta de librerías de DraftSight con el nombre de libaudio.so.2:

# cp libaudio.so.2.4 /opt/dassault-systemes/draftsight/lib/libaudio.so.2

Una vez hecho esto solo queda ejecutar el programa desde el terminal con:

/opt/dassault-systemes/draftsight/bin/DraftSight

y se ejecuta sin problemas.

DraftSight corriendo en Slackware

DraftSight corriendo en Slackware

Luego para facilitar el arranque del programa hay que crear un elemento en el menú de KDE con los iconos que se encuentran en /opt/dassault-systemes/draftsight/mime/pixmaps.

Saludos.

Fuentes:

http://www.slacky.eu/forum/viewtopic.php?f=2&t=33922
http://pintucoperu.wordpress.com/2009/03/27/extraer-el-contenido-de-un-archivo-rpm-sin-instalar-en-ubuntu/

Crear shape de lineas a partir de puntos en QuantumGIS

En la entrada pasada puse una forma de meter puntos desde un archivo de texto delimitado en QuantumGIS, ahora en complemento pongo el ejemplo de como hice una capa vectorial de lineas en formato shapefile a partir de los puntos existentes tomándolos como vértices. Una vez importados los puntos se tiene algo como esto:

Puntos base

Puntos base para archivo shape de lineas

Ahora lo que hay que hacer es crear la nueva capa vectorial de lineas, para ello se sigue la siguiente ruta en el menú:

Crear nueva capa shape

Crear nueva capa shape

Y aparece una ventana como la siguiente:

Propiedades del nuevo shape

Propiedades del nuevo shape

Hasta arriba hay que indicar que Tipo se shape se desea, en mi caso seleccione Línea y se nos permite crear los atributos para la Tabla de atributos de la nueva capa, solo hay que poner el nombre del atributo y en Tipo hay que seleccionar si será de texto, números enteros o decimales; en cualquier caso hay que poner la anchura y/o precisión que se necesite tener. Con ello ya se tiene la nueva capa vectorial creada.

Abrir la nueva capa, y asegurarse de que se tiene activa la barra de herramientas de digitalización, sino se tiene activada hay que dar clic derecho en una parte de la barra de herramientas vacía y marcar la opción Digitalización.

Mostrar la barra de digitalización

Mostrar la barra de digitalización

Una vez que se ha marcado la opción aparece la barra de herramientas de digitalización.

Barra de digitalización

Barra de digitalización

Para empezar a editar hay que marcar en el primer icono azul, que se llama Conmutar edición y que parece un plumón azul, para ello hay que asegurarse de tener seleccionada la capa correcta que se desea editar. Cuando se da clic en este icono se observa que algunos de los otros iconos se activan también. Este procedimiento es el equivalente a hacer Start / Stop editing en ArcView y ArcGIS, sin embargo me resultó más sencillo hacerlo en QGIS pues solo se edita la capa que se tiene seleccionada. Para guardar los cambios hechos en la edición se tiene el icono de al lado, que está representado con la típica imagen para guardar. Hay que tener cuidado de no confundir con el otro icono para guardar el proyecto.

Barra de digitalización activada

Barra de digitalización activada

Dado que el trabajo consiste en hacer lineas tomando como vertices los puntos existentes en otra capa, es altamente probable de que si se crean lineas «a ojo» no con el ratón no se marque exactamente el punto sino un lugar visiblemente cercano. Para evitar eso en ArcGIS se usa la herramienta Snapping en la que se seleccionan las capas que sirven de guía. En QGIS se tiene una herramienta que cumple la misma función y se llama Autoensamblado, para activarla hay que ir al menú Configuración > Opciones de autoensamblado:

Opciones de autoensamblado

Opciones de autoensamblado

Se abre una ventana como la siguiente en la que hay que marcar la capa que servirá como guía de autoensamblado (o snapping como se llama la herramienta en ArcGIS) esto en la primera columna, en la segunda columna llamada Modo hay que seleccionar hacia que se desea hacer el autoensamblado las opciones son: vértice, segmento o ambos. La tolerancia de la tercera columna, es la exactitud que se aceptará para hacer clic cerca del punto y que éste se seleccione automáticamente. En el caso de mi imagen si yo doy clic alrededor del punto dentro de una circunferencia de hasta tres unidades (también se pueden elegir pixeles) de radio, el programa toma exactamente las coordenadas del punto más cercano y se posiciona sobre dicho punto.

Ventana de opciones de autoensamblado

Ventana de opciones de autoensamblado

Ya que se ha configurado el autoensamblado, se procede a crear las líneas que van a componer el shape y para ello se utiliza la opción de Añadir linea la cual es el tercer icono de la barra de herramientas de digitalización.

Añadir linea

Añadir linea

Para la creación de las líneas simplemente hay que acercar el cursor al primer punto que será el inicio de la primera línea, al acercar el cursor al punto y dependiendo de la tolerancia que se le haya puesto al autoensamblado el cursor será «jalado» hasta las coordenadas exactas del punto más cercano. Para usar el punto se hace clic e inmediatamente se forma una linea desde ese punto hasta el cursor en movimiento y para completarla hay que seleccionar otro punto de la misma forma.

Dibujar lineas

Dibujar lineas

Finalmente se pueden ir creando varias lineas finalizando cada una con un doble clic y colocando un identificador y los atributos que se hayan agregado al inicio del proceso en la ventana que aparece.

Shape de lineas finalmente creado

Shape de lineas finalmente creado

Conclusión

El autoensamblado es una función muy útil para cuando se necesita tener exactitud en la creación de líneas que coincidan con ciertos vértices o puntos, para hacer un shape con base en un conjunto de puntos es necesario tener activada y correctamente configurada ésta función. Es muy usada por ejemplo para trazar un camino o ruta, límites de un terreno, un recorrido … etcétera, a partir de un conjunto de puntos tomados, por ejemplo con GPS.

Importar coordenadas x,y en QuantumGIS

Hasta ahora he trabajado poco con QuantumGIS (o QGIS), sin embargo cada vez que lo abro para hacer cualquier cosa por más sencilla que esta sea, siento que de verdad disfruto aprender a usarlo por el entorno tan amigable que ofrece y es por eso que no me dan ni un poquito de ganas de regresar a las aplicaciones privativas que usaba antes.

En esta entrada les presento una forma muy sencilla de importar coordenadas X,Y en un archivo de texto delimitado. Las coordenadas de mi ejemplo son UTM para la Zona 14 de México, en el estado de Michoacán, tomadas con un GPS Garmin en campo las cuales me enviaron en un archivo de hoja de cálculo en formato xlsx por correo electrónico.

Importando coordenadas XY

Primero hay que dar el formato necesario de tres columnas. En la primera se escribe el nombre de los puntos da cada par de coordenadas. En la segunda columna se colocan las coordenadas en X y en la tercera se colocan las correspondientes a Y. En la primera fila se pueden colocar títulos como «Nombre», «X» y «Y» para identificar correctamente a las tres columnas, es importante no dejar filas vacías.

Coordenadas X,Y

Coordenadas X,Y

Ya que se ha dado el formato correcto en la hoja de cálculo hay que guardar el archivo como Texto CVS para que automáticamente se obtenga un archivo de texto plano en el que los datos de cada una de las tres columnas esté separado por comas. Listo con ello ya se tiene el archivo preparado.

Ahora hay que abrir QuantumGIS y activar el complemento para importar texto delimitado, haciendo clic en el menú Complementos > Administrar complementos y en la ventana que se abre marcar la opción Añadir capa de texto delimitado, como se muestra en la figura.

Añadir capa de texto delimitado

Añadir capa de texto delimitado

Ya que se tiene activado el complemento, hay que buscar el mismo icono azul en la barra de herramientas para utilizarlo.

Icono del complemento

Icono del complemento

A continuación se abre una ventana en la que hay que buscar el archivo dando clic en Explorar… y llendo hasta donde éste se encuentre, hay que dar también un nombre a la capa que se agregará en QGIS y, si el archivo es CVS, seleccionar la opción Delimitadores seleccionados y marcar Coma, si se desea se pueden marcar más de una opción. En la parte baja de la ventana se mostrará una vista previa de las modificaciones que se hagan.

Importando el archivo de texto delimitado

Importando el archivo de texto delimitado

Finalmente los puntos aparecen dentro del QGIS como una nueva capa a la que pueden hacerse varias operaciones como por ejemplo ver su tabla de atributos dando clic en el icono correcto en la barra de herramientas.

Capa de puntos agregada y su tabla de atributos

Capa de puntos agregada y su tabla de atributos

Los datos se pueden exportar en varios formatos disponibles, si se desea por ejemplo exportar en formato shapefile solo hay que dar clic derecho en el nombre del layer mostrado en la parte de Capas del QGIS y seleccionar Guardar como…, luego en la ventana que aparece seleccionar el formato que para el ejemplo es Shape de ESRI y la ruta, luego escribir el nombre con el que se desea guardar el archivo y dar en Aceptar. Aparecerá un mensaje de confirmación cuando se haya terminado de guardar.

Guardando el archivo vectorial

Guardando el archivo vectorial

Una vez exportados e puede agregar la capa shape para verla en conjunto con los puntos agregados. Se puede notar que no hay diferencia alguna en cuanto a lo que ambas representan.

Capa vectorial shape agregada.

Capa vectorial shape agregada.

Saludos.

Delimitar una cuenca hidrológica con herramientas OpenSource en Linux

Hace ya unas semanas me propuse encontrar la forma de hacer mis trabajos que regularmente hago con software privativo como ArcGIS, con herramientas Open Source y hacer una pequeña demostración de las capacidades que tienen tales aplicaciones y de la facilidad de su uso. En esta entrada presento un método para delimitar una cuenca hidrológica (Cuenca de Metztitlán en el estado de Hidalgo, México) usando la distribución ArchLinux, con la potencia de análisis que tiene el software GRASS mediante la facilidad que proporciona QuantumGIS.

Instalando las herramientas

La instalación de las herramientas necesarias para ArchLinux ya se explicó en un post anterior y realmente es muy sencilla, así que solo me limitaré a decir que las herramientas usadas son:

  • ArchLinux
  • GRASS 6.4
  • QGIS 1.7 (con el plugin para usar GRASS)
  • Además se necesita el Modelo Digital de Elevaciones de INEGI

Descargando el Modelo Digital de Elevaciones (MDE)

El modelo digital de elevaciones que se utilizó se descargó del sitio de INEGI siguiendo la ruta Geografía > Datos de relieve > Continental > Continuo de elevaciones mexicano CEM (2.0) – descarga > Descargar donde se abrirá una página en la que se tienen que introducir las coordenadas geográficas de los límites del área de estudio donde se encuentra la cuenca por delimitar. También es posible descargar la carta a escala 1:50,000 en la que se encuentra la cuenca, si se conoce el nombre de la carta (para saber la nomenclatura de las cartas visitar este sitio), y una tercera opción es descargar todo el estado en el que está la cuenca. Si se va a utilizar la segunda o tercera opción hay que asegurarse de que la cuenca se encuentre solo en una carta o en un estado, en caso de que la cuenca atraviese dos o mas cartas se pueden descargar todas ellas, lo mismo para cuando atraviesa dos o mas estados. Sin embargo es bueno descargar solo la porción que contiene la cuenca con la primera opción de descarga, la única complicación es saber las coordenadas extremas de la misma.

Descarga del MDE del sitio de INEGI

Descarga del MDE del sitio de INEGI

Cuando ya se hizo la selección de la descarga hay que dar clic en Procesar selección y se abrirá una página con información de la selección que se hizo anteriormente con un archivo comprimido en formato ZIP que contiene el MDE, hay que descargarlo dando clic derecho y seleccionando Guardar enlace como…. Se extrae el comprimido en un directorio y se encontrarán varios archivos:

  • bil
  • blw
  • hdr
  • prj

El archivo BIL es el que se puede abrir con QGIS y el programa lo reconocerá.

Crear una localización y conjunto de mapas

Para manejar la información y trabajar con GRASS es necesario crear una base de datos en donde se tenga el conjunto de capas deseadas. Una base de datos de GRASS es simplemente un directorio en el que se guardan locations (localizaciones) y mapsets (conjuntos de mapas). Se pueden tener todas las bases de datos que se deseen, para usar GRASS generalmente se crea una llamada grassdata en la carpeta personal: home/usuario.

En este caso se creará la base de datos con el plugin de QGIS-GRASS el cual permite usar los módulos de GRASS desde el ambiente amigable de QGIS. Para activar el plugin se abre QGIS y se va al menú Complementos > Administrar complementos… en donde se tiene que marcar el que se llama GRASS, yo personalmente activo todos.

Activando el plugin de GRASS en QGIS

Activando el plugin de GRASS en QGIS

Cuando se tenga activado el complemento se puede seguir con la creación de la base de datos. Dar clic en el icono Añadir capa ráster en la barra de menú de QGIS y buscar el ráster que se descargó de INEGI y seleccionar el archivo en formato BIL y abrirlo. Una vez cargado, para crear la base de datos selecciona el menú Complementos > GRASS > Nuevo directorio de mapas y se abrirá una ventana que pedirá crear o seleccionar una carpeta para la base de datos.

Creando una nueva base de datos

Creando una nueva base de datos

Se pide elegir el directorio para crear la base de datos, como se mencionó anteriormente se elige crear un directorio llamado grassdata en la carpeta de usuario.

Elegir directorio para la base de datos

Elegir directorio para la base de datos

Se crea una nueva location para ello simplemente se le da el nombre deseado, en este caso se le dió el nombre del estado en el que se encuentra la mayor parte de la cuenca.

Crear nueva localización

Crear nueva localización

Se elije el sistema de coordenadas de referencia,las cuales pueden ser coordenadas geográficas o elegir un sistema de proyección, en la imagen se muestra que el seleccionado es el sistema de proyección UTM con elipsoide y datum WGS84 y Zona 14N, la elección depende de los objetivos del usuario. Para ayudar a elegir la zona UTM se puede hacer uso de GoogleEarth, marcando el menú Ver > Cuadrícula y luego en Herramientas > Opciones y marcar Universal Transverse of Mercator y se mostrarán las zonas UTM en el globo. Elegir la que corresponda.

Selección de la proyección

Selección de la proyección

A continuación se elige la región predeterminada para trabajar, en este caso elegí la que corresponde para México de la lista.

Región predeterminada de GRASS

Región predeterminada de GRASS

Finalmente aparece una ventana en la que se pide el nombre del mapset o conjunto de mapas (layers) del usuario, introducir el nombre deseado (p. ej. el nombre del usuario) y luego se pide confirmación de los datos. Al aceptar se establecerá automáticamente la nueva localización y conjunto de datos por defecto para QGIS.

Con estos sencillos pasos se tiene una nueva base de datos creada, al principio parece difícil pero es cuestión de acostumbrarse a la manera en que GRASS organiza las cosas. Usando QGIS el proceso de creación de la base de datos ha resultado un poco más fácil que si se hubiera utilizado solo GRASS.

Importar ráster a la base de datos

Ya que se ha creado la base de datos, se puede notar que está vacía puesto que la capa ráster en formato BIL agregada al principio, está en otro directorio fuera de la nueva base de datos. Para importar esta capa o layer a la base de datos se utiliza la opción: Complementos > GRASS > Abrir herramientas de GRASS y en la ventana que aparece escribir y seleccionar el módulo r.in.gdal.

Importar ráster GDAL

Importar ráster GDAL

En la ventana del módulo que aparece seleccionar el ráster a importar y darle un nombre de salida. También puede consultarse el manual en inglés en la pestaña Manual. Para procesar la imagen dar clic en Ejecutar, y al terminar el proceso en Ver salida para que se agregue la capa al QGIS automáticamente. La capa importada se agrega al mapset de la base de datos por defecto, es decir la última creada.

Ráster importado y agregado de manera automática

Ráster importado y agregado de manera automática

Delimitación de la cuenca

Para la delimitación de la cuenca se utiliza el módulo r.watershed, abriéndolo desde Complementos > GRASS > Abrir herramientas de GRASS y seleccionándolo en la lista de módulos, aparecerá una ventana en la que se introducen los datos para necesarios.

Módulo r.watershed ejecutándose

Módulo r.watershed ejecutándose

Se elije como entrada el ráster de elevaciones importado llamado «mdemetztitlan» el cual aparece mientras esté marcada la casilla para ser visto en la sección Capas, todo el análisis se basará en este ráster. Un dato importante es el tamaño mínimo para cada cuenca el cual se tiene que introducir en número de celdas, para éste ejemplo se colocó un tamaño mínimo de 111 celdas, haciendo el cálculo como sigue:

Resolución del ráster de INEGI (una celda): 30m x 30m = 900 m2 entonces para una hectárea que equivale a 10,000 m2 entre 900 m2 = 11.11 celdas / ha. Entonces si se desean delimitar cuencas con un tamaño mínimo de 10 ha se tendrá que introducir un valor de 111.11 celdas.

Se pide introducir los nombres de las capas de salidas que para este ejemplo son:

acumulacion
Mapa de salida: El valor absoluto de cada elemento en esta capa de salida es la cantidad de flujo superficial que atraviesa la celda. Este valor será el número de celdas terreno arriba, más una, si no se especifica el mapa de flujo superficial. Si se da el mapa de flujo superficial, el valor estará en las mismas unidades que flujo superficial. Los números negativos indican que las celdas posiblemente tienen escurrimiento superficial desde fuera de la región geográfica actual. Por lo tanto, en celdas con valores negativos no se puede calcular con precisión el escurrimiento superficial y la producción de sedimentos.

drenaje
Mapa de salida: la dirección de drenaje. Proporciona el «aspecto» de cada celda medido en sentido contrario a las manecillas del reloj desde el Este. Multiplicando los valores positivos por 45 dará la dirección en grados que el escurrimiento superficial viajará desde la celda. El valor 0 (cero) indica que la celda es una zona de depresión (definida por el mapa de entrada de depresiones). Los valores negativos indican que el escurrimiento superficial se sale de los límites de la región geográfica actual. El valor absoluto de estas celdas negativas indica la dirección del flujo.

corrientes
Mapa de salida: segmentos de la corriente. Los valores corresponden a los valores de las cuencas hidrográficas. Pueden ser vectorizados después de un adelgazamiento (r.thin) con r.to.vect.

cuencas
Mapa de salida: da una etiqueta única para cada cuenca hidrográfica. A cada cuenca se le asignará un único número par entero y positivo. Áreas a lo largo de los bordes no pueden ser lo suficientemente grandes como para crear una cuenca hidrográfica exterior. Valores de 0 indican que la celda no es parte de una cuenca hidrográfica completa en la región geográfica actual.

Dar clic en Ejecutar y al terminar el proceso dar clic en el botón Ver salida para agregar automáticamente el resultado a QGIS. De manera adicional se muestra el comando que se ejecuta en el shell de GRASS, el cual se podría ejecutar si únicamente se usara ésta aplicación, en QGIS se pone con una finalidad informativa:

r.watershed elevation=mdemetztitlan@Eduardo threshold=111 accumulation=acumulacion drainage=drenaje stream=corrientes basin=cuencas

Resultando:


SECTION 1a (of 5): Initiating Memory.
SECTION 1b (of 5): Determining Offmap Flow.
SECTION 2: A * Search.
SECTION 3: Accumulating Surface Flow with SFD.
SECTION 4: Watershed determination.
SECTION 5: Closing Maps.
Finalizado correctamente

En la corrida anterior se usó un valor mínimo de cuencas muy pequeño y por ello como resultado se obtuvo una capa con muchas cuencas pequeñas, para delimitar la cuenca «principal» es conveniente entonces incrementar este valor y volver a ejecutar el módulo. Ahora para delimitar la cuenca general se usa un tamaño mínimo de cuencas de 10,000 ha ejecutando el módulo con un área de 111111 celdas se obtiene un resultado como el mostrado en la imagen:

Delimitación de la cuenca de Metztitlán

Delimitación de la cuenca de Metztitlán

Clic en el botón Ejecutar y cuando termine en el botón Ver salida para agregar automáticamente el resultado a QGIS. El código de la instrucción ejecutada en GRASS ahora es:

r.watershed elevation=mdemetztitlan@Eduardo threshold=111111 accumulation=acumulacion2 drainage=drenaje2 stream=corrientes2 basin=cuenca2

El resultado que se despliega es:

SECTION 1a (of 5): Initiating Memory.
SECTION 1b (of 5): Determining Offmap Flow.
SECTION 2: A * Search.
SECTION 3: Accumulating Surface Flow with SFD.
SECTION 4: Watershed determination.
SECTION 5: Closing Maps.

Finalizado correctamente

De esta forma se obtuvieron dos resultados, por una parte, al ejecutar el módulo con un tamaño mínimo de cuencas de 10 ha, se obtuvieron cuencas con una superficie pequeña y una red de corrientes detallada que más adelante servirá para generar una capa vectorial de escurrimientos superficiales, además de la capa de drenaje y acumulacion. Y por otra parte se obtuvo una delimitación general de la cuenca usando un tamaño mínimo de 10,000 ha, en este caso se nombraron las salidas con los mismos nombres que la anterior pero agregando un «2» al final quedando acumulacion2, corrientes2, cuenca2 y drenaje2.

Ahora para manejar de una forma más práctica la delimitación de la cuenca, se convierte la capa llamada cuenca2, de ráster a vectorial. Para hacer la conversión hay que abrir las herramientas de GRASS y hacer clic en la pestaña Lista de módulos en la que hay que seleccionar r.to.vect.area el cual sirve para convertir un archivo ráster a vectorial (polígonos).

Conversión de ráster a vectorial

Conversión de ráster a vectorial

El código de la instrucción es:

r.to.vect input=cuenca2@Eduardo output=cuencametztitlan feature=area -s

Se obtiene la siguiente información al ejecutar el módulo, notar que salen un par de advertencias pero nada de cuidado por lo pronto:

!Default driver / database set to:
!driver: dbf
!database: $GISDBASE/$LOCATION_NAME/$MAPSET/dbf/

Extracting areas...
Building topology for vector map ...
Registering primitives...
2 primitives registered
4192 vertices registered
Building areas...
1 areas built
1 isles built
Attaching islands...
Attaching centroids...
Number of nodes: 2
Number of primitives: 2
Number of points: 0
Number of lines: 0
Number of boundaries: 1
Number of centroids: 1
Number of areas: 1
Number of isles: 1
r.to.vect complete.
Finalizado correctamente

Al terminar la ejecución de la instrucción, se tiene la delimitación de la cuenca en vectorial. Resulta más práctico manejar áreas en formato vectorial como polígono que en vez de un ráster, además en mi opinión se le puede dar más presentación a un polígono.

Para terminar hay que hacer un sombreado de las elevaciones, conocido como hillshade que tiene fines estéticos. Para ello usar el módulo llamado r.shaded.relief que requiere lo siguiente: el modelo de elevaciones, en este caso mdemetztitlan; el nombre de la capa de salida, yo lo llamé sombreado; la altitud del sol en grados por arriba del horizonte, el azimut del sol en grados al Este del Norte y la exageración, los cuales dejé lo que pone por defecto. Dar en Ejecutar y al terminar en el botón Ver salida para agregar automáticamente la capa resultante a QGIS.

Creando el sombreado

Creando el sombreado

Listo ahora agregar un poco de transparencia para obtener el resultado final como se muestra en la imagen.

Delimitación de la Cuenca de Metztitlán

Delimitación de la Cuenca de Metztitlán

Generar corrientes

Para generar corrientes superficiales se utiliza la capa corrientes generada al principio del análisis puesto que la red es mucho más detallada que corrientes2, esta capa es ráster y hay que convertirla a vectorial. Antes de ejecutar la conversión es necesario procesarla por medio de la herramienta r.thin como se muestra en la imagen:

Adelgazando la capa ráster con r.thin

Adelgazando la capa ráster con r.thin

La capa de salida se llama rios misma que se convierte a vectorial con el módulo r.to.vect.line de GRASS. El procedimiento únicamente pide el nombre de la capa de salida que en este ejemplo de llama escurrimientos.

Generando escurrimientos superficiales

Generando escurrimientos superficiales

Cuando termine, se tendrán escurrimientos generados con un área de captación de 10 ha, para obtener menor o mayor detalle se puede repetir el proceso, cambiando el área mínima de la cuenca por generar.

Corrientes generadas

Corrientes generadas

Finalmente resta guardar el proyecto llendo al menú Archivo > Guardar proyecto como … y guardarlo en el directorio y con el nombre que se desee.

Conclusiones

Con este ejemplo pretendí hacer una pequeña demostración de la eficiencia y calidad que tienen las herramientas Open Source que existen para el manejo de sistemas de información geográfica, con las que se pueden obtener muy buenos resultados.

En mi opinión, en este pequeño «artículo» se pudo notar la potencia que tiene la aplicación GRASS por medio de sus módulos que hacen una gran cantidad de tareas y que además las hacen bien, sin embargo el uso de este paquete podría resultar complicado para usuarios principiantes que vienen de usar software privativo, por ello una buena opción es manejar los módulos de GRASS por medio de QGIS para facilitar la tarea.

Por último resta decir como profesionistas no podemos quejarnos de las herramientas libres que se ofrecen puesto que resultan bastante buenas, incluso algunas son mucho mejores que las soluciones de software privativo además, en mi opinión personal, académicamente es más conveniente usar aplicaciones en las que se pueda tener acceso al código fuente porque se puede saber exactamente que algoritmos de cálculo o modelación se usan, aparte de la ventaja de no tener que pagar costosas licencias por usar determinados paquetes de software.

Delimitación final de la Cuenca de Metztitlán

Delimitación final de la Cuenca de Metztitlán

¡Saludos y espero les sirva!

Fuentes:

http://earth.unibuc.ro/tutoriale/bazin-hidrografic-prin-QGIS-GRASS/
Manual de GRASS

NOTA: La cuenca no está completa pero sirve como ejemplo para la realización de la delimitación.

DraftSight: aplicación CAD «gratis» para GNU/Linux

En mi búsqueda de software libre para usar como alternativa a los programas con que me educaron en la carrera encontre QuantumGIS y GRASS como alternativa al ArcView / ArcGIS para trabajar con sistemas de información geográfica. LibreOffice (o también OpenOffice.org) para usar en vez de Microsoft Office, sin embargo esta alternativa me ha sido poco útil debido a cuestiones compatibilidad en el trabajo en equipo. Una alternativa importante que no había encontrado hasta ahora es la del gigante del diseño asistido por computadora, el AutoCAD. Antes había probado QCad y no había quedado muy contento con su desempeño, debido a la incompatibilidad con archivos en formato DWG que si bien no son de mi preferencia, es el formato que usan mis compañeros de trabajo. Es difícil dejar de usar aplicaciones privativas de un día para otro, sobre todo cuando se trabaja en equipo.

DraftSight no es OpenSource, pero es freeware, es decir un programa gratuito, que requiere de una activación por e-mail para poder usarlo. Trabaja con 2D y según su sitio oficial está en versión Beta para GNU/Linux, tiene una interfaz similar al AutoCAD y tiene la capacidad de abrir archivos en formato DWG, DXF y DWT; y guardar en diferentes versiones de DWG y DXF, así como también en DWT. Es de las mejores opciones para el AutoCAD que he visto que corren en Linux. Para instalar la aplicación en ArchLinux hay que hacer uso de yaourt puesto que se encuentra como parte de AUR y basta con escribir lo siguiente en el terminal y seguir las instrucciones para tenerlo en nuestro sistema:

$ yaourt -S draftsight

A continuación presento un plano hecho originalmente en AutoCAD 2010 con compatibilidad para la versión 2007 creado en un sistema Windows Vista, que se abre a la perfección con DraftSight. A mí personalmente me pareció impresionante el grado de compatibilidad que existe, hay algunos de talles en cuanto a las fuentes pero son mínimos.

DraftSight ejecutándose en Linux

DraftSight ejecutándose en Linux

Por default en mi sistema se instala el español, tiene la capacidad de ejecutar instrucciones de 2D como dibujar puntos, líneas, polilíneas y polígonos; hacer sombreados, manejar layers y dimensiones, entre lo que he hecho, aunque sin duda tiene muchas más opciones que ofrecer y por lo menos para mí sirve para «hacer el trabajo». Lástima que no es OpenSource, sería una herramienta interesante. Personalmente lo recomiendo para cuando ya no se tienen opciones libres por probar.