jueves, 19 de mayo de 2011

Importando PDF empíricamente a OpenStreetMap


Por petición de un amigo scout nuevo mapero y emocionado con la liberación de la información geográfica de su pais me pongo en la tarea de explicar como convertir empíricamente archivos PDF al formato XML de OSM para luego ser importados usando JOSM y su plugin PDFimport.

Introito Exculpatorio:
Siempre, siempre que se pretenda hacer una importación de datos a OpenStreetMap se deben seguir unas reglas técnicas y de conductas estampadas en las Import Guide Lines por favor léalas antes de continuar.

Antes de empezasr asegurese de tener instalado JOSM y los plugin PDFimport y piclayer. En ocasiones es posible conseguir mapas o información geográfica en formato PDF, tomaré en cuenta únicamente los archivos pdf que han sido generados a partir de vectores y no los típicos PDF que encapsulan una imagen escaneada, para esos PDF no es este manual,... o quizas si, aplicando correctamente :-)

Este tipo de archivo está en capacidad de almacenar información vectorial y en algunos casos estructurada si su origen lo esta y si se hace de programas de manejo vectorial como los típicos CAD.

El primer paso es convertir temporalmente este archivo temporal en una imagen o un archivo raster típico JPEG (mas conocido como .jpg) para ello usaré uno de mis programas gráficos favorito El GIMP que es libre y se puede instalar en GNU/Linux y en las diferentes mutaciones de Guindos, el Gimp nos permite abrir convertir un PDF en imagen y ajustar algunos parámetros como su resolución, tamaño y elegir entre las páginas que queremos importar.

Luego de esto abrimos el JOSM y nos aseguramos de tener el plugin piclayer y PDFimport instalados.

Descargamos la zona donde georeferenciaremos el PDF y las trazas GPX que existan en los servidores de OSM también podemos ayudarnos con imagénes satelitales de BING o Yahoo si existen en la zona.

Usando el plugin piclayer, llamamos el archivo .jpg que convertimos con El Gimp y lo ajustamos a la zona donde queremos hacer la importación. Esta calibración de la imagen la debemos guardar haciendo click derecho sobre la capa de la imagen y escogiendo la opción de guardar calibración.

Con la herramienta de edición del JOSM o la letra (A) trazamos un rectángulo por el "borde" del papel de la imagen, guardamos este vector en formato .osm.

Desde el menú [Herramientas] [ Importar archivo PDF] lo que abrirá el dialogo de importación, lo primero es cargar el archivo PDF y elegir el sistema de coordenadas WGS 84 para la importación.

Ahora viene la parte "balseada del pasillo" debemos ubicar al esquina inferior izquierda y superior derecha para que el plugin pueda georeferenciar el archivo PDF. la mayoría de las herramientas del JOSM seguirán activas, lo que usaremos a nuestro favor para simplificar el proceso.

1. Marcamos con el cursor la esquina inferior izquierda de la previsualización del PDF y cliqueamos en [Tomar X y Y del nodo seleccionado] luego hacemos lo mismo con la esquina superior derecha.

3. Cambiamos a la capa donde dibujamos el rectángulo y seleccionamos el nodo inferior izquierdo del mismo, tomamos las coordenadas del nodo y las ponemos en el campo Este y Norte, hciendo lo mismo con el nodo de la siguiente esquina.


4 Hecho esto solo queda oprimir el botón [Guardar ] o [Lugar] el primero guardará el pdf en formato .osm y el segundo lo ubicará directamente en el área de trabajo.


El proceso nos habrá importado el PDF con rótulos, formato y muchas cosas innecesarias y perjudiciales en OSM, así que queda el trabajo de "limpieza" del archivo antes de taguearlo y subirlo al servidor de OSM.

El trabajo aun que se tiene que hacer manual, se puede utilizar la herramienta de búsqueda de JOSM para hacerlo de manera mas eficiente, se puede buscar tanto por PDF_layer como por el color de los vectores que queramos eliminar, esto nos evitará muchas horas de trabajo de limpieza.


