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

Obtener area de polígono de GoogleEarth con QGIS

Muchas veces necesitamos obtener un área de un polígono digitalizado en Google Earth, y para ello tenemos de dos sopas. La primera es que tengamos la versión «Pro» de paga del Google Earth, para lo cual hay que pagar por ella, usando la regla de la barra de herramientas se puede digitalizar el polígono y obtener su área directamente. La otra es usando alguna otra aplicación independiente lo cual es más tardado pero al fin de cuentas es lo mismo. Dado que no tengo la versión de paga del Google Earth  he tenido que usar QGIS para obtener las áreas de mis polígonos. El método es el siguiente:

Primero hay que digitalizar los polígonos en el Google con la herramienta Agregar polígono, en mi caso son una explanada, pasillos y estacionamientos.

Poligonos digitalizados en Google Earth

Poligonos digitalizados en Google Earth

Luego guardarlos dando clic derecho en el polígono creado en la sección Lugares y aparecerá un menú en el que hay que seleccionar Guardar lugar como…, dar un nombre y guardar en formato KML.

Abrir los polígonos con el QGIS, mediante la opción de Añadir capa vectorial y en el cuadro de diálogo dar clic en Explorar y en el filtro seleccionar Keyhole Markup Language [KML] [OGR]. Buscar las capas y abrirlas.
Ya que están abiertas las convertí a shapefile en la sección Capas dando clic derecho sobre la capa y seleccionando Guardar como….

Exportar polígonos a shapefile

Exportar polígonos a shapefile

Seguidamente dar un nombre y ubicación a la capa, verificar que se guarde como Archivo shape de ESRI.

Guardar polígonos como shape.

Guardar polígonos como shape.

Es necesario activar la opción Configuración > Propiedades del proyecto > Activar transformación de SRC al vuelo lo cual permite cambiar las capas de sistema de coordenadas fácilmente. Se cambia el Estado del SRC, dando clic en el ícono que se encuentra en la esquina inferior derecha de QGIS. En la ventana que se abre seleccionar Sistema de coordenadas proyectadas y luego Universal Transverse Mercator (UTM) finalmente WGS 84 / UTM zone 14N (en mi caso). Dar clic en Aceptar.

Una vez que se han convertido, se agregan las capas shape, opcionalmente se pueden eliminar las KML de QGIS.

Establecer estado de SRC

Establecer estado de SRC

Ahora cambiar el sistema de coordenadas de las capas vectoriales digitalizadas en Google Earth, esto mediante el establecimiento de un SRC diferente. Para ello se da clic derecho en la capa y  seleccionar la pestaña Guardar como… y en SRC cambiar el SRC original de la capa mediante el botón explorar y seleccionar UTM como anteriormente: seleccionando Sistema de coordenadas proyectadas después Universal Transverse Mercator )UTM) y finalmente WGS 84 / UTM zone 14N. Personalmente para no perderme le agrego el sufijo «_utm.shp» al nombre de la capa y listo, se guarda y se agrega a QGIS.

Cambiar el SRC de la capa

Cambiar el SRC de la capa

Antes de obtener el área de los polígonos hay que verificar algunas cosas en Configuración > Opciones y la pestaña Herramientas de mapa. Verificar que las unidades sean metros, dejar 3 lugares decimales y que el elipsoide de medición sea el WGS 84.

Opciones del proyecto

Opciones del proyecto

Finalmente para obtener el área dar clic derecho en la capa deseada y abrir su tabla de atributos, seleccionar Conmutar el modo edición (el icono de la navaja azul) y se observa como se activa el icono de la calculadora, darle clic para Abrir la calculadora de campos y en la ventana que se abre en Nombre del campo de salida poner «AREA» en Tipo del campo de salida seleccionar Número decimal (real) y en precisión poner 2 decimales. Clic en el botón area y se escribirá «$area» en el la Expresión de la calculadora de campos, listo ya solo al dar Aceptar se hará el cálculo.

Calculando el área del polígono

Calculando el área del polígono

Área de polígono calculada

Área de polígono calculada

Finalmente aparece la columna con el valor del área en metros cuadrados. Si se desea obtenerlo en hectáreas sólo es necesario dividir el valor entre 10,000 y la expresión sería: $area/10000. Ahora al cerrar la tabla de atributos hay que dar de nuevo clic derecho en la capa para conmutar el modo edición y guardar los cambios.

Saludos, espero que les sirva algo tan sencillo.

Polígonos con área

Polígonos con área