Importar archivo KML en QGIS (como SHP)

Para importar un acrchivo KML creado por  GoogleEarth a QGIS hay que hacer unos trucos muy sencillos, dependiendo de lo que se desee hacer, en este ejemplo muestro como yo lo hago, para ello estoy usando QGIS 1.7.4 Wroclaw con GRASS 6.4 en Slackware Linux 14.0 instalados desde SlackBuilds con todas las dependencias.

Primero se crea el archivo desde GoogleEarth, en mi caso es un archivo de rutas (canales) digitalizadas y guardadas como KML desde el mismo programa. Es importante mencionar que puede haber problemas con el archivo generado por GoogleEarth si la versión de la aplicación es muy vieja por lo que se recomienda usar una versión reciente.

Digitalizando en GoogleEarth

Además hay que asegurarse de guardar el archivo en formato KML, pues por omisión el programa lo guardará en un KMZ, éste último no es más que un archivo KML comprimido por lo tanto con descomprimirlo bastará para tener un KML que regularmente se llama doc.kml. En Windows puede que sea necesario cambiar la extensión del archivo por ZIP (o alguna otra) antes de realizar la descompresión. En Linux hay muchas herramientas para realizar esto, por mi parte elegí hacerlo con Ark de KDE (incluye unrar y p7zip):

Extraer archivo KMZ

Ya que se tiene este archivo se puede agregar directamente el KML mediante el menú de QGIS Capa > Añadir capa vectorial y seleccionando en la ventana el filtro para Keyhole Markup Language [KML] [OGR].

Abrir KML

Otra forma de agregar los datos es haciendo una conversión de KML a SHP. ¿Por qué? bueno por cuestiones de edición, para mí es más fácil y cómodo editar un shapefile y los KML son más bien para visualizar información, además un SHP es el estándar de facto para representar vectoriales así que bien puedo manejar mis datos en diferentes programas y sistemas operativos.

Para hacer la conversión basta hacer en el terminal:

$ ogr2ogr -f 'ESRI Shapefile' Canales.shp doc.kml

Conversion de KML a SHP

Ahora si se puede agregar y editar la capa más cómodamente.

Datos en QGIS

NOTA: Al parecer QGIS es capaz de reconocer archivos KMZ de manera automática siempre y cuando se tenga soporte para el Google LIBKML en GDAL (1.9). Si se tiene entonces al importar una capa solo hay que seleccionar Todos los archivos (*) y abrir el KMZ. Si no se tiene saldrá un error. Para checar si se tiene este soporte (creo que debería poderse agregar durante la compilación, la verdad lo ignoro) en la consola de Python de QGIS ejecutar:

import osgeo.ogr
print 'Has LIBKML ogr driver: ' + str(osgeo.ogr.GetDriverByName('LIBKML') is not None)

Fuentes:

Hilo en stackexchange

Anuncios

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.

Instalando GRASS y QuantumGIS en Arch Linux

Bueno una de las razones por las que decidí dejar Slackware y usar una distribución que tuviera resolución de paquetes al momento de instalar aplicaciones fue por que frecuentemente tenía que estar instalando aplicaciones “robustas” atascadas de dependencias, muchas opcionales pero útiles al final, como GRASS y QuantumGIS (QGIS). Hace unas semanas instalé ambas aplicaciones en ArchLinux y el proceso fue sorprendentemente rápido para mi.

Primero hay que instalar GRASS puesto que yo lo utilizo como un complemento de QuantumGIS por medio del plugin grass-qgis. Para instalar GRASS solo hay que utilizar pacman de la manera siguiente:

# pacman -S grass

Lo cual instalará la versión 6.4 de GRASS.

GRASS instalado en GNU/Linux

GRASS instalado en GNU/Linux

Para QuantumGIS se utliza yaourt puesto que los repositorios están en AUR, pero antes hay que resolver el problema de una dependencia llamada qwt ya que QGIS funciona con la versión 5 y en mi sistema está la versión 6.
Primero eliminar la versión instalada:

# pacman -Rn qwt

