geodatos – Escuela De Datos http://es.schoolofdata.org evidencia es poder Fri, 12 Apr 2019 18:17:59 +0000 es hourly 1 https://wordpress.org/?v=5.3.2 114974193 Usando QGIS y OpenStreetMap (OSM) para mapear edificaciones http://es.schoolofdata.org/2019/04/01/usando-qgis-y-openstreetmap-osm-para-mapear-edificaciones/ http://es.schoolofdata.org/2019/04/01/usando-qgis-y-openstreetmap-osm-para-mapear-edificaciones/#respond Mon, 01 Apr 2019 17:43:30 +0000 https://es.schoolofdata.org/?p=2717 En esta entrada utilizaremos en conjunto QGIS y OpenStreetMap para identificar edificaciones dentro de la franja de arena donde se encuentra la ciudad de Puntarenas, Costa Rica. Asumiremos que el ejercicio es parte de una cuantificación de futuros daños que podría sufrir la ciudad de Puntarenas dado al aumento del nivel del mar asociado al cambio climático y vendría a funcionar como un ejemplo de proyectos en los que el análisis de datos informa sobre los posibles daños del cambio climático.


Sobre las herramientas

QGIS es un programa de Sistemas de Información Geográfica (SIG) gratuito y de código abierto con una interfaz gráfica amigable al usuarios disponible para distintas plataformas. Actualmente es la opción gratuita más completa y fácil de usar para realizar análisis de datos espaciales. QGIS se puede descargar desde www.qgis.org

OpenStreetMap (OSM) es una plataforma colaborativa en internet para crear mapas editables y libres. En esta plataforma cualquier persona puede modificar, editar y agregar información espacial sobre cualquier lugar en el mundo. Se podría decir que OpenStreetMap es un Wikipedia de mapas, donde los datos generados no solamente se pueden desplegar en el sitio web de la plataforma, si no que también pueden descargarse y ser analizados en herramientas de SIG. A pesar de que los datos que se presentan en OSM no son oficiales, en muchos regiones del mundo son los únicos existentes, por lo que se deben considerar como una fuente importante de datos geográficos libres y gratuitos.

 

¿Cuántas edificaciones hay en una región?

Objetivo del tutorial:

  • Identificar y analizar utilizando QGIS y OSM las distintas edificaciones que existen en la franja de arena donde se encuentra la ciudad de Puntarenas, en Costa Rica

 

Notas para tomar en cuenta durante el tutorial:

El tutorial se realizará utilizando la versión en inglés de QGIS versión 3.4

Se recomienda hacer este tutorial luego del anterior tutorial Creando mapas en QGIS


Parte 1. Enfocando nuestro análisis al área de Puntarenas

Para comenzar nuestro análisis debemos enfocarnos en nuestra área de estudio y para esto debemos utilizar varias herramientas de QGIS.

 

  1. Abrir QGIS dando doble click al ícono.

 

  1. Agregar mapa base de OpenStreetMap al visor de QGIS utilizando la ventana de Browser y la opción de XYZ Tiles y dando doble click a OpenStreetMap.

 

Al hacer esto el mapa del mundo se despliega en la ventana principal de QGIS y en la ventana de Layers nos aparece OpenStreetMap.

 

  1. Asegurarnos que el sistema de coordenadas del mapa es el que deseamos. En este caso WGS84. Para esto debemos dar click en la esquina inferior derecha de la ventana de QGIS, donde dice EPSG:3857.

 

  1. En la ventana que se abre, escribir IGNF:WGS84G en el espacio de Filter y seguidamente dar click en World Geodetic System 1984 que aparece en la subventana de Coordinate reference systems of the world y dar click en OK. (Para entender mejor qué son los sistemas de coordenadas, se recomienda ver el material sobre Coordenadas geográficas).

 

De esta manera estamos haciendo que QGIS trabaje en un sistema de coordenadas específico, lo que nos va a servir para poder guiar nuestro análisis a una ubicación específica (ciudad de Puntarenas).

 

  1. En la barra inferior de la ventana de QGIS escribir (copiar y pegar) en el espacio Coordinate: las coordenadas del centro de la ciudad de Puntarenas -84.82353,9.97530 y la escala de 1:50000 en el espacio de Scale. De esta manera ubicaremos nuestro «mapa» en la ciudad de Puntarenas.

 


Parte 2. Utilizando el plugin QuickOSM

QGIS tiene una gran cantidad de plugins gratuitos que permiten realizar distintos tipos de análisis. Para este ejercicio utilizaremos el plugin QuickOSM que nos permitirá descargar desde QGIS los datos de OSM.

 

  1. Dar click en Plugins – Manage and Install Plugins…

 

  1. En la ventana de Plugins escribir QuickOSM y luego en Install plugin.

 

  1. Esperar a que se descargue e instale el plugin y luego cerrar la ventana.
  2. Abrir QuickOSM haciendo click en Vector – QuickOSM – QuickOSM

 

  1. En la ventana de QuickOSM, seleccionar building en el menú de Key y Canvas Extent en el menú bajo a Value. De esta manera le estamos diciendo a QGIS que descargue únicamente los objetos codificados como edificios en el área que está desplegada en la ventana principal.

 

Nota: OSM tiene una gran cantidad de códigos para los distintos objetos que se representan en sus mapas. La guía de todos los códigos que utiliza OSM se puede ver en el siguiente enlace: https://wiki.openstreetmap.org/wiki/ES:Map_Features

 

 

  • Damos click en Run query para correr la búsqueda y descarga de los datos.

 

 

  1. Al hacer esto QuickOSM nos descarga los puntos y polígonos de los edificios que han sido digitalizados en OSM por la comunidad en nuestra área de estudio.

 


Parte 3. Analizando los datos de OSM

 

Ahora que tenemos los datos en nuestro SIG podemos hacer múltiples análisis. Lo primero es un conteo de cuantas edificaciones tenemos en esa nueva capa.

 

  1. Damos click derecho en la capa building con ícono en forma de cuadro (esto significa que el tipo de dato es polígono) y luego hacemos click en Open Attribute Table para de esta manera ver la tabla de atributos de la capa y cuantas entidades hay en ella.

 