Usando la misma herramienta se pueden seleccionar objetos homogéneos como los PDF_closed y aplicarles etiquetas de área y etc.

Nota Final: la calidad y uso de los datos dependen de la calidad del origen, en algunas ocasiones nos damos cuenta después de la importación que los datos no estaban suficientemente bien estructurados y que lo que se importará será mínimo pero en otros tendremos buenas fuentes y quizás podamos utilizar todas las manzanas de un pueblo área, es cuestión de probar. Feliz mapeo!

martes, 17 de mayo de 2011

Habilitar el Geocoder de Google en Ushahidi para buscar ciudades, pero usando el mapa de OpenStretMap



Hay muchas ventajas de usar los mapas de OpenStreetMap en ushahidi, quizás la mayor de ellas es el tema de licencia de la información, pues al contrario de los términos de uso de Google/maps, OSM permite usar la instancia para cualquier propósito, por lo tanto no es aconsejable por ningún motivo el uso e mapas de Google en ushahidi pues es muy fácil violar esos términos de licencia e invalidar el propósito del proyecto.

De las pocas desventajas al usar OSM y no Google maps es queda inútil el buscador de ciudades que funciona con el geocoder de Google, pero de eso se trata este minimanual.

Dicho geocoder funciona como otros servicio del gigante de la G con una Key del API esta se genera desde su sitio: http://code.google.com/intl/es-419/apis/maps/signup.html
con unos sencillos pasos, la Key se usa en la configuración del mapa cuando se usará el mapa de Google, pero ahora se trata de "decirle" a ushahidi que esta usando esos mapas, cuando en realidad usa lo de OSM :-).

Lo único que hay que hacer es editar el archivo "application/views/reports_submit.php" de la instancia de ushahidi y aproximadamente en la linea 22 agregar la siguiente linea :
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=&lt;b&gt;ABQIAAAVgTGFTYGIUGY8_zbjbdlhQyqIKzKJIJH6778HGGuygujhRcLUrOizgZ0WoVhrbiXIGrAqpD4Q&lt;/b&gt;" type="text/javascript"></script>

Donde "ABQIAAAVgTGFTYGIUGY8_zbjbdlhQyqIKzKJIJH6778HGGuygujhRcLUrOizgZ0WoVhrbiXIGrAqpD4Q" es la key que generó google para el sitio.
Con esto es suficiente para funcione el buscador de ciudades en la creación de nuevos reportes.








miércoles, 11 de mayo de 2011

Instalando mapas basados en OpenStreetMap en GPS Garmin desde GNU/Linux

Bueno, esta era una tarea pendiente, pero ya la estoy cumpliendo:

Desde hace algún tiempo nuestra empresa http.//qwerty.co genera mapas para dispositivos Garmin basados en los datos de OpenStreetMap, regularmente publicamos la versión general pero también podemos generar mapas a medida para proyectos especiales como por ejemplo con curvas a nivel o fotografías vectorizadas.

Los anuncios y links de descarga los publicamos
regularmente por la lista de OSM Colombia y por twitter @fredy_rivera mucha gente pregunta como se instalan estos mapas en los dispositivos Garmin desde GNU/Linux o
sin usar el software propietario de Garmin, pues la verdad es muy sencillo :

Hay dos clases de dispositivos Garmin que soportan mapas, unos sencillos que no poseen una tarjeta de memoria extraible y los que si la poseen, los que usan memoria externa normalm
ente tienen una (x) en su referencia como el Map 60csx o el Etrex vista Cx la mayoría de los dispositivos modernos de Garm
in tienen esta capacidad.

Instalar los mapas en ellos es absurdamente sencillo, pus solo hay que copiar el archivo gmapsupp.img a una
carpeta /Garmin en la raiz de la memoria, esta operación se puede hacer por medio del cable de datos y configurand
o la interfaz en "Almacenam. masivo USB"(sic) y montan
dolo en el pc como cualquier otra memoria USB o bien retirando la mini SD del GPS y conectándola a un adapt
ador de memorias al pc, basicamente es lo mismo que transmitir infomación del PC a un telefono celular.