Descargar el tarball de aquí dando clic en el link “tarball” y guardándolo, el archivo se llamará qwt5.tar.gz luego hay que descomprimirlo y se crea una carpeta llamada qwt5, esto creará dos archivos dentro de la carpeta y digamos que esos solo son archivos de configuración (ignoro su nombre correcto) lo que significa que no son las fuentes del programa. Entonces hay que descargar las fuentes del programa las cuales vienen en un archivo llamado qwt-5.2.2.tar.bz2, yo las encontré en este sitio, aunque puede que haya otros más convenientes.

Copiar el tarball con las fuentes (el archivo llamado qwt-5.2.2.tar.bz2) al directorio qtw5 creado y se tendrán tres archivos:

PKGBUILD
qwtconfigarchlinux.pri
qwt-5.2.2.tar.bz2

Abrir el terminal y llegar hasta ese directorio con el comando “cd”, en mi caso es así:

$ cd /home/eduardo/descargas/qwt5

Luego ejecutar:

$ makepkg -s

Lo cual creará un archivo con extensión pkg.tar.xz que hay que instalar:

$ sudo pacman -U qwt5-5.2.2-1-i686.pkg.tar.xz

Una vez hecho esto se procede con la instalación de qgis:

$ yaourt -S qgis

QuantumGIS instalado en ArchLinux

QuantumGIS instalado en ArchLinux

Listo ya se tiene instalado QuantumGIS en nuestro sistema.
Un saludo.

Renovando GRASS 6.4 y QGIS 1.7

Bueno, anteriormente ya había escrito algunas entradas de como instalar GRASS 6.4 y QGIS 1.6, y que traté de instalar ambos para usar GRASS con el GUI de QuantumGIS ya que es más amigable y esto me sirve a mi para difundir el uso de Linux en mi universidad donde trabajo. La situación es que los profesores estan completamente acostumbrados al uso de programas como AutoCAD, ArcView, ArcGIS y por supuesto MS Office y Windows, algo gracioso es que las maquinas de los laboratotios de cómputo siempre están llenas de virus y tienen que estar formateando a cada rato, incluso los cursos de programación son con Delphi. Lo anterior no es malo, yo recibí esa preparación durante mi carrera y gracias a ello tengo trabajo, pero mi misión es compartir y dar a conocer entre mis compañeros de trabajo, con alumnos y profesores que existen alternativas a ese tipo de software y ser parte del pequeño grupo de profesores y alumnos del departamento que usan Linux (principalmente Ubuntu) y demás software libre como OpenOffice.org o LibreOffice, de mi parte espero poder difundir el uso de programas tipo CAD en general, QGIS, GRASS y programación en Python. Ok, después de todo el panorama general voy al grano.

Resulta que hace tiempo por razones que aún no puedo entender debido a mis pocos conocimientos en Linux, la aplicación de GRASS dejó de funcionar en mi sistema y no supe como resolver el problema, así que me volví a instalar todo desde cero.

Para activar el uso de GRASS en QGIS por medio del respectivo plugin, tuve que realizar lo siguiente aunque no se si sea exactamente lo que se requiere pero a mi me funcionó (jeje):

La instalación de GRASS la realicé como en mi post anterior y después ejecuté lo siguiente como root, para hacer que las librerías de GRASS queden disponibles para todo el sistema:

# echo /opt/grass/lib >> /etc/ld.so.conf && ldconfig

GRASS 6.4

Ahora viene la instalación de QGIS, la cual realicé como en éste otro post pero descargando los paquetes para la versión 1.7 de SlackBuilds.org. Antes de ejecutar el SlackBuild lo abrí con un editor de texto y lo modifiqué remplazando la siguiente línea:

WITHGRASS=""

por esta:

WITHGRASS="/opt"

Para que el paquete sea creado con GRASS habilitado, /opt es el directorio en donde yo instalé la aplicación GRASS si tú lo instalaste en otro directorio como por ejemplo /usr entonces hay que poner WITHGRASS="/usr" o el directorio que corresponda. Luego hay que ejecutar el SlackBuild e instalar la aplicación con el comando installpkg cuando se haya creado el paquete.

