Datos personales

Romeo. Con la tecnología de Blogger.
RSS

Tableau Ambassadors 2016

$$$$$$$$$$$$$$$$$$$$$$$$

$$$$$$$$$$$$$$$$$$$$$$$$$

Para ver el trabajo elaborado en casa: 
https://public.tableau.com/views/HistoriadelFtbolde10Equipos/PaisesMundialistas?:embed=y&:display_count=yes&:showTabs=y
So much honored to be named as a Tableau Ambassador 2016!
https://www.tableau.com/about/blog/2016/1/inspiring-community-new-tableau-ambassadors-49315

Below is a viz dedicated to the class 2016, my fellow ambassadors. In the viz, I experimented with some monster tooltips or viz over viz. The background is from MapBox.

The pictures rendered in Tableau Public can be blurry sometimes, because Tableau seems unable to handle HD image in Shapes for the moment. With a tooltip, one can see better. Click the image to see the interactive version.
%%%%%%%%%%%%%%%%%%%%%%

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Crear un buffer con PostGIS (en grados, metros y de forma dinámica)

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Crear un buffer con PostGIS (en grados, metros y de forma dinámica)

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
La operación de buffer es común en los flujos de trabajo GIS, y también está disponible enPostGIS. PostGIS es una extensión que convierte el sistema de base de datos PostgreSQLen una base de datos espacial. La combinación de ambos es una solución perfecta para el almacenamiento, gestión y mantenimiento de datos espaciales. PostGIS además se convierte en una alternativa real al uso de archivos shapefile.
La herramienta ST_Buffer de PostGIS
La función ST_Buffer es una herramienta de geoprocesamiento de geometrías que nos devuelve una geometría que representa todos los puntos cuya distancia a esta geometría es menor o igual a la distancia dada.
Para el tipo geometry los cálculos están en el Sistema de Referencia Espacial de esta geometría. Para el tipo geography se utiliza una transformación plana.
Antes de continuar vamos a explicar que es esto de los tipos geometry y geography:
La base para el tipo de geometría PostGIS es un plano. El camino más corto entre dos puntos en el plano es una línea recta. Eso significa que los cálculos sobre geometrías (áreas, distancias, longitudes, intersecciones, etc) se pueden calcular utilizando matemáticas cartesianas y vectores de línea recta. Utilizamos el tipo geometry para cálculos sobre áreas a escala local, regional o nacional.
La base para el tipo geográfico de PostGIS es una esfera. El camino más corto entre dos puntos de la esfera es un arco de círculo máximo. Eso significa que los cálculos sobre las geografías (áreas, distancias, longitudes, intersecciones, etc) debe calcularse sobre la esfera, usando matemáticas más complicadas. Utilizaremos el tipo geography si necesitamos realizar cálculos a escala continental o mundial.
La sintaxis a emplear para calcular un buffer con PostGIS si trabajamos con el tipo geometry es:
ST_Buffer(geometry g1, float radius_of_buffer);
Para el tipo geography:
ST_Buffer(geography g1, float radius_of_buffer_in_meters);
Utiliza como datos de entrada la geometría y la distancia de separación. Se genera un polígono con un borde a una distancia de separación fuera de la geometría de entrada.
Existen otras opciones como: ‘quad_segs=#’ : número de segmentos utilizados, ‘endcap=round|flat|square’: estilo de los tramos finales, ‘join=round|mitre|bevel’: estilo de la unión, ‘mitre_limit=#.#’ : ángulo mínimo.

Ejemplo

Utilizaremos la función ST_Buffer para crear una area de influencia alrededor de una capa de puntos.
En primer lugar crearemos una nueva tabla que contendrá la nuev geoemtría.
Llamaremos a la capa nueva buffer.
Para definir la nueva tabla, al menos hay que crear dos campos:
  • un id que será la clave primaria
  • un campo geom, ya que trabajaremos con el tipo geometry, que será de tipo polígono y en el EPSG:4326, el mismo Sistema de Referencia Espacial que la capa de entrada.
