Archivo del Autor: tolanss

Cómo instalar la toolbox de LAStools en QGIS


El conjunto de herramientas LAStools para procesar datos LiDAR están disponibles en el software propiertario ArcGIS desde abril de 2012, pero no ha sido hasta el FOSS4G13 de Nottingham que no han estado disponibles para QGIS. Las herramientas han sido testadas en QGIS 1.8.0-Lisboa y 2.0.1-Dufour. En esta entrada os enseñamos el modo de installar LAStools en QGIS y, básicamente, es la traducción y adaptación del manual de instalación que se encuentra en el blog de Martin Isenburg aka rapidlasso.

Nos centraremos en instalar las herramientas en la versión de QGIS 2.0.1-Dufour, por lo que lo primero que necesitamos es descargar e installar dicha versión. A partir de entonces, seguiremos las siguientes instrucciones:

  1. Si tienes abierto QGIS, ciérralo

  2. Borra la carpeta donde está contenido el plugin de LiDAR en sextante. La ruta para los usuarios de Windows es:

    "C:\Program Files\QGIS Dufour\apps\qgis\python\plugins\processing\lidar"

    La ruta para los usuarios de GNU/Linux es

    ~/.qgis/python/plugins/processing/lidar
  3. Copia la carpeta lidar que está en este archivo comprimido en el lugar de la carpeta borrada.

    Nota: Los usuarios de QGIS 1.8.0-Lisboa tienen que sustituir la carpeta lidar dentro de:

    "C:\Program Files\QGIS Dufour\apps\qgis\python\plugins\sextante\lidar"

    o si utilizas GNU/Linux, dentro de:

    ~/.qgis/python/plugins/sextante/lidar

    por la que se encuentra en este otro archivo comprimido.

  4. Descarga la versión más reciente de las LAStools que se encuentra en lastools.zip.

  5. Extrae la carpeta lastools. Si estás usando Windows, procura no estraerlo en ninguna ruta con espacios, si estás en GNU/Linux tendrás que compilar las herramientas.

  6. Inicia QGIS, y si encuentras algún error cuando se carge el script de Python, repite los pasos de 1 a 3 con más cuidado ;)

  7. Habilita el toolbox que se encuentra bajo el menú procesing como se muestra en la siguiente figura:

    images/qgis_2-0_menu_toolbox.png

  8. Cambia el toolbox de Simplified Interface a Advanced Interface, imágenes de la izquierda y derecha respectivamente:

    http://geomaticblog.files.wordpress.com/2013/10/qgis_2-0_simplified.png?w=625   http://geomaticblog.files.wordpress.com/2013/10/qgis_2-0_advanced.png?w=625

  9. Abre el submenú Options and configurations de la pestaña Processing como se muestra a continuación:

    http://geomaticblog.files.wordpress.com/2013/10/qgis_2-0_opts-config.png?w=625

  10. Activa la casilla Activate que se encuentra en Providers -> Tools for LiDAR data como se muestra en la siguiente figura, e introduce la ruta de la carpeta donde estén alojadas las LAStools en LAStools folder:

    http://geomaticblog.files.wordpress.com/2013/10/qgis_2-0_activate.png?w=625

  11. Ahora deberías ver el conjunto de herramientas Tools for LiDAR data en el toolbox y todas las LAStools como en esta figura:

    http://geomaticblog.files.wordpress.com/2013/10/qgis_2-0_lasinfo.png?w=625

  12. Inicia cualquier comando mediante un doble click y rellena las opciones. En la siguiente figura se muestra la interfaz de lasinfo.

    http://geomaticblog.files.wordpress.com/2013/10/qgis_2-0_lasinfo_interface.png?w=625

Tened en cuenta que, al distrubuirse el código de manera libre sólo de unas pocas herramientas, los usuarios de GNU/Linux tendrán menos funcionalidades disponibles. No así los usuarios de Windows, cuyas herramientas se distribuyen como shareware.

Martin Isenburg agradece a Victor Olaya por crear todo el entorno de sextante para crear nuevos plugins y por los ejemplos de cómo crear módulos. Al igual que él, yo también agradezo a Victor todo el trabajo porque también estoy trasteando con la creación de módulos dentro de sextante :P

Herramientas Libres para trabajar con datos LiDAR