Si navegamos la tabla de atributos hasta el final, podemos ver que el total de entidades que hay en esta capa ( ~ edificios) son 271 (esto para la fecha en que se escribió el tutorial). ¿Serán estos todos los edificios que existen en Puntarenas? Para esto podemos cargar una imagen de GoogleEarth y hacer una comparación visual.

  1. Damos click derecho en el XYZ Tiles de la ventana Browser y luego click en New Connection…

 

  1. En la ventana de XYZ Connection llenar en Name: Imágenes Google Earth y en URL copiar y pegar la siguiente dirección y dar click en OK. http://mt0.google.com/vt/lyrs=y&hl=en&x={x}&y={y}&z={z}&s=Ga

De esta manera hacemos que QGIS pueda cargar como mapa base las imágenes de Google Earth.

 

Nota: en caso de querer ampliar la lista de mapas base de QGIS, pueden utilizar el script en Python que hizo Klas Karlsson: https://twitter.com/klaskarlsson/status/972757121933733889

 

  1. Ya agregada la nueva conexión a las imágenes de GoogleEarth, hacemos doble click en ella: XYZ Tiles – Imágenes Google Earth. Luego de que se despliegue la imagen, en la ventana de Layer arrastramos y soltamos esta nueva capa sobre la capa de OpenStreetMap para de esta forma poder ver los edificios sobre la imagen.

 

Efectivamente podemos ver a simple vista que la capa de edificios de OSM no representa todos los edificios que existen en la ciudad de Puntarenas. ¿Qué podemos hacer si lo que queremos es saber cuantas edificaciones hay en esta área? La primera opción es tomar el tiempo para editar en OSM desde las imágenes áreas los edificios que hacen falta, la otra opción es descargar todas las entidades que tiene OSM en esta área y buscar alguna que refleje mejor el número de edificios.

 

  1. Volvemos a abrir QuickOSM y en este caso únicamente seleccionamos Canvas Extent y hacemos click en Run query. De esta manera se descargarán todos los objetos que existen en el área de estudio.

 

  1. Reacomodamos las capas en la ventana Layers para tener la imagen de GoogleEarth debajo de los nuevos puntos allKeys.

 

  1. Abrimos la tabla de atributos de esta nueva capa de puntos y vemos que hay 141 entidades.

 

Si también reacomodamos las capas y ponemos los polígonos de building bajo los puntos de allKeys vemos que en muchos casos estos no se sobreponen, por lo que podríamos decir a manera de un estimado rápido que hay más de 412 (271 polígonos + 141 puntos) edificaciones y puntos de interés en la ciudad de Puntarenas.

 

Por Guillermo Durán

Ingeniero forestal y geógrafo, fellow en cambio climático por la Iniciativa Latinoamericana por los Datos Abiertos y Escuela de Datos. Tiene experiencia en el uso de diferentes tecnologías, como programación en R, PostgreSQL, ArcGIS y QGIS. Su trabajo en biogeografía lo ha llevado a diseñar áreas protegidas en Panamá, georeferenciar los datos de los museos de Historial Natural o trabajar en las distribuciones de ciertas especies en futuros climáticos usando Machine Learning. Guillermo estudió ingeniería forestal en Instituto Tecnológico de Costa Rica y luego obtuvo una maestría en Geografía en la Universidad Estatal de San Francisco, California. Ha colaborado con el Centro de Investigaciones Geofísicas de la Universidad de Costa Rica con el análisis y visualización de modelos climáticos.

Flattr this!

]]>
http://es.schoolofdata.org/2019/04/01/usando-qgis-y-openstreetmap-osm-para-mapear-edificaciones/feed/ 0 2717
Creación de mapas en QGIS http://es.schoolofdata.org/2019/04/01/creacion-de-mapas-en-qgis/ http://es.schoolofdata.org/2019/04/01/creacion-de-mapas-en-qgis/#respond Mon, 01 Apr 2019 17:19:18 +0000 https://es.schoolofdata.org/?p=2715 Esta entrada presenta una introducción general de cómo hacer mapas en QGIS. Pretende servir para incentivar el uso de QGIS en personas ajenas a los profesionales en Sistemas de Información Geográfica (SIG) y promover el uso de herramientas gratuitas de análisis de datos geográficos.


Para el tutorial utilizaremos los datos del Sistema Nacional de Información Territorial (SNIT) de Costa Rica, del Índice de Desarrollo Humano (IDH) Cantonal 2016 de Costa Rica y la versión 3 de QGIS.

 

QGIS es un programa de Sistemas de Información Geográfica (SIG) gratuito y de código abierto con una interfaz gráfica amigable al usuarios disponible para distintas plataformas. Actualmente es la opción gratuita más completa y fácil de usar para realizar análisis de datos espaciales. QGIS se puede descargar desde www.qgis.org

Objetivo del tutorial:

  • Elaborar un mapa de Costa Rica que resalte con nombre y en un gradiente de color los valores del índice de desarrollo humano de los 10 cantones con los valores menores.

Notas para tomar en cuenta durante el tutorial:

El tutorial se realizará utilizando la versión en inglés de QGIS versión 3.2.3.

Parte 1: Abrir QGIS y cargar los datos de límites cantonales del SNIT

  1. Dar doble click al ícono de QGIS.

 

  1. Dar click en Layer – Add Layer – Add WFS Layer…

 

De esta manera estaremos agregando al QGIS la dirección del WebFeatureService (WFS) del SNIT para los datos oficiales de Costa Rica escala 1:5,000. Para más información sobre qué es un WFS pueden acceder la entrada anterior del blog sobre tipos de datos geográficos.

 

  1. En la ventana que aparece, dar click en el botón de New de la sección Server connections.

 

  1. Seguidamente escribiremos en el espacio Name el nombre que le queremos dar a este conjunto de datos, por ejemplo: CartografiaCR_1:5000.

 

  1. En el espacio URL copiaremos la dirección del servicio del SNIT para estos datos:

