viernes, 5 de mayo de 2017

QGIS + GIMP para vectorizar una Imagen del Sentinel-2











En esta oportunidad vamos a tratar sobre el plugin denominado "Gimp Selection Feature", el cual fue desarrollado por  Luís Motta para el IBAMA (Brazilian Institute of Environment and Renewable Natural Resources). En general esta herramienta logra establecer un enlace con el programa de gráficos Gimp y convierte una selección de una imagen en formato shapefile.

Nuestro objetivo será extraer algunos polígonos de una imagen proveniente del Sentinel-2, el cual comprende una zona del norte del territorio peruano, si desean reproducir el ejercicio, la imagen la pueden descargar desde aquí.

Uso del Gimp Selection Feature

Una vez instalado el plugin, desde nuestro administrador de complementos, en nuestro QGIS lo vamos a poder activar como una herramienta dentro de "Ráster" en la barra de menús, asimismo se veremos un icono en la barra de herramientas.

Figura 1: Ubicación del plugin instalado.

Es importante tener en cuenta que debemos tener instalado previamente el programa Gimp, el cual lo van a poder descargar e instalar desde aquí, actualmente se cuenta con la versión 2.8.20. Cuando abrimos el Gimp, debemos apreciar a IBAMA en la barra de menú.

Figura 2: Verificación de la herramienta en Gimp


Ahora una vez que lo activemos aparecerá un panel específico del plugin, el mismo deberá acoplarse dentro de los ya existentes para una mejor visualización de las opciones existentes. Dentro del panel podremos observar dos bloques en general, el primero denominado "Image" y el segundo "Transfer".


Figura 3: Mostrando el panel del plugin y sus opciones


Una vez que tenemos la imagen sobre nuestro lienzo (canvas), primero hacemos clic en "Set current", con ello se está seleccionando para de la imagen con el cual trabajaremos y sobre el cual vamos a extraer los polígonos, es decir nuestro ROI; posteriormente en el otro bloque hacemos clic en el botón "Send image", para que se traslade dicha zona de interés al Gimp, tal como se muestra en la Figura 3. Si nos vamos al Gimp podremos apreciar nuestra imagen recortada sobre el área de dibujo.

Figura 4: Imagen del Sentinel-2 dentro del Gimp


Dentro del Gimp empezaremos a usar las herramientas que contiene, dentro de su panel denominado "Caja de herramientas", podemos usar la "varita", el cual indica que realiza una selección difusa, es decir que selecciona una zona por su color, tal como se aprecia en la Figura 5, lo vamos hacer en tres lugares, teniendo en cuenta que para seguir agregando áreas, es importante que señalemos dentro de las opciones de la herramienta, lo que corresponde a "añadir a la selección actual".


Figura 5: Seleccionando polígonos dentro de la imagen.

Podemos seguir seleccionando polígonos, pero para el ejemplo solo serán esos tres, aunque les recomiendo también usar la herramienta del Gimp denominada "herramienta de selección libre", lo que nos permite ajustar mejor nuestra selección, incluso agregar zonas continuas que no necesariamente tienen el mismo color, realizar esto a manera de práctica sería interesante.

Ahora de regreso al QGIS, haremos que dichos polígonos se trasladen como una nueva capa vectorial en el QGIS, para ello nos vamos al panel y hacemos clic en el botón "Get features", podremos apreciar los polígonos sobre nuestra imagen, se recomienda luego guardarlos como shapefiles.

Figura 6: Polígonos extraídos de la imagen desde el Gimp al QGIS


Finalmente, luego de convertirlo a un formato tipo Esri Shapefile, podremos apreciar que en su tabla de atributos existen campos que indican la ruta de la imagen trabajada, la fecha y el sistema de referencia.

Figura 7: Campos generados de la nueva capa vectorial


Bueno, nuestro objetivo principal se cumplió, espero que lo puedan probar y si pueden lo comentan.

Para que puedan apreciar mejor de cómo funciona, les recomiendo revisar el siguiente vídeo: QGIS + Gimp: Vetorização de imagens Sentinel-2 com o plugin do Ibama ; asimismo una pequeña presentación del autor: Gimp Selection Feature Plugin QGIS


jueves, 4 de mayo de 2017

Compartiendo Mapas con Google Drive y QGIS - GooGIS





Recientemente ha sido lanzado un plugin (experimental) del QGIS denominado GooGIS, lo que sería un proveedor de datos de Google Drive para QGIS. Me pareció interesante, por ello lo estuve probando y quería compartir con ustedes las opciones de uso de este plugin.