En los últimos años ha proliferado el uso del LiDAR como técnica topográfica. Básicamente, consiste en un telémetro láser que mide el tiempo que tarda una pulso láser en ir y volver después de haber rebotado en un objeto. De este modo consigue hallar la distancia entre el instrumento y el objeto. Es decir, es sencillamente un distanciómetro, pero con la particularidad de que puede llegar a medir unos 100000 puntos por segundo (100 MHz). Si, además, incorporamos a los equipos de medición un GPS que nos dé la posición y un sistema inercial que nos de la orientación si estamos en movimiento, podemos dar coordenadas globales, normalmente en el sistema WGS84, a todos los puntos medidos. Por tanto, tendremos lo que se denominan nubes de puntos de los cuales conoceremos su posición en un sistema de referencia global, además de otras características relativas al objeto, como la intensidad o diferentes ecos de retornos, o referentes a la medición como ángulo de emisión del pulso, tiempo o distancia relativa al sensor.

Las compañías que desarrollan instrumentación LiDAR, ya sean telémetros aerotransportados, dando lugar a lo que se denomina en inglés Airborne Laser Scanning (ALS), o telémetros terrestes, Terrestrial Laser Scanning (TLS), también desarrollan su propio software destinado a:

  1. Extraer los datos del equipo de medida y ofrecer los datos en algún
    formato propio o, al menos, conocido.
  2. En algunos casos, hacer post-proceso de dichos datos y obtener productos
    cartográficos finales.

Sin embargo, como en el ecosistema de los GIS, existe un software privativo que monopoliza casi todo el mercado del software para realizar los trabajos de post-proceso. No voy a dar el nombre de ninguno de estos paquetes porque el objetivo de esta entrada es justamente la contraria, exponer las posibilidades existentes para utilizar software libre a la hora de trabajar con datos LiDAR.

Lamentablemente, para extraer los datos de la mayoría de los equipos actuales no hay alternativas y necesitamos utilizar obligatoriamente software privativo. Comprar la licencia no es el verdadero problema, porque si tenemos dinero para comprar un equipo que cuesta varias decenas de miles de euros es que también podemos comprar al menos una licencia por un par de miles. Lo peor es lo que verdaderamente implica el software privativo, es decir, que no eres libre de hacer lo que quieras con producto adquirido. Sin embargo, si alguien quiere hacerse un telémetro láser, puede utilizar el módulo para la captura de datos de las librerías PCL, ya que soporta algunos dispositivos conocidos. Pero sobre la librería PCL y otras más hablaremos más datelladamente en otra entrada. Además, en la mayoría de los casos, cuando podamos acceder a datos LiDAR, estos estarán ya en un fomato conocido. Lo lógico es que obtengamos los datos en el formato LAS que es el formato estándar que define la ASPRS (American Society for Photogrammetry and Remote Sensing).

Hay varias librerías libres para la lectura y escritura de archivos en este formato LAS. La decana de ellas es LASlib. Está desarrollada y mantenida por Martin Isenburg y está escrita en C++. Está licenciada bajo LGPL, por lo que se puede utilizar en otros paquetes, aunque sean privativos. Al descargar estas librerías y compilarlas genera unas herramientas llamadas LAStools que sirven para la gestión de archivos LAS (las2las, lasmerge), para creación de LAS a partir de archivos de texto (txt2las) o archivos de texto a partir de LAS (las2txt), para dar información sobre archivos (lasinfo, lasprecision, lasdiff) o para crear un índice espacial de los puntos dentro de los archivos (lasindex). En las últimas versiones, también se crea la herramienta laszip que sirve para comprimir archivo LAS. El formato de salida es LAZ y el archivo de comprimido ocupa SOLO entre el 7% y 20% del tamaño del archivo original. A todo esto hay que añadir que con la librería LASlib también se distribuye otra librería para leer y escribir formatos LAZ, también en C++ y también con licencia LGPL. Para los usuarios de windows, además, están disponibles otras herramientas precompiladas, de las cuales no voy a dar detalles porque no son libres, sino que son shareware.

De la librería LASlib se hizo un fork y nació la librería libLAS, que está bajo el auspicio de OSGeo. También escrita en C++ pero incorporan bindings para una gran cantidad de lenguajes de programación. También incorpora herramientas para la gestión de archivos en formato LAS y texto, que se llaman de igual manera que las LAStools, aunque la utilización de los comandos pueda variar. Las diferencias que existen actualmente entre ambas librerías se pueden encontrar aquí.

La librería SPDLib es bastante reciente. Tanto es así que empezó a desarrollarse en el verano de 2011. El formato estándar que utiliza para trabajar con datos LiDAR se denomina precisamente SPD (Sorted Pulse Data) y está basado en el formato HDF. Es un formato de datos ordenados e indexado que está optimizado para el acceso rápido a los datos y en el que es posible trabajar con toda la señal del pulso de retorno, en inglés full waveform, no sólo con ecos discretos, como hace las librerías anteriores. Y precisamente ésta es una de sus grandes virtudes. Por lo demás, está en consonancia con las librerías ya vistas. Está desarrollada en C++, con bindings para python e IDL, y con licencia GPL. Al compilar se crean una serie de herramientas para la gestión, manipulación e información de archivos SPD, así como una herramienta imprescindible para transformar entre formatos LAS y SPD. Otra de las ventajas que presenta es que incorpora utilidades para generar modelos digitales en cualquier formato soportado por gdal, y para aplicaciones forestales. ¡Todas ellas libres! Sin embargo, al ser desarrollada principalmente por una sola persona y ser tan reciente, uno de los problemas que presenta es la escasa y, en algunos casos, inexacta documentación.