http://geos.snitcr.go.cr/be/IGN_5/wfs?

 

  1. Dar click en OK para aceptar y cerrar esa ventana.

 

Vale la pena mencionar que el SNIT es la Infraestructura de Datos Espaciales (IDE) oficial de Costa Rica. En esta plataforma se pueden encontrar datos geográficos producidos por distintas instituciones públicas del país. Estos datos geográficos se sirven tanto en formatos OGC (estándares de datos para poderlos desplegarlos en programas de SIG sin necesidad de descargar todo el conjunto de datos en la computadora) así como también en la herramienta de mapas online con que cuenta la plataforma. En nuestro caso usaremos QGIS para trabajar los datos porque nos da mayor flexibilidad que la herramienta web.

 

La lista completa de fuentes de información y conjuntos de datos con que cuenta el SNIT se puede acceder acá.

 

Muchos países cuentan desde hace varios años con IDEs donde se pueden acceder muchos conjuntos de datos geográficos libremente. Normalmente con una búsqueda de Google pueden encontrar el IDE del país o gobierno local donde viven.

 

  1. Dar click en Connect

 

Seguidamente aparecerá la lista de capas que tiene ese conjunto de datos. Cada una de estas viene siendo como una tabla – cuadro con información geográfica. En nuestro caso queremos desplegar la que tiene la información sobre los límites cantonales del país.

 

  1. Dar click en Límite Cantonal 1:5mil y en Add (esquina inferior derecha de la ventana).

 

Luego aparecerá una ventana con el indicador de la descarga de la capa seleccionada. Al ser una capa con una escala bastante fina (1:5000), el tamaño de la información es grande, por lo que dependiendo de la velocidad de conexión podrá tomarse varios segundos en desplegarse.

 

La capa desplegada muestra un polígono por cada cantón del país. Nótese que en Layers (ventana inferior izquierda) se muestra la capa que recién agregamos y hay un checkbox donde podemos ocultar y volver a hacer visible la capa.

Parte 2: Cargar tabla con datos del IDH

Los datos del Índice de Desarrollo Humano (IDH) que se utilizarán en este ejercicio son tomados del trabajo del PNUD y la Universidad de Costa Rica Atlas de Desarrollo Humano Cantonal de Costa Rica 2016. En nuestro caso utilizaremos los datos de los 10 cantones con menor índice de IDH para el año 2014.

 

  1. Copiar y guardar la siguiente tabla en un archivo con terminación .csv. Esto puede hacerse copiando y pegando la tabla en una hoja de Excel y guardándola como archivo .csv (archivo separado por comas).

Nota: Como es necesario mantener las tildes de los nombres de los cantones, el archivo se debe salvar con el formato de codificación de caracteres UTF-8. Dependiendo de la versión de Excel que se utilice, esto está en la lista de tipos de archivos del guardar como.

 

Canton 2014
Los Chiles 0.617
Talamanca 0.634
Matina 0.645
Upala 0.651
La Cruz 0.651
Coto Brus 0.669
Guácimo 0.670
Guatuso 0.670
Alajuelita 0.676

 

  1. En QGIS dar click en Layer – Add Layer – Add Delimited Text Layer … y seleccionar el archivo creado en el paso anterior.

 

La ventana deberá tener la información como la que se ve a continuación.

Nótese que el Encoding también debe ser UTF-8 y que en el cuadro de Geometry definition indicamos el No geometry (attribute only table). Esto último significa que la tabla que estamos agregando no tiene información geográfica.

 

  1. Dar click en Add para importar la tabla al QGIS y luego Close para cerrar la ventana.

 

Nótese que ahora en la lista de capas del QGIS nos aparecen las dos que cargamos anteriormente pero que la última, al no tener información geográfica (coordenadas), no tiene el checkbox desplegarla y ocultarla. Si queremos ver esta tabla debemos darle click derecho a la capa y luego click izquierdo en Open Attribute Table.

 

Parte 3: Unión de tablas por atributo común

Como vimos anteriormente tenemos dos «capas» cargadas en QGIS, una tiene información geográfica (polígonos con los cantones de Costa Rica) y la otra únicamente tiene información tabular (Cantones y valor de IDH). Lo que debemos hacer ahora es unir estas dos capas por un campo común.

 

Para ver la tabla de atributos de la capa del SNIT, le damos también click derecho y luego click izquierdo en Open Attribute Table. En sus atributos vemos que hay una columna con el nombre de los cantones en un formato similar a la tabla con IDH (letra inicial en mayúscula y nombres con tildes), lo que hace que podamos unir ambas tablas usando los nombres de los cantones.

 

  1. Dar click derecho en la capa del SNIT y click izquierdo en Properties.

 

  1. Damos click en la pestaña de Join y damos click en el signo de + de la esquina inferior izquierda. Seguidamente seleccionamos para Join layer la tabla con los valores de IDH, para Join field la columna Canton y en Target field la columna nom_canton  de los atributos de la capa del SNIT. Luego de esto damos click en OK.

 

Si ahora abrimos la tabla de atributos de la capa del SNIT y vemos las últimas columnas, podemos notar que se agregó una columna nueva con el nombre de la tabla de IDH. Esta nueva columna tiene valores numéricos para únicamente los 10 cantones de la tabla, el resto de cantones tienen valores nulos (NULL).

 

Parte 4: Elaboración de mapa

 

  1. Hacemos zoom a la parte continental de Costa Rica con el botón de lupa:

 

  1. Dar doble click en la capa original del SNIT para ver las propiedades. En la nueva ventana dar click en la pestaña de Symbology.

 

  1. De las opciones de la simbología, en el menú superior seleccionar Categorized, en Column la columna que queremos utilizar (la de la tabla con los valores de IDH), en Color ramp alguna paleta de colores atractiva (en mi caso seleccioné Viridis). Luego dar click en el botón de Classify para ver la clasificación de colores de cada valor de IDH.

 