Características del Plugin GooGIS


Logra mantener una sincronización entre una capa de memoria local y una hoja de cálculo de una unidad de google remota, proporcionando un entorno  "peer to peer o red de pares" simple, para compartir y editar contenidos geoespaciales con otros usuarios. Sólo se requiere una cuenta de Google válida.

La estructura de datos de la capa QGIS (geometría y atributos) se almacena en una hoja de cálculo de Google remota. El plugin administra los derechos de lectura/escritura en la capa, asimismo, controla el acceso y edición de datos simultáneos y sincroniza la tabla local y remota al inicio/fin de la edición. Muchos usuarios pueden ver y modificar simultáneamente datos espaciales sin conflictos.


Conectándose al Google Drive.


Como primer paso en el QGIS vamos a instalar el plugin GooGIS, desde nuestro administrador de complementos, asumiendo que contamos con una cuenta Google.


Figura 1: Plugin GooGIS instalado


Cuando se instala se inserta dentro de la barra de menús "Vectorial", se encuentra como "Google Drive Provider", también se localiza en la barra de herramientas con su propio icono. Al hacer clic sobre el icono, solicita ingresar nuestra cuenta de Google para su validación.

Figura 2: Ventana para ingresar nuestra cuenta válida de Google


Luego te pedirá confirmar nuestra cuenta o seleccionar entre otras cuentas que podamos tener, para que después te indique los cambios a realizarse y nuestro permiso para que se ejecute.

Figura 3: Confirmando nuestra cuenta Google para que trabaje con el plugin



Listo, ahora ya podemos trabajar con el plugin, en esta oportunidad vamos a trabajar con una capa vectorial (prov_huaraz_poly1.shp). 

Figura 4: Capa vectorial de ejemplo para compartirlo con GooGIS.



Una vez activado el plugin, vamos a hacer clic en la opción de "export to GDrive", y escogemos nuestra capa vectorial.

Figura 5: Exportando nuestra capa al Google Drive


Al contar con la capa dentro de nuestro Google Drive, si deseamos podemos consultar nuestra cuenta y veremos una hoja de cálculo y una imagen que representa la capa. Ahora lo que vamos hacer es dar los permisos para compartir, en este caso vamos a indicarle que cualquiera puede leer/escribir, es decir que lo pueden editar, para ello activamos la casilla que lo indica; posteriormente vamos a apreciar que se coloca un icono de tipo "world icon"; pero en caso nosotros le indicamos las cuentas con las que requerimos compartir, el icono cambia a un tipo de "group icon".


Figura 6; Indicando los permisos de lectura y escritura para nuestra capa

Si aprecian la Figura 6, verán que existe la información relacionada a la capa, tales como la cuenta Google del creador, el nombre de la capa y algo importante, el código ID (18FwSiQGGQc-nmq7YLY6U8TFMPjKOKWRkvx_YBXb7VLo), el mismo que podrá ser usado para que pueda ser importada por otros y de acuerdo a los permisos otorgados, podrán ser editados. Por lo tanto, en mi caso, como tengo otra cuenta Google, para hacer la prueba, instalé en otra máquina con QGIS el plugin, realizando los mismos pasos, y al activar el plugin, lo que voy hacer ahora es importar la capa por ID.


Figura 7: Incorporando una capa ingresando el código ID generado por el creador


Ahora que tenemos la capa en otro equipo, mostrando el "world icon", se realizó una edición adicionando una columna de datos (count).

Figura 8: Visualización en otro equipo de la capa compartida


Luego nos queda es actualizar (refresh), para que desde nuestro equipo podamos visualizar el cambio realizado, existiendo también la opción desde la capa, haciendo clic derecho, el de sincronizar con Google Drivees. Es importante tener en cuenta que la actividad de lectura/escritura tanto local como remota se informa en la barra de mensajes de QGIS. Finalmente en nuestro equipo inicial veremos los cambios.

Figura 9: Visualización en el equipo inicial de las modificaciones realizadas.


Con todo lo realizado se logró el objetivo de compartir nuestros datos con cualquiera que tenga el ID, pero en caso de que se comparta con una lista seleccionada, a cada uno de ellos les llegará un correo indicándole las opciones de edición, lo que significa que se puede trabajar de manera colaborativa un mismo proyecto. Espero que lo puedan probar y comenten como les fue.

Para mayor información les recomiendo consultar el siguiente link, en ella encontrarán algunos códigos ID de ejemplo para que lo prueben.









miércoles, 3 de mayo de 2017

Opciones de QGIS para adicionar los servicios de ArcGIS Online - Parte 2