Sin duda, existen más librerías capaces de trabajar con datos LiDAR pero con otros propósitos distintos a los que hemos cubierto aquí. Las intentaremos tratar en otras entradas. Manteneos atentos.

PD: Mientras escribo estas líneas me llega un tuit en el que hablan de otra libreria
en python para leer y escribir datos LiDAR en formatos LAS. Se llaman laspy :)

El Solsticio de Verano


Este post está dedicado a Perico, que siempre me anda dando collejas virtuales con las cosas de Astronomía. La última fue con el Tránsito de Venus. Pasada ya una semana no tenía mucho sentido hablar sobre ello, pero como la vida siempre te da segundas oportunidades, ahora puedo escribir unas pocas líneas sobre el Solsticio de Verano y así lo tengo contento ;-)

Aunque no seamos astrónomos o no hayamos estudiado alguna ciencia afín, todos sabemos que los solsticios son los días concretos del año en los que hay más horas de sol (solsticio de verano) o menos (solsticio de inverno), y los equinoccios, tanto el de primavera como el de otoño, los días del año en los que las horas de sol son las mismas que las nocturnas. También sabemos que estos días marcan el momento del cambio de estación las cuales están relacionadas con la inclinación con las que nos llegan los rayos solares.

Como vemos, una de las claves en todo esto es el Sol. Es más, los momentos exactos de los solsticios y los equinoccios vienen determinados por posiciones concretas del Sol con respecto a la Tierra. En particular, el Solsticio de Verano es justo el día en el que el Sol alcanza la máxima altura en la esfera celeste.

Pero, ¿qué queremos decir con la altura máxima del Sol? A lo largo de un día y desde que sale por el Este, el astro rey va variando su posición, alcanzando al mediodía la altura máxima en el cielo para después ir descendiendo y desaparecer en el horizonte por el Oeste. Pero es que si hicieramos una foto diaria justo en el momento de máxima altura, veríamos como esta posición variaría a lo largo de un año. A la figura resultante, se le llama analema, y aunque en cada lugar geográfico se genere un analema distinto siempre ocurrirá que el Sol alcanzará el punto más alto de todos los analemas el mismo día.

La altura no será igual en las distintas posiciones geográficas a medio día del Solsticio de Verano. Esta altura irá en función de la latitud del lugar, existiendo una en particular en la que el Sol se encuentre justo en el zenit del lugar (o cogote del observador). Todos los puntos geográficos que tengan esa latitud formarán un paralelo que conocemos como Trópico de Cáncer. Además, cuando el Sol se encuentre justo encima de la cabeza de un observador situado en algún punto del Trópico de Cáncer, será cuando alcance la máxima altura absoluta de todas las latitudes en todos los días del año.

MET9 RGB-3-2-1 2012-06-20 06:00 UTC (Copyright 2012 EUMETSAT)

Pero ese justo momento sólo ocurre en un instante dado, así que puede suceder que no lo veamos porque nos encontremos en una longitud terrestre en que sea de noche. De hecho, para este año en particular el Solsticio de Verano se producirá el 20 de Junio a las 23:09 horas UTC, es decir, las 1:09 del 21 de Junio en España. Para este día, el Sol saldrá en Madrid (no porque sea la Capital del Reino sino porque es donde yo vivo ahora) a las 6:45 de la mañana y se pondrá 15h 03m 42s después, a las 21:49. La altura máxima sobre el horizonte será 73° y se producirá a las 14:17 hora oficial.

Y sí, el solsticio de verano verdadero es el 20 y no el 21 de Junio, como mucha gente cree. Bueno, realmente unos años ocurre el 20 y otros el 21. Esto es debido a que la inclinación que existe entre el ecuador terrestre y la eclíptica, que es el plano aparente donde se mueve el Sol en el cielo, es variable. Esta inclinación, conocida como oblicuidad, es la verdadera responsable de las estaciones, y su variación, que se da no sólo en magnitud sino también en dirección, causa que el Sol tome una posición máxima distinta cada año haciendo variar el momento de los solsticios. Pero eso… es cosa ya de otra entrada (¡Ah, la precesión, esa gran incomprendida!).