Ya que el color amarillo que se asignaría a los cantones en que el IDH es nulo es muy llamativo (último valor de la lista de colores), podemos dar click en él y seleccionar un color más neutro, en mi caso seleccioné el color blanco.

 

Dar click en OK para ver las modificaciones que se hicieron.

 

  1. Para que el mapa muestre los nombres de los 10 cantones con menores valores de IDH volvemos a entrar a las propiedades de la capa del SNIT (doble click o click derecho y luego click izquierdo en Properties…).

 

  1. En el menú de las propiedades damos click en la pestaña de Labels. Y ahí en el menú superior damos click en Rule-based labeling.

 

  1. Ahora vamos a crear una regla para que el mapa únicamente muestre los nombres de los cantones con valores de IDH (10 cantones con menores IDH). Para esto damos click en el signo de + en la parte inferior derecha de la ventana y en el campo de Filter copiamos la expresión de:

«IDH10cantones_2014»  IS NOT NULL

 

  1. En la misma ventana dar click al cuadro de Labels y en el menú de Label with seleccionar la columna con los nombres de los cantones que queremos utilizar como etiquetas: nom_cant.

 

Si se explora la parte inferior de la ventana de Edit Rule se ven las opciones para cambiar el tipo de letra, color, tamaño, etc. Ajustarlo al gusto y dar click en OK.

 

  1. Al regresar a la ventana de propiedades, quitarle el check a la regla de (no filter) (ver la captura de pantalla abajo) y dar click en OK.

 

En caso de querer cambiar los colores, tipo y tamaño de letra se puede hacer nuevamente desde la ventana de propiedades de la capa, haciendo click en el ícono de edición:

 

Parte 5: Exportar el mapa

  1. Para darle los toques finales al mapa, agregar simbología, título y escala utilizamos la herramienta de layout. La accedemos en el menú de Project – New Print Layout…

 

  1. En la ventana que aparece damos click en OK

 

  1. En el menú de la ventana de Layout hacemos click en Add Item – Add Map y seguidamente marcamos arrastrando y soltando en la hoja blanca la extensión que queremos que tenga nuestro mapa.

 

  1. Agregamos la leyenda haciendo click en Add Item – Add Legend y seleccionamos con click de arrastrar y soltar donde queremos la leyenda en nuestro mapa.

 

  1. Para corregir los elementos de la leyenda (eliminar el nombre de la tabla de IDH y corregir el nombre de la capa del SNIT) damos click en la leyenda. Nos damos cuenta que está seleccionada por los cuadros celestes que se marcan en sus bordes.

 

5.1. En el menú de Item Properties de la derecha de la ventana hacemos click para desmarcar el checkbox de Auto update.

 

5.2. En esa misma sección de la ventana damos click en la tabla con valores de IDH para seleccionarla y luego damos click en el botón de (color rojo), en la parte inferior de la ventana, para eliminarla de la leyenda.

 

5.3. En esa misma sección de la ventana damos click en la capa del SNIT y luego en el botón de edición. Cambiamos el nombre que se desplegará en la leyenda para esa capa.

 

5.4 Damos click en OK para aceptar los cambios.

 

  1. Agregamos escala del mapa haciendo click en Add Item – Add Scale Bar y marcamos arrastrando y soltando en la hoja blanca la posición y tamaño que queremos que tenga.

 

  1. Agregamos el título del mapa haciendo click en Add Item – Add Label y marcamos arrastrando y soltando la posición y tamaño del cuadro donde queremos que esté el título.

 

  1. Cambiamos el nombre del título haciendo click en el cuadro del título y luego en la pestaña de Item Properties al lado derecho de la ventana. En el espacio de Main properties escribimos el título y en las opciones de Appearance – Font el tamaño y tipo de letra.

 

  1. Finalmente exportamos el mapa haciendo click en el menú de Layout – Export as Image y seleccionando el formato y nombre de archivo que se desee.

 

Por Guillermo Durán

Ingeniero forestal y geógrafo, fellow en cambio climático por la Iniciativa Latinoamericana por los Datos Abiertos y Escuela de Datos. Tiene experiencia en el uso de diferentes tecnologías, como programación en R, PostgreSQL, ArcGIS y QGIS. Su trabajo en biogeografía lo ha llevado a diseñar áreas protegidas en Panamá, georeferenciar los datos de los museos de Historial Natural o trabajar en las distribuciones de ciertas especies en futuros climáticos usando Machine Learning. Guillermo estudió ingeniería forestal en Instituto Tecnológico de Costa Rica y luego obtuvo una maestría en Geografía en la Universidad Estatal de San Francisco, California. Ha colaborado con el Centro de Investigaciones Geofísicas de la Universidad de Costa Rica con el análisis y visualización de modelos climáticos.

Flattr this!

]]>
http://es.schoolofdata.org/2019/04/01/creacion-de-mapas-en-qgis/feed/ 0 2715
Introducción a los formatos de datos espaciales http://es.schoolofdata.org/2019/04/01/introduccion-a-los-formatos-de-datos-espaciales/ http://es.schoolofdata.org/2019/04/01/introduccion-a-los-formatos-de-datos-espaciales/#respond Mon, 01 Apr 2019 15:50:30 +0000 https://es.schoolofdata.org/?p=2709 En esta publicación estaremos hablando sobre los datos espaciales, sus características más importantes y ejemplos de tipos de información en que se utilizan. En la primera parte nos enfocaremos en generalidades sobre los tipos de datos espaciales, qué tipos existen y qué tipo de información guardan. En la segunda entraremos más en detalle sobre los distintos archivos más populares para guardar estos tipos de datos.


Tipos de datos espaciales:

Los datos espaciales se pueden agrupar en dos tipos generales: los datos vectoriales y  los datos rasterizados (o también llamados datos raster o «mapas de bits»). Estos dos tipos existen ya que por sus características, cada uno puede representar de mejor manera distintos componentes del espacio. Por ejemplo: los datos de caminos, ubicaciones de edificaciones o poblados normalmente se guardan como datos vectoriales, mientras que las imágenes de satélite o fotos aéreas como datos raster. En el caso de ambos, existen formatos de datos abiertos y propietarios.