Ahora vamos a continuar con los dos procedimientos pendientes de la entrada anterior.

3. Consulta a los Servicios ArcGIS

Paso 1: En primer lugar debemos ingresar al enlace o capa URL con el que venimos trabajando http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3, Luego nos iremos hasta el final donde se indica la posibilidad de hacer una consulta (Query).


Figura 1: Activando la opción de consulta sobre la capa seleccionada.

Paso 2: Ahora veremos que nos aparece un panel o formulario de consulta, desde aquí podemos realizar una consulta SQL, con la finalidad de extraer información de dicha capa. En primer lugar en la parte de "Where", vamos a colocar 1=1, lo que significa que estamos llamando a todas las entidades presentes o almacenados en esta capa.

Figura 2: Ingresando valores a los campos dentro del panel de consulta

Paso 3: Luego debemos indicarle en el campo denominado "Out Fields", que requerimos considerar a todos los campos contenidos en la capa, para ello ingresamos "*". También debemos asegurarnos que esté activado (TRUE) la casilla que indica el retorno de la Geometría. Ahora debemos indicarle el formato de salida, el mismo puede ser JSON o también GeoJSON, para que finalmente hagamos clic en "Query (GET)".


Figura 3: Completando la información mínima requerida en el panel de consulta

Paso 4: Luego de realizar una consulta vamos a apreciar que en nuestro navegador se mostrará en formato JSON el detalle de los campos de información solicitada en dicha consulta. Ahora vamos a copiar el enlace (URI) para que dentro del QGIS podamos mostrar la capa. Para ello solo tenemos que "Añadir una capa vectorial" y en la ventana que nos aparece, seleccionar "Protocolo", luego indicar que dicho Protocolo sea de tipo GeoJSON y en el campo URI, pegar el enlace generado y hacer clic en Abrir.

Figura 4: Añadiendo una capa vectorial en QGIS con el protocolo GeoJSON 
producto de la consulta realizada

Paso 5: Como último paso, debemos comprobar que la capa que se muestra contenga todos los campos de información, de la misma manera que se obtuvo con los demás procedimientos, para ello solo bastará con abrir la tabla de atributos. 

Figura 5: Resultado obtenido al añadir la capa vectorial como una consulta en formato GeoJSON.


Con los procedimientos mostrados, ustedes podrán luego guardarlo como un Esri Shapefile, para que lo puedan tener entre sus archivos.

4. Uso del QuickMapServices.

Una vez que tenemos instalado el plugin QuickMapServices, el cual ha sido creado por NextGIS, vamos a poder contar con la opción de cargar servicios Web, con capas que se mostraran como mapas base de buena calidad. 

Figura 6: Instalando el plugin QuickMapServices

Ahora si nos vamos a nuestra barra de menús, dentro de Web, veremos al plugin y desde donde podremos desplegar los servicios disponibles, entre ellos observamos a los de Esri.


Figura 7: Mostrando los servicios ofrecidos por Esri


Con ello simplemente hacemos clic en el tipo de servicio que requerimos (Por ejemplo: ESRI Ocean) y con ello aparecerá en nuestro panel de capas.

Figura 8: Incorporando un mapa base denominado ESRI Ocean



Con el plugin podemos adicionar otros servicios, para mayor detalle de cómo hacerlo, recomiendo consultar la referencia 3 y 4.

Muy bien, con esto completo los procedimientos que se mencionaron para lograr adicionar desde QGIS los servicios disponibles por Esri.

Referencias Consultadas:






martes, 2 de mayo de 2017

Opciones del QGIS para adicionar los servicios de ArcGIS Online - Parte 1







En esta oportunidad vamos a mostrar las opciones que tenemos para que desde nuestro QGIS podamos incorporar coberturas provenientes de los servicios que están disponibles a través del ArcGis Online


Para lograr nuestro objetivo vamos a considerar cuatro opciones, describiendo cada uno de los procedimientos a seguir: El primero es a través de un plugin denominado ArcGIS REST API Connector (ArcGISConnector), el segundo considera la opción de añadir capas directamente como un "Feature Server" desde ArcGIS, la tercera opción disponible se realizará extrayendo capas de tipo GeoJSON luego de realizar una consulta a los servicios que ofrece ArcGIS y finalmente también hablaremos sobre el uso del Plugin denominado QuickMapServices, que también nos permite obtener capas provenientes de varios servicios entre ellos los disponibles por Esri.

En esta primera parte mostraremos las dos primeras opciones:


1. Uso del ArcGISConnector

