Hacia un motor de tiles basado en Spark

¿Por qué hacer tiles? Por una cuestión de eficiencia y rapidez. Crear tiles consiste en hacer una pirámide del mundo y renderizar las imágenes previamente. De esta forma nuestros mapas son más rápidos porque solo descargan imágenes que ya han sido renderizadas.

Tabla de Contenidos

Los servicios WMS estaban bien hace años pero hoy en día las necesidades son diferentes, y hay soluciones mucho mejores para aplicaciones con gran cantidad de usuarios. Tienen su uso justificado, pero no es una solución para aplicaciones escalables.

Os cuento un poco nuestra experiencia:

Tileamos la ortofoto de Andalucía a un nivel de detalle considerable (Nivel 18). Para esto usamos gdal2tiles.py. El primer problema fueron los formatos de las ortofotos, para el año 1956 era un MrSID y tuvimos que luchar un poco con GDAL. El segundo problema, y mucho más difícil, fue crear el mosaico.

El Rompido, año 1956 a la izquierda y año 1979 a la derecha
El Rompido, año 1956 a la izquierda y año 1979 a la derecha

Esta disponible en CartoDB. Sevilla año 1956Sevilla año 1979

Lo conseguimos, quedo muy bien pero tardaba demasiado, concretamente 50 días. Era inaceptable por lo que nos pusimos manos a la obra para mejorar los tiempos y de paso tener algo que nos permitiera coger datos desde las fuentes de datos más comunes.

El objetivo era tilear los mapas de todas nuestras aplicaciones sin importar el formato en el que estuvieran los datos. Creamos Equidna – 100% OpenSource -, y con ella hemos generado cientos de mapas para diferentes clientes y hemos reducido bastante los tiempos debido a que usamos todos los procesadores de la máquina. La mejora fue sustancial, con gdal2tiles tardábamos 50 días con Equidna llegamos a 30.

Equidna está basado en Mapnik y permite hacer tiles con casi cualquier fuente de datos: PostGIS, Shapefiles, GeoJSONs, GDAL, raster, etc…

Ahora trabajamos en una mejora basada en BigData con un algoritmo de Map/Reduce (aunque no me guste utilizar el término “BigData” creo que se entiende mejor). Con este nuevo enfoque asignamos a cada máquina una región del mundo y los resultados los escribimos en un sistema de ficheros distribuido. De esta forma, en una plataforma elástica cómo Amazon EC2 podemos lanzar N máquinas, de forma que si un proceso tarda 50 días, si lanzamos 50 máquinas tardará 1 día (aprox.) y nos costará lo mismo. El sistema base sobre el que estamos desarrollando esta plataforma es Spark.

En unos meses publicaremos los resultados, y por supuesto, será OpenSource.

Fuente: Blog de Geographica
Noticias Relacionadas
Comentarios
  1. @prosinet dice

    Hacia un motor de tiles basado en Spark http://t.co/s9WVN74kD6 http://t.co/lfIWqpt29Q

  2. Hacia un motor de tiles basado en Spark http://t.co/MdSeH3bHye

  3. Hacia un motor de tiles basado en Spark http://t.co/7YISRQ7ant #Cloud #Tech

  4. Juan Hipster (@JuanHipster) dice

    Hacia un motor de #tiles basado en #Spark http://t.co/9JZQ9GHcun

  5. Hacia un motor de tiles basado en Spark http://t.co/qmwrXZB631

  6. anunciamadrid (@anunciamadrid) dice

    TechNews Hacia un motor de tiles basado en Spark http://t.co/rl2xtHjpwb #madrid #noticias

  7. anunciamadrid (@anunciamadrid) dice

    Hacia un motor de tiles basado en Spark http://t.co/fvQ293BMcp

  8. Revista Cloud (@revistacloud) dice

    Hacia un motor de #tiles basado en #Spark: ¿Por qué hacer tiles? Por una cuestión de… http://t.co/O2KVwUtZF5

  9. Sys_Cloud (@Sys_Cloud) dice

    RT @revistacloud: Hacia un motor de #tiles basado en #Spark: ¿Por qué hacer tiles? Por una cuestión de… http://t.co/O2KVwUtZF5

Deja una respuesta

Su dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.