Antes de entrar en detalle de los distintos formatos utilizados es importante tener claras las entidades que componen ambos tipos de datos espaciales:

Los datos vectoriales pueden representar tres tipos distintos de entidades: puntos, líneas y polígonos.

  • En el caso de los puntos, cada punto tiene coordenadas X-Y que definen su ubicación en el espacio.
  • En el caso de las líneas, cada línea tiene un par de coordenadas para cada uno de sus vértices. El ejemplo más sencillo es una recta, que se representaría como la línea que existe entre las coordenadas de su punto de inicio y las de su punto final.
  • Los polígonos son datos con coordenadas para cada uno de los vértices que lo componen. Un polígono podría pensarse como el área que se limita por un conjunto de líneas consecutivas que inician y terminan en el mismo punto.

Vale mencionar que una característica importante de los datos vectoriales es que cada una de sus entidades (cada línea, punto o polígono de un archivo) puede tener una tabla de atributos asociados. Esto significa que, por ejemplo, cada sección de un camino puede tener una tabla de atributos con información como «material de que está hecho», «número de carriles», «grosor del pavimento», etc.

Los datos raster, en cambio, son una malla (o dicho técnicamente, una matriz) donde cada celda (o pixel) tiene un tamaño similar y un valor específico. En el caso de las imágenes a color, el raster estaría compuesto por tres matrices sobrepuestas, cada una con celdas que tienen el valor correspondiente a un color primario (enlace a teoría del color). Cuando se utilizan imágenes de satélite u otros sensores (multiespectrales o hiperespectrales) cada archivo puede contener hasta cientos de matrices que representan distintos rangos de lo observado.

Aparte de imágenes, es común tener en archivos raster modelos de elevación digital, que son «imágenes» (una sola matriz) con los valores de elevación promedio del área que corresponde a cada celda.

 

En resumen:

Los archivos vectoriales los usamos para guardar geometrías como puntos, líneas o polígonos. Usualmente representan entidades del paisaje que se acoplan a esas características como: centros de pueblos, ubicación de edificios, ríos, caminos, lotes o predios.

Los archivos raster los utilizamos para guardar imágenes o conjuntos de datos espaciales donde haya una gradación entre valores y/o cuando los límites entre los componentes del paisaje son muy difusos; por ejemplo: fotos aéreas, imágenes de satélite, modelos de elevación o modelos climáticos.

 


Tipos de archivos para datos espaciales

Shapes

En el caso de los archivos vectoriales, el formato más popular es el shapefile. Este es un archivo que fue desarrollado originalmente por la empresa ESRI y que puede contener únicamente un tipo de dato vectorial (o puntos, o líneas o polígonos). Los archivos shape realmente son un conjunto de archivos binarios que para desplegarlos deben tener el mismo nombre y ubicarse en un mismo folder. Los tres archivos básicos que componen un shapefile terminan en .shp, .shx y .dbf.

 

GeoJSON

Uno de los formatos abiertos más utilizados para distribuir datos geográficos es el GeoJSON. Este, al igual que el JSON popularmente utilizado en el web, es un archivo de texto pero que también guarda las coordenadas de los vértices de las entidades que se representan. Al ser un archivo de texto, en geometrías complejas (con muchos vértices) su tamaño será mucho mayor que cuando los datos se guardan en formatos binarios .

 

GeoPackage

Otro formato abierto que ha tomado fuerza en la comunidad de usuarios de SIG es el GeoPackage (terminación de archivos en .gpkg). Este es un archivo binario (es un contenedor de la base de datos SQLite) que tiene la gran ventaja de poder contener tanto datos vectoriales como raster e inclusive tablas de metadatos.

 

KML

El Keyhole Markup Language (KML) es un tipo de formato abierto originalmente utilizado para desplegar y guardar datos en Google Earth pero que se ha vuelto común entre los usuarios de datos geográficos de otras plataformas. El formato se utiliza para guardar datos vectoriales pero también puede contenter en archivos con terminación .kmz imágenes sobrepuestas, íconos y otros elementos.

 

CSV

Vale la pena mencionar que en su representación más simple (puntos), los archivos vectoriales también pueden representarse como texto separado por comas (.csv), con columnas para los pares de coordenadas.

 

GeoTIFF

En el caso de los datos raster, existen una gran variedad de archivos capaces de almacenarlos. Uno de los más populares es el GeoTIFF, una modificación al popular archivo de imágenes TIFF, pero que le permite guardar datos con coordenadas geográficas. Normalmente el archivo con terminación .tif debe de acompañarse con un archivo del mismo nombre pero con terminación .tfw, que es el world file que le da la referencia geográfica al raster.

 

Otros archivos propietarios comunes para guardar datos raster y que también se pueden leer en muchos de los programas más utilizados son los .img del software ERDAS Imagine y los archivos .sid, también conocidos como MrSID.

 

NetCDF

En cuanto a formatos abiertos para datos raster, el más utilizado, especialmente para datos climáticos, es el netCDF (terminación de archivos en .nc). Este formato es sumamente ágil para guardar todo tipo de datos y tiene muchas ventajas para el procesamiento en herramientas gratuitas. Dependiendo de la fuente de los datos, estos archivos pueden llegar a pesar teras completos, por lo que su manipulación puede requerir más experiencia en el manejo y análisis de este tipo de datos.

 

WebServices

Los estándares de servicios web para datos geográficos más populares actualmente son los WMS y WFS. Estos se accesan a través de un URL que puede integrarse a sitios web y programas de SIG para desplegar o descargar los datos. Muchos de los portales de Infraestructura de Datos Espaciales (IDEs) de los gobiernos sirven ambos tipos de servicios web y son una fuente muy importante para obtener datos geográficos oficiales.

El Web Feature Service (WFS) es un protocolo que proporciona datos vectoriales y que, dependiendo del programa en que se estén desplegando, permite guardar localmente los datos en cualquiera de los formatos para vectores que se mencionaron anteriormente.