El plugin es un proyecto desarrollado por Geometa Lab HSR, el cual permite leer desde  ArcGIS Online , ArcGIS Server y "Esri Open Data Initiative Portal Software". El plugin se focaliza en la lectura de los llamados "Mapas" accesibles a través de Internet mediante la interpretación de JSON (JavaScript Object Notation) similar a WFS, por lo tanto, hay que tener en cuenta que actualmente sólo se admiten "Feature Services", los "Servicios de mapas - Map Services" de tipo WMTS/WMS, no son soportados.

Se pueden mencionar que se disponen de los siguientes servicios de ArcGIS:

Para nuestro ejemplo, asumiremos que ya tenemos instalado el plugin ArcGIS REST API Connector (Ver Figura 1). Por lo tanto, vamos a considerar usar los datos provenientes de http://sampleserver6.arcgisonline.com/arcgis/rest/services.


Figura 1: Plugin instalado desde el administrador de complementos



Paso 1: Ingresar al link del servicio, vamos a apreciar  un grupo de servicios disponibles, dentro de todos ellos escogeremos el que dice "Census (MapServer)".

Figura 2: Lista de los servicios disponibles


Paso 2: Luego al ingresar al servicio seleccionado, vamos a apreciar la descripción del servicio y las capas disponibles, para nuestro caso escogeremos la capa denominada "States".

Figura 3: Seleccionando una capa de interés

Paso 3: Ahora ya podemos conocer con mayor detalle las propiedades de los datos disponibles por el servicio, por lo tanto, debemos considerar el link que se está consultando.

Figura 4: Mostrando las características de la capa y la URL a considerar

Paso 4: Dentro del QGIS al activar el plugin (desde el icono presente en la barra de herramientas o desde la barra de menús dentro de Vectorial), nos aparecerá una pantalla que nos pedirá ingresar la Capa URL, para lo cual le tendremos que especificar la que se obtuvo en el Paso 3 y luego que fue identificada (para ello debe aparecer la capa states dentro de Layer Name), presionar "Connect".


Figura 5: Ingresando dentro del Plugin la URL de la capa seleccionada .


Paso 5: Finalmente podemos visualizar y disponer de la capa "states", el cual si nos vamos a las propiedades de trata de una capa en formato JSON, el cual contiene una geometría de polígono. Si entran a la tabla de atributos, verán que contiene datos estadísticos para cada uno de los Estados.

Figura 6: Resultado obtenido al adicionar la capa seleccionada

Este procedimiento nos permitirá obtener capas vectoriales a través de los servicios ofrecidos por ArcGIS. Es importante tener en cuenta que cuando seleccionen la capa, la misma sea de tipo "Feature Layer" y que los tipos de geometría sean polígonos, líneas o puntos. A manera de práctica les recomiendo que prueben con el siguiente servicio disponible, referido a las rutas de huracanes. http://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer/1



2. Adicionando una capa Feature Service de ArcGIS.

La siguiente opción disponible nos permitirá tener el mismo resultado, para ello, seguiremos los siguientes pasos:


Paso 1: Desde la barra de herramientas de administración de capas, usaremos el denominado "Añadir capa Feature Server de ArcGIS", al hacer clic nos aparece una ventana, en la cual generaremos una "nueva conexión de servidor". 

Figura 7: Desde el administrador de capas se adiciona una capa Feature Server 
de ArcGIS generando una nueva conexión con un servidor de mapas

Paso 2: Para la nueva nos va a solicitar el URL de la capa, el cual lo tenemos del ejemplo con el que venimos trabajando, pero el que mostramos en el Paso 2 anterior, es decir sin especificar la capa "States". Luego hacemos clic en "Aceptar".

Figura 8: Ingresando la URL del servicio desde donde nos conectaremos para 
solicitar las capas disponibles


Paso 3: Cuando ya disponemos de la conexión del servicio aceptada, al cual lo hemos denominado "Census - States USA", podemos ahora solicitar que realice la conexión con el servidor para que nos muestre las capas disponibles para ser añadidas. En este caso escogeremos "states", para ver si obtenemos el mismo resultado de la opción anterior.


Figura 9: Selección de una de las capas disponibles del servidor conectado


Paso 4: Finalmente luego de "Añadir" la capa, se podrá visualizar lo mismo que obtuvimos anteriormente, pero si van a propiedades de la capa, se apreciará que la fuente es una consulta al servicio disponible de ArcGIS.


Figura 10: Propiedades generales de la capa añadida

En la siguiente entrada se mostrará las otras dos opciones que nos permitirán tener resultados similares.