QGIS 1.7 con GRASS plugin

Saludos

Instalar Quantum GIS en slackware

Ahora me dispuse a instalar Quantum GIS para tener un ambiente mas amigable que el ofrecido por GRASS al hacer mis proyectos. La instalación la realicé con los SlackBuilds que se encuentran en el sitio de http://slackbuilds.org/repository/13.37/academic/qgis/, primero verifiqué que mi sistema tuviera todos los requerimientos que pide:

qgis (1.6.0)

Quantum GIS (QGIS) es un Sistema de Información Geográfica que corre en Linux, Unix, Mac OSX y Windows. QGIS permite visualizar y crear datos geográficos en la computadora. Soporta muchos de los formatos de datos espaciales (como ESRI ShapeFile, geotiff).

Requiere

  • proj (Instalado con GRASS)
  • geos (Instalado con GRASS)
  • gdal (Instalado con GRASS)
  • gsl
  • numpy (Instalado con GRASS)
  • qwt

Las dependencias opcionales son:

  • grass (Instalado)
  • postgresql (Instalado con GRASS)
  • postgis
  • gpsbabel

Ya que algunas de las dependencias se encuentran instaladas procede instalar las faltantes:

gsl (1.15)

La librería científica GNU (GNU Scientific Library o GSL) es una librería numérica para programadores C y C++. Es software libre bajo la GNU General Public License.
La librería proporciona un amplio rango de rutinas matemáticas tales como generadores numéricos aleatorios, funciones especiales entre otras. Hay cerca de 1000 funciones en total con un extenso catálogo de prueba.

Para instalarlo, extraer el archivo gsl.tar.gz con Ark en una nueva carpeta haciendo click derecho y seleccionar la opción “Extraer el archivo comprimido aquí, autodetectar carpeta”, una vez que se ha finalizado la extracción copiar el archivo con las fuentes del programa gsl-1.15.tar.gz y el otro con extensión asc llamado gsl.tar.gz.asc a la nueva carpeta, entrar y estando dentro de la misma ejecutar desde el terminal:

# ./gsl.SlackBuild

Terminado esto, realizar la instalación del paquete:

# installpkg /tmp/gsl-1.15-i486-1_SBo.tgz

qwt (5.1.1)

Qwt es una extensión para la librería Qt GUI de Troll Tech AS. La librería Qwt contiene widgets y componentes que son primariamente usados para propósitos técnicos y científicos. Incluye un widget de dibujo en 2-D, diferentes clases de deslizadores y mucho más.

Para instalarlo, seguí practicamente el mismo procedimeinto que para gsl que consistió en extraer el archivo qwt.tar.gz con Ark en una nueva carpeta haciendo click derecho y seleccionar la opción “Extraer el archivo comprimido aquí, autodetectar carpeta”, una vez que se ha finalizado la extracción copiar el archivo con las fuentes del programa qwt-5.1.1.tar.bz2 y el otro con extensión asc llamado qwt.tar.gz.asc a la nueva carpeta, entrar y estando dentro de la misma ejecutar desde el terminal:

# ./qwt.SlackBuild

Terminado esto, realizar la instalación del paquete:

# installpkg /tmp/qwt-5.1.1-i486-3_SBo.tgz

postgis (1.5.2)

PostGIS agrega soporte para objetos geográficos a la base de datos de PostgreSQL. En efecto, PostGIS “habilita espacialmente” al servidor PostgreSQL, permitiéndole ser usado como un base de datos espacial para sistemas de información geográfica (SIG), tanto como la SDE de ESRI o la extensión espacial de Oracle.

PostGIS requiere PostgreSQL, proj y geos, los cuales ya se han instalado.
El procedimeinto que para instalar postgis con los SlackBuilds es realmente sencillo y prácticamente el mismo que los anteriores, primero extraer el archivo postgis.tar.gz con Ark en una nueva carpeta haciendo click derecho y seleccionar la opción “Extraer el archivo comprimido aquí, autodetectar carpeta”, una vez que se ha finalizado la extracción copiar el archivo con las fuentes del programa postgis-1.5.2.tar.gz y el otro con extensión asc llamado postgis.tar.gz.asc a la nueva carpeta, entrar y estando dentro de la misma ejecutar desde el terminal:

# ./postgis.SlackBuild

Terminado esto, realizar la instalación del paquete:

# installpkg /tmp/postgis-1.5.2-i486-1_SBo.tgz

gpsbabel (1.3.3)

GPSBabel convierte waypoints, tracks, y rutas de un formato a otro, si ese formato es un formato de mapeo común como Delorme, Streets y Trips, o incluso de un receptor serial o USB para cargar o descargar datos de un dispositivo GPS como los de Garmin y Magellan. Igual que en la Torre de Babel, con los autores de varios programas que se nos han impuesto para manipular datos GPS, nos regresa la habilidad de mover libremente nuestros propios datos de waypoints entre los programas y el hardware que elijamos.
No convierte, transfiere, envía, o manipula mapas. Procesa datos que pueden (o no) colocarse en mapas, tales como waypoints, tracks, y rutas.

El procedimiento para instalarlo es practicamente el mismo, solo que tuve la dificultad de no encontrar las fuentes en el sitio de SlackBuilds así que las descargué de:

http://www.gpsbabel.org/download.html

Y para instalarlo hubo que modificar SlackBuild y configurarlo para la versión nueva 1.4.2 (la más reciente al momento), abriendolo con Kwrite (o cualquier otro editor)  buscar la siguiente línea y cambiar el 1.3.3 por 1.4.2:

PRGNAM=gpsbabel
VERSION=1.4.2
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

Guardar y ejecutarlo desde el terminal:

# ./gpsbabel.SlackBuild

Terminado esto, realizar la instalación del paquete:

# installpkg /tmp/gpsbabel-1.4.2-i486-1_SBo.tgz

Ya que se tienen instaladas todas las dependencias descargar el SlackBuild y las fuentes, crear el paquete extrayendo el archivo qgis.tar.gz con Ark y ejecutando el script desde la carpeta que se crea para después instalar el paquete.

En el terminal se crea el paquete:

# ./qgis.SlackBuild

Y después se instala:

# installpkg /tmp/qgis-1.6.0-i486-1_SBo.tgz

Ahora ya se tiene instalado, Quantum GIS. Resta abrirlo y activar todos los plugins con lo cual se tendría una vista como la mía:

Instalar GRASS en Slackware

Ya teniendo listo GoogleEarth corriendo en Slackware un paquete importante para el procesamiento de imágenes, generación de mapas y manejo de sistemas de información geográfica (SIG) en general es GRASS, que en mi opinión es de las mejores opciones para SIG en ambientes Linux. Ya teniendo instalado GRASS me podré ir separando de ArcGIS como mi principal plataforma de trabajo, aunque se que no funcinan exactamente igual es una muy buena alternativa.

Para instalar GRASS lo primero es descargar el paquete de http://slackbuilds.org/repository/13.37/academic/grass/ en donde se puede ver que primero hay que tener instalados los siguientes paquetes:

  • proj
  • gdal
  • numpy
  • wxPython

Y opcionalmente se pueden activar:

  • blas
  • lapack
  • geos
  • ffmpeg
  • mysql
  • postgresql
  • sqlite

Así que hay que instalar las dependencias primero, por suerte… ¡ya tengo wxPython instalado!.

Instalando proj

proj es una función de filtrado estándar de UNIX la cual convierte coordenadas geográficas de longitud y latitud en coordenadas cartesianas por medio de una amplia variedad de funciones cartográficas de proyección.

Primero se descarga proj de http://slackbuilds.org/repository/13.37/system/proj/ y se instala el SlackBuild, primero de extrae y se mueven las fuentes a la carpeta creada:
$ tar -xvzf proj.tar.gz
proj/
proj/proj.SlackBuild
proj/README
proj/slack-desc
proj/proj.info
$ mv proj-4.6.0.tar.gz proj
$ mv proj.tar.gz proj
$ mv proj.tar.gz.asc proj