Los Web Map Service (WMS) sirven datos en mapas de bits («imágenes») que, a diferencia de los WFS, no pueden descargarse como datos crudos. Si, por ejemplo, se utiliza un IDE para accesar fotos aéreas o mapas antiguos, se debería de utilizar un WMS.

 

Por Guillermo Durán

Ingeniero forestal y geógrafo, fellow en cambio climático por la Iniciativa Latinoamericana por los Datos Abiertos y Escuela de Datos. Tiene experiencia en el uso de diferentes tecnologías, como programación en R, PostgreSQL, ArcGIS y QGIS. Su trabajo en biogeografía lo ha llevado a diseñar áreas protegidas en Panamá, georeferenciar los datos de los museos de Historial Natural o trabajar en las distribuciones de ciertas especies en futuros climáticos usando Machine Learning. Guillermo estudió ingeniería forestal en Instituto Tecnológico de Costa Rica y luego obtuvo una maestría en Geografía en la Universidad Estatal de San Francisco, California. Ha colaborado con el Centro de Investigaciones Geofísicas de la Universidad de Costa Rica con el análisis y visualización de modelos climáticos.

Flattr this!

]]>
http://es.schoolofdata.org/2019/04/01/introduccion-a-los-formatos-de-datos-espaciales/feed/ 0 2709
¿Qué son los sistemas de coordenadas cartográficas? http://es.schoolofdata.org/2019/04/01/que-son-los-sistemas-de-coordenadas-cartograficas/ http://es.schoolofdata.org/2019/04/01/que-son-los-sistemas-de-coordenadas-cartograficas/#respond Mon, 01 Apr 2019 15:15:32 +0000 https://es.schoolofdata.org/?p=2700 ¿Qué es lo que hay que considerar cuando queremos hacer un mapa? Te explicamos los sistemas de coordenadas cartográficas, cómo funcionan, qué sistemas de proyección existen y cómo influencian tus trabajos con geodatos.


Cuando elaboramos un mapa o croquis que trata de representar con cierta precisión el espacio físico se nos hace necesario utilizar un sistema de referencia, sin este no sería posible ubicar en el mapa nuestros datos. Este sistema de referencia es lo que comúnmente conocemos como coordenadas cartográficas.

Normalmente esos valores – las coordenadas – son dos números que representan la ubicación de lo que queremos posicionar en el mapa, y se ubican con relación a los puntos cardinales. Estos valores muestran la ubicación horizontal de lo que queremos localizar, un valor es la ubicación en el eje X (este – oeste) y el otro en el eje Y (norte – sur). Puede darse también el caso de que las coordenadas tengan un tercer valor que corresponda a la ubicación en el eje vertical (elevación, eje Z), pero estas últimas no son comúnmente utilizadas.

Cada sistema de coordenadas tiene un nombre, código y parámetros que lo definen. Estas características son necesarias para transformar entre distintos sistemas con la mayor precisión posible y así desplegar correctamente en un mismo mapa las ubicaciones de datos con coordenadas de sistemas distintos. El identificador para cada distinto sistema de coordenadas se conoce como el CRS (del inglés Coordinate Reference System) y sin este no se ubicarían correctamente nuestros datos. Cuando se necesita conocer el CRS de un conjunto de datos se recomienda utilizar el sitio http://epsg.io, en este se encuentra la información y parámetros de la mayoría de los sistemas de coordenadas cartográficas utilizados en el mundo.

¿Coordenadas proyectadas o no proyectadas?

Cuando utilizamos conjuntos de datos que poseen coordenadas cartográficas, llegaremos a notar que muchos de estos tienen coordenadas con unidades distintas: unas coordenadas pueden estar en grados – minutos – segundos, otras en números positivos y negativos con muchos decimales o inclusive en metros o pies. La razón de estas diferencias es la problemática que existe cuando tratamos de representar en una superficie plana la superficie de la Tierra.

La Tierra es una esfera (o técnicamente, un elipsoide – achatada en los polos) por lo que si queremos representarla en una superficie plana como un mapa o una pantalla de computadora, tendremos distintos problemas relacionados a distorsiones de los elementos que se quieren mostrar. Un ejemplo de este problema de transformación de superficies distintas es cuando vemos en un mapa del mundo que el tamaño de Groenlandia es similar al de todo el continente Africano (como antiguamente en Google Maps) y en realidad el área de Groenlandia es unas 14 veces menor a la de toda África.

Para el abordaje de este problema existen distintos sistemas de coordenadas, y un cartógrafo, dependiendo de la situación y objetivos del mapa a realizar, decidirá escoger entre sistemas de coordenadas que muestren fielmente, por ejemplo, la forma de los elementos del mapa. En otros casos, el cartógrafo preferirá que las proporciones de las áreas de estos elementos se acerquen más a los reales (comprometiendo la forma de estos). Normalmente si el mapa que estamos haciendo es de un área muy pequeña, no deberíamos de preocuparnos por estas distorsiones, pero si es de un continente o del planeta sí deben de tenerse en cuenta.

Cuando las coordenadas se dan como ángulos (grados-minutos-segundos o grados-minutos y decimales o grados con decimales) se le llaman coordenadas no proyectadas (algunos inclusive las llaman coordenadas geográficas) y se les dice así porque estos valores se dan por el ángulo que se produce en el centro de la tierra entre la ubicación del dato y un punto de referencia (Meridiano de Greenwich o el paralelo del Ecuador). En este caso las coordenadas se dan en pares Lat Long, siendo la latitud la coordenada en el eje Y, con valor positivo si está al norte del ecuador y negativo si está al sur. La longitud es en el eje X y posee valores negativos que representan ubicaciones al oeste del Meridiano de Greenwich y positivos al este.

En caso de que las coordenadas se den en unidades de distancia (metros, pies, etc.) se les llaman coordenadas proyectadas, ya que para generar estos valores hubo que proyectar la superficie del planeta en una superficie plana. Aunque existen muchos sistemas de proyección, el más utilizado es el UTM (Universal Transverse Mercator), el mismo que antiguamente utilizaba Google Maps.