Para los dispositivos que no tienen memoria extraible o no pueden ser montados como dispositivo de almacenamiento recomiendo usar el programa QlandkarteGT muy util p
ara comunicarnos con nuestro d
ispositivo, el programa esta disponible en los repositorios de Debian y puede ser instalado con el comando:

yo@mipcera#apt-get install qlandkartegt

En gnome el programa crea un acceso dentro del menú "Accesorios" o bien se invoca desde la line de comandos con:

yo@mipcera#qlandkartegt

El programa se puede us
ar como un usuario normal, no necesita ser root o administrador, sin embargo puede que el fichero /dev/ttyUSB0 o similar donde se conecta el dispositivo no tenga permisos de escritura, por ello hay o que ejecutar el programa desde root o modificar los permisos para que el usuario norm
al pueda escribir en el fichero.

Luego hay que ir al [Menu] Setup General y en la pestaña [Device & Xfer] seleccionar el puerto y el tipo de GPS que tenemos.
Hecho esto vamos a [File] Load
map y seleccionamos nuestro archivo osmmap.tdb , luego tenemos que seleccionar un archivo con extensión .img ejemplo gmapsupp.img

Quizas sea necesario seleccionar la opcion [Map..] o [F1] del menu lateral para ver las opciones del mapa.
Seguido, debemos seleccionar l
os "trozos" de mapa que querem
os subir al GPS esto se hce con la tecla [F5] y click sobre cada trozo.

Con la tecla [F9] empezamos a subir el mapa al GPS

Esposible que marque un error sobre el modulo "garmin_gps" pero la solución es muy sencilla, simplemente abrimos una terminal y damos el comando:

yo@mipcera#rmmod garmin_gps

Terminado el proceso, ya tenemos el mapa montado en nuestro dipositivo :)

domingo, 8 de mayo de 2011

Trucos para mapear edificaciones en OpenStreetMap usando JOSM



Si has llegado hasta aqui, sabes que es OpenStreetMap, JOSM y edificaciones, si no es así solo haz click en los links para saberlo :)

Trazar las edificaciones rurales, aunque es muy gratificante cundo se ven los caseríos terminados, suele ser muy engorroso por la repetición de pasos para "hacer" cada "casita" por ello quiero compartir algunos trucos que me ayudan a hacer el proceso mas eficiente:

Herramienta de construcción de edificios (W)
Es un plugin de JOSm que nos permite construir el edificio de la misma forma como se traza cualquier otro elemento, pero nos agrega uhn par de ventajas extras: a. el edificio que da ortogonal o recto de una vez, b. automáticamente pone la etiqueta building con el valor yes. una vez instalado el plugin se activa pulsando la letra (w).

Copy-pegar edificios (Ctrl+c, Ctrl+v)
Después de crear el primer edificio este se puede copiar (Ctrl+v) y pegar (Ctrl+v) para construir otro, hay que tener en cuenta que el lugar d
onde se pegará es justo donde apunta la el cursor en ese momento.

Escalar (Alt+Ctrl+Click+arrastrar)
Con esta instrucción se puede esclalar el edificio copiado para adaptarlo a un nuevo tamaño, lo que nos evita volver a trazarlo para edificios diferentes.

Rotar (Mayúscula+Ctrl+Click+arrastrar)
Es una instrucción similar pero que permite rotar toda la edificación para ajustarla, ya que en el área rural las edificaciones no suelen estar alineadas, con esta herramienta nos ahorramos mucho trabajo.

Organizar edificios irregulares (Q)
En muchas ocasiones se necesita dibujar edificios por ejemplo en forma de "L" por eso es bueno conocer que después de trazarlo, lo seleccionamos y oprimimos la letra (Q) con lo cual el edificio o se ortogonal-izará quedando la forma perfecta de la "L" , rectángulo o cuadrado.