Y entrar al directorio creado para ejecutar el SlackBuild y finalmente instalar el paquete:
# ./proj.SlackBuild
# installpkg /tmp/proj-4.6.0-i486-1_SBo.tgz

Y ya se tiene proj instalado.
Ahora seguir con gdal…

Instalar gdal

GDAL es una librería para leer y escribir datos geoespaciales en formatos raster, y se distribuye bajo una licencia estilo Open Source X / MIT por la Open Source Geospatial Foundation.
Se descarga de http://slackbuilds.org/repository/13.37/libraries/gdal/.
Luego se extrae gdal, copiar las fuentes dentro de la carpeta creada y entrar a la carpeta, estando dentro se ejecuta el SlackBuild y se instala el paquete tgz:

$ tar -xvzf gdal.tar.gz
$ cd gdal/
# ./gdal.SlackBuild
# installpkg /tmp/gdal-1.8.0-i486-1_SBo.tgz

Instalar numpy

Para instalar numpy se descarga el paquete de http://slackbuilds.org/repository/13.37/development/numpy/ y se ejecutan los comandos siguientes para descomprimir y ejecutar el SlackBuild y finalmente instalar el paquete tgz.

$ tar -xvzf numpy.tar.gz
# ./numpy.SlackBuild
# installpkg /tmp/numpy-1.4.1-i486-1_SBo.tgz

No tuve la necesidad de instalar wxPython puesto que lo había instalado anteriormente. Finalmente ya que se tienen instalados los requerimientos necesarios, me di a la tarea de instalar también las dependencias opcionales:

Instalar blas

Hay que hacer lo siguiente para instalar blas.

$ tar -xvzf blas.tar.gz
Mover las fuentes al nuevo directorio, entrar y ejecutar el SlackBuild
# ./blas.SlackBuild
# installpkg /tmp/blas-20110419-i486-1_SBo.tgz

Instalar lapack

Hay que hacer lo siguiente para instalar lapack.

$ tar -xvzf lapack.tar.gz
Mover las fuentes al nuevo directorio, entrar y ejecutar el SlackBuild
# ./lapack.SlackBuild
# installpkg /tmp/lapack-3.3.1-i486-1_SBo.tgz

Instalar geos

Hay que hacer lo siguiente para instalar geos.

$ tar -xvzf geos.tar.gz
Mover las fuentes al nuevo directorio, entrar y ejecutar el SlackBuild
# ./geos.SlackBuild
# installpkg /tmp/geos-3.2.2-i486-1_SBo.tgz

Instalar postgresql

Hay que hacer lo siguiente para instalar postgresql. Primero agregar un grupo y un usuario para poder ejecutarlo:

groupadd -g 209 postgres
useradd -u 209 -g 209 -d /var/lib/pgsql postgres

Luego proceder con la instalación:
$ tar -xvzf postgresql.tar.gz
Mover las fuentes al nuevo directorio, entrar y ejecutar el SlackBuild
# ./postgresql.SlackBuild
# installpkg /tmp/postgresql-9.0.3-i486-1_SBo.tgz

Instalar sqlite2

Hay que hacer lo siguiente para instalar sqlite2.

$ tar -xvzf sqlite2.tar.gz
Mover las fuentes al nuevo directorio, entrar y ejecutar el SlackBuild
# ./sqlite2.SlackBuild
# installpkg /tmp/sqlite2-2.8.17_6-i486-1_SBo.tgz

FINALMENTE GRASS
Finalmente instalar GRASS
$ tar -xvzf grass.tar.gz

Después hay que mover las fuentes al directorio creado y entrar al mismo, para después ejecutar el SlackBuild activando las opciones como se muestra:
# ENABLE="blas,lapack,geos,mysql,postgresql,sqlite" ./grass.SlackBuild

Cuando se ha creado el tgz hay que instalarlo con installpkg desde el directorio tmp y ya se tiene el GRASS listo para trabajar.