Afortunadamente la mayoría de herramientas para trabajar con datos geográficos, tanto los programas de sistemas de información geográfica (QGIS, ArcGIS, gvSIG), análisis de datos (R/Python) como para visualización en web (D3, Leaflet), manejan muchos sistemas de coordenadas.

Para quienes deseen conocer más sobre el tema, un video educativo de Vox muestra de manera sencilla las tecnicalidades que envuelven el problema de representar la superficie de la Tierra en una superficie plana:

Jason Davies tiene una excelente animación en D3 de los distintas proyecciones y cómo cambia la forma y tamaño de los distintos componentes del mapa de acuerdo al sistema de coordenadas utilizado: https://www.jasondavies.com/maps/transition/

Tips para trabajar con coordenadas

Cada país cuenta con un sistema de coordenadas oficial y algunos tienen varios (¡en Costa Rica, un país diminuto, tenemos 3 sistemas de coordenadas que en algún momento fueron oficiales!); por consiguiente, saber en cuál sistema están las coordenadas del conjunto de datos a veces puede ser una labor compleja. Aún así se pueden dar varios tips:

  • Si los datos tienen coordenadas no proyectadas (valores en ángulos: grados-minutos-segundos, grados con decimales, grados-minutos con decimales) lo más probable es que estén en el sistema de coordenadas WGS84 (CRS EPSG:4326), este también es el sistema de coordenadas que utilizan nativamente los dispositivos de navegación por satélite (GPS).
  • Si los datos vienen de un sistema catastral nacional, las coordenadas posiblemente sean proyectadas y estén en el sistema de coordenadas oficial del país. En caso de no conocer el CRS, pueden buscarlo con el nombre del país en el enlace que se dio anteriormente.
  • Si se están tomando los datos de mapas impresos, normalmente la información del sistema de coordenadas se da en la parte inferior del mismo.

 

Por Guillermo Durán

Ingeniero forestal y geógrafo, fellow en cambio climático por la Iniciativa Latinoamericana por los Datos Abiertos y Escuela de Datos. Tiene experiencia en el uso de diferentes tecnologías, como programación en R, PostgreSQL, ArcGIS y QGIS. Su trabajo en biogeografía lo ha llevado a diseñar áreas protegidas en Panamá, georeferenciar los datos de los museos de Historial Natural o trabajar en las distribuciones de ciertas especies en futuros climáticos usando Machine Learning. Guillermo estudió ingeniería forestal en Instituto Tecnológico de Costa Rica y luego obtuvo una maestría en Geografía en la Universidad Estatal de San Francisco, California. Ha colaborado con el Centro de Investigaciones Geofísicas de la Universidad de Costa Rica con el análisis y visualización de modelos climáticos.

Flattr this!

]]>
http://es.schoolofdata.org/2019/04/01/que-son-los-sistemas-de-coordenadas-cartograficas/feed/ 0 2700
Cómo crear un mapa 3D de Buenos Aires, Argentina http://es.schoolofdata.org/2017/10/04/como-crear-un-mapa-3d-de-buenos-aires-argentina/ http://es.schoolofdata.org/2017/10/04/como-crear-un-mapa-3d-de-buenos-aires-argentina/#respond Wed, 04 Oct 2017 18:47:26 +0000 http://es.schoolofdata.org/?p=2303 Por Nicolas Grossman y Bruno Salerno

Los mapas son excelentes herramientas para visualizar datos de una ciudad y compararlos entre zonas de la misma. Pero si además podemos graficar los edificios en tres dimensiones, la visualización resulta más impactante aún. En este tutorial contamos cómo realizamos el mapa que muestra los precios promedio del metro cuadrado en cada parcela de la ciudad de Buenos Aires (Argentina) y San Pablo (Brasil), con sus respectivos edificios en 3D.

1. Obtener los shapefiles con las geometrías de las parcelas/edificios de la ciudad y su respectiva altura y un dataset con las propiedades en venta y su precio.

En el caso de Buenos Aires, la información  está en archivos distintos.

2. Calcular el precio por metro cuadrado y la altura para cada parcela

A partir del dataset de propiedades y el de parcelas, utilizando un spatial join de Qgis, se calcula el precio promedio del metro cuadrado que le corresponde a cada parcela. Este tutorial explica simplemente cómo hacerlo.

Luego unimos los datos de las parcelas con la altura de cada edificio.

Se hace una union de estos datasets por el campo que identifica a cada parcela, que incluye la “sección”, la “manzana” y la “parcela”, para así poder asociar cada parcela a su altura correspondiente.

3. Transformar el shapefile en un tileset vectorial

En este punto transformamos el shapefile en un tileset vectorial que es un tipo información georeferenciada que usan múltiples tecnologías de mapas digitales para mostrar los datos.

Se denominan «tilesets» porque se trata de un malla de mosaicos que cubre la superficie deseada: cada mosaico tiene cierta información que va siendo dibujada a medida que navegamos por esa zona del mapa. Si no fuera por estos mosaicos sería muy lento mostrar toda la información que muestra el mapa.

Primero hay que convertir el shapefile producido en el primer punto en un GEOJSON (QGis=> guardar como => GeoJSON).