Después, insertaremos en nuestra tabla las nuevas geometrías generadas con la funciónST_Buffer:
Con estas tres líneas insertamos dentro de la tabla que acabamos de crear una geometría poligonal creada a partir de la geometría de cities con un radio de 2. El número 2 indica las unidades de la capa de entrada, como estamos trabajando con el EPSG:4326, que es el WGS84, las unidades son los grados decimales. Por lo tanto estamos creando un buffer con un radio de 2 grados.

Un buffer con los atributos de la capa de origen

¿La tabla buffer conserva los mismos atributos que la original?
Cuando creamos un buffer a partir de una capa, la nueva capa (buffer) debe tener los mismos campos que la capa a partir de la que crearemos este buffer.
Ejemplo con los datos del curso:
Aquí hemos añadido los campos id, name y geom.
A continuación creamos el buffer insertando tanto la geometría (que procede de un buffer) y el nombre (que procede del campo nombre de la tabla original)

Visualizando el resultado con QGIS

Una vez realizamos la conexión desde QGIS a PostGIS añadimos las capas cities y la nueva capa del buffer:
crear un buffer con PostGIS visualizando en QGIS

Un buffer en metros

Para calcular el radio del buffer en metros tenemos dos opciones, o emplear un EPSG proyectado o trabajar con el tipo geography.
Vamos a trabajar con el tipo geography, manteniendo la capa original (la de las ciudades) en su EPSG original, es decir, EPSG:4326. En primer lugar creamos la tabla con un campo de tipo geography (geog):
A continuación debemos calcular el buffer a partir de la capa cities, teniendo en cuenta que debemos realizar una conversión de la columna de geometría de esta capa, el campo geom, desde el tipo geometry al tipo geography mediante el uso de cast (geom::geography).

Creación de un buffer automáticamente mediante el uso de vistas

Las vistas son tablas que se actualizan dinámicamente. Por ejemplo, al añadir una tabla espacial a la base de datos, la vista geometry_columns se actualiza automáticamente con el contenido espacial de la capa.
Al consultar la vista geometry_columns, los clientes y librerías SIG pueden determinar que es lo que se puede esperar cuando se recuperan los datos y de esta manera realizar cualquier proyección que sea necesaria, el procesamiento o la representación sin necesidad de inspeccionar cada geometría.
Un uso interesante es la actualización dinámica de capas en QGIS con vistas de PostGIS.
Se puede hacer por ejemplo que una vista almacene buffers de una capa de puntos. De tal modo que al crear un nuevo punto (por ejemplo con QGIS) en la base de datos, se generaautomáticamente el buffer alrededor de ese punto.
En este pequeño ejercicio vamos a ver una demostración de por qué es una buena idea utilizar PostGIS como almacén de datos en combinación con QGIS.
Vamos ver cómo se pueden utilizar vistas para crear capas dinámicas que se actualizan cuando cambian las capas de su entorno.
En primer lugar en PostGIS, en nuestra base de datos creamos una vista con esta sentencia SQL:
Si vamos a la lista de vistas veremos que se ha creado una nueva vista con el nombre vw_cities_buffer
nueva vista
Puedes abrir esta vista para comprobar cómo se ha rellenado automáticamente con los mismos registros de la capa cities, ya que en la sentencia le hemos dicho que cree una vista que contenga un buffer con un radio de 2 grados.
Ahora vamos a QGIS y realizamos la conexión a nuestra base de datos y añadimos las capas de ciudades y la nueva vista:
crear un buffer con PostGIS a través de vistas
A continuación vamos a añadir un nuevo punto, para ello marcamos la capa cities y con el botón derecho seleccionamos la opción “Conmutar edición”:
Asegúrate de que tienes visible la barra de herramientas “digitalización” y haz clic sobre el botón “Añadir objeto espacial”.
añadir objeto espacial
Añadimos una nueva ciudad y hacemos clic en Aceptar en la ventana de los atributos del objeto (no es necesario que rellenes ningún campo).
buffer con PostGIS antees de guardar
Una vez añadido el punto debemos guardar la edición para que se guarde este objeto espacial en nuestra tabla de PostGIS. Volvemos a hacer clic en “Conmutar edición” y guardamos los cambios.
¿Qué ha sucedido? Se ha generado automáticamente un buffer sobre la nueva ciudad.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
buffer con PostGIS guardado

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS