Un heatmap (o mapa de calor) se puede representar en GeoServer y servir como servicio WMS mediante una transformación de representación vector-to-raster.
Un heatmap muestra un conjunto de datos como una superficie de mapa de calor (o «superficie de densidad»). La superficie del heatmap se genera dinámicamente, por lo que se puede utilizar para visualizar datos dinámicos. Puede ser aplicado a conjuntos de datos muy grandes con bastante buen rendimiento.
Las representaciones de transformaciones en GeoServer permiten la creación de visualizaciones sofisticadas y dinámicas de datos geoespaciales. Se definen con un estilo SLD, y permiten la transformación de los datos de entrada en un formato más eficaz para la visualización, en este caso un ráster.
- Crear un heatmap es un ejercicio que forma parte del curso online aplicaciones Web Mapping.
Al igual que con todas las transformaciones de representación, la transformación se invoca mediante la adición del elemento <Transformation> a un <FeatureTypeStyle> en un estilo SLD. El SLD puede entonces aplicarse a cualquier capa que está respaldada por un dataset adecuado (featuretype). La transformación se especifica con el elemento <ogc:Function name=»gs:Heatmap»> , con argumentos que suministran los parámetros de transformación.
Los parámetros de transformación son los siguientes:
Nombre | ¿Requerido? | Descripción |
data | Si | FeatureCollection de entrada que contiene los elementos del mapa. |
radiusPixels | Si | Radio de densidad del kernel (en pixels). |
weightAttr | No | Nombre del atributo con el peso (por defecto 1) |
pixelsPerCell | No | Resolución de la malla. Los valores elevados mejoran el rendimiento, pero pueden degradar el aspecto si son demasiado elevados. (Por defecto 1) |
outputBBOX | Si | Caja delimitadora georreferenciada de salida. |
outputWidth | Si | Ancho de la imagen de salida |
outputHeight | Si | Altura de la imagen de salida. |
Datos de entrada
La transformación de representación de un mapa de calor se aplica a un dataset de entrada que contiene los elementos vectoriales. La geometría puede ser de cualquier tipo. Las geometrías de puntos se utilizan directamente, mientras que los tipos de geometría no puntuales se convierten en puntos utilizando el centroide. El dataset se proporciona en el parámetro data.
Opcionalmente, los elementos pueden ser ponderados suministrando el nombre del atributo con un peso, usando para ello parámetro weightAttr. El valor de este atributo se utiliza para ponderar la influencia de cada elemento puntual.
Datos de salida
El resultado de la transformación es un ráster de una sola banda. Cada píxel tiene un valor de punto flotante en el rango [0 .. 1] la midiendo la densidad del píxel en relación con el resto de la superficie. Al ráster puede proporcionársele un estilo con un <RasterSymbolizer>.
Ejemplo
El mapa de calor de la imagen anterior se produce por el siguiente SLD:
El mapa también muestra los puntos de entrada originales estilizados con otro SLD, así como un mapa base. Puedes adaptar este SLD a tus datos realizando pequeñas modificaciones ajustando los parámetros.
Una vez creado el nuevo estilo podemos aplicarlo en la publicación de nuestra capa puntual, en este caso se trata de las ciudades más importantes del mundo. La leyenda que se aplica a la capa sería la siguiente:
Las transformaciones de representación se implementan utilizando el mismo mecanismo que los procesos WPS. Así pues, pueden ser ejecutadas mediante el protocolo WPS si es necesario. A la inversa, cualquier proceso WPS puede ser ejecutado como una transformación, siempre que la entrada y la salida sean apropiados para su uso dentro de un SLD.
Más info:
http://suite.opengeo.org/opengeo-docs/cartography/rt/heatmap.html
Si te ha gustado esta entrada deja un comentario o compártela!
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
hola Aurelio…
una consulta, tengo un heatmap hecho en Geoserver y quiero agregarlo como capa a un mapa en leaflet.
lo intente agregar como una capa WMS, pero no me resulto, tienen algún indicio de como hacerlo?
de antemanos muchas gracias.