Usaremos el formato de tiles vectorial de Mapbox, mbtiles, ya que es ahí donde nosotros vamos a subir nuestro tileset. Para realizar la conversión de geojson a mbtiles usaremos el programa tippecanoe (https://github.com/mapbox/tippecanoe):

tippecanoe -o 3d_map_tileset.mbtiles -z 17 -Z 12 3d_map_tileset.geojson

Los parámetros z y Z son importantes, porque los tilesets se construyen por nivel de zoom. Cuanto más grande es el rango de zooms para el que se construye el tileset, más pesado es.

4. Subir el tileset a Mapbox Studio

Una vez generado el archivo, hay que subirlo a Mapbox Studio, en la sección datasets.

 

5. Programar Javascript

Vamos a necesitar programar un poco de javascript para poder mostrar la capa. De hecho, hay que hacer una aplicación en javascript que nos permita cargar un baselayer y el tileset en cuestión. Para eso vamos a usar Mapbox GL JS (https://github.com/mapbox/mapbox-gl-js).  La documentación sobre la API se encuentra en https://www.mapbox.com/mapbox-gl-js/api/.

Supongamos que vamos a hacer todo en un archivo llamado “our_map.html”. Los pasos a seguir serían:

        1. Crear el esqueleto de html:

<html>

<body

  <!– mapbox gl js –>

  <script src=’https://api.tiles.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl.js’></script>

  <link href=’https://api.tiles.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl.css’ rel=’stylesheet’ />

<script>

  // Here we are going to put our map code

</script>

</body>

</html>

Tenemos que realizar las siguientes tareas dentro del bloque <script>

        2. Cargar mapbox

  var center = [-58.388875,-34.612427];

 

      mapboxgl.accessToken = ‘YOUR ACCESS TOKEN’;

      var map = new mapboxgl.Map({

        container: ‘map’,

        style: ‘mapbox://styles/YOUTUSER/YOUR_BASE_STYLE’,

        center: center,

        zoom: 13.5,

        pitch: 59.5,

        bearing: 0

      });

       3. Cargar el tileset:

 map.on(‘style.load’, function () {

          map.addSource(‘buildings’,

              {«type»: «vector»,

                «url»: «THE TILESET URL»

              });

          map.addLayer({

            ‘id’: ‘buildings’,

            ‘interactive’: true,

            ‘type’: ‘fill-extrusion’,

            ‘source’: ‘buildings’,

            ‘source-layer’: ‘super_new_join_finalgeojson’,

            ‘paint’: {

              ‘fill-extrusion-height’: {

                ‘property’: ‘altura’,

                ‘stops’: [

                  [{zoom: 13, value: 0},   0],

                  [{zoom: 13.5, value: 1000}, 0],

                  [{zoom: 17.5, value: 0}, 0],

                  [{zoom: 17.5, value: 1000}, 1000]

                ]

              },

              ‘fill-extrusion-color’: {

                ‘property’: ‘precio’,

                ‘stops’: [

                  [0, ‘#e6e6e6’],

                  [700, ‘#ffffb2’],

                  [1754, ‘#fecc5c’],

                  [2233, ‘#fd8d3c’],

                  [2751, ‘#f03b20’],

                  [3683, ‘#bd0026’]

                ]

              },

              ‘fill-extrusion-opacity’: 0.9

            }

          }, ‘road_major_label’);

        });

Tomar nota de las partes más importantes:

 ‘fill-extrusion-height’: {

            ‘property’: ‘altura’,

}

Aquí estamos diciendo “tomar las alturas de los edificios del campo ‘altura’”.

Y

fill-extrusion-color: style: {

          ‘property’: ‘precio’,

          ‘stops’: [

            [0, ‘#e6e6e6’],

            [700, ‘#ffffb2’],

            [1754, ‘#fecc5c’],

            [2233, ‘#fd8d3c’],

            [2751, ‘#f03b20’],

            [3683, ‘#bd0026’]

          ]

        }

Aquí estamos diciendo “pintar usando los valores del campo ‘precio’ y usar los rangos para diferenciar los colores”, si no hay valor, usar ‘#e6e6e6’, si el valor está entre 0 y 700, usar ‘#ffffb2’, si el valor está entre 700 y 1754 usar  ‘#fecc5c’, y así sucesivamente.

 

El código completo sería:

<html>

  <body

    <!– mapbox gl js –>

    <script src=’https://api.tiles.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl.js’></script>

    <link href=’https://api.tiles.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl.css’ rel=’stylesheet’ />

    <div style=»padding:0; margin:0; width:100%; height:100%» id=»map»></div>

    <script>

      window.onload = function(){

        var center = [-58.388875,-34.612427];

        mapboxgl.accessToken = ‘YOUR ACCESS TOKEN’;

        var map = new mapboxgl.Map({

          container: ‘map’,

          style: ‘mapbox://styles/YOUTUSER/YOUR_BASE_STYLE’,

          center: center,

          zoom: 13.5,

          pitch: 59.5,

          bearing: 0

        });

        map.on(‘style.load’, function () {

          map.addSource(‘buildings’,

              {«type»: «vector»,

                «url»: «THE TILESET URL»

              });

          map.addLayer({

            ‘id’: ‘buildings’,

            ‘interactive’: true,

            ‘type’: ‘fill-extrusion’,

            ‘source’: ‘buildings’,

            ‘source-layer’: ‘super_new_join_finalgeojson’,

            ‘paint’: {

              ‘fill-extrusion-height’: {

                ‘property’: ‘altura’,

                ‘stops’: [

                  [{zoom: 13, value: 0},   0],

                  [{zoom: 13.5, value: 1000}, 0],

                  [{zoom: 17.5, value: 0}, 0],

                  [{zoom: 17.5, value: 1000}, 1000]

                ]

              },

              ‘fill-extrusion-color’: {

                ‘property’: ‘precio’,

                ‘stops’: [

                  [0, ‘#e6e6e6’],

                  [700, ‘#ffffb2’],

                  [1754, ‘#fecc5c’],

                  [2233, ‘#fd8d3c’],

                  [2751, ‘#f03b20’],

                  [3683, ‘#bd0026’]

                ]

              },

              ‘fill-extrusion-opacity’: 0.9

            }

          }, ‘road_major_label’);

        });

      }

    </script>

  </body>

</html>

Servir el HTML desde un server

Ahora hay que servir el html desde un server. En nuestra máquina local podemos usar http-server . Una vez instalado, (se puede instalar con npm: npm install http-server), hay que correrlo en la misma carpeta donde tenemos nuestro html. Y después, en el browser, navegar a localhost:8080/our_map.html.

Flattr this!

]]>
http://es.schoolofdata.org/2017/10/04/como-crear-un-mapa-3d-de-buenos-aires-argentina/feed/ 0 2303