[ScreenCast] Simulación con datos reales

May 9th, 2010 by Manuel.g.a

Por fin podemos tener resultados sobre información real del terreno. Aquí presentamos dos vídeos de ejemplo de una inundación con datos reales.

En el primero se puede ver cómo los bloques amarillos (personas) huyen de la inundación (azul) para alcanzar refujios (verde). En este caso la altura del agua no es real, está sobredimensionada.

Read the rest of this entry »

[Screencast] Trabajando con terreno real

May 6th, 2010 by Alejandro Blanco Escudero

Gracias a la caché de alturas que hemos implementado hace poco, podemos probar rápidamente simulaciones en terrenos reales. El siguiente vídeo es una inundación en un trozo de Nueva Orleans, tanto las calles como la altura del terreno son reales. Las dos entradas de agua no corresponden a la realidad, ni siguen ninguna lógica. Las personas intentan alcanzar el refugio de la derecha, pero aún queda trabajo por realizar ahí.

Tenemos más vídeos disponibles en YouTube.

OSM: Ríos, Parques y Mares

May 5th, 2010 by Manuel.g.a

Después de mucho tiempo invertido y de reescribir la clase Osm a fin de poder pintar el interior de parques, ríos y mares, y casi a punto de querer reescribir HexagonalGrid y entrar en una espiral de destrucción y muerte (por suerte Alex me hizo entrar en razón). Aquí está prácticamente resuelto el problema de rellenar figuras geométricas.

Básicamente la solución estaba en trabajar únicamente con las coordenadas (todas ellas, las que cabían dentro de mi grid y las que no) a fin de poder saber toda la información de los bordes de las figuras.

Por ejemplo, si tenía que dibujar un río pero en mi grid sólo estaba una orilla, no pasaba nada, porque Osm (muy listo él) te da más información que la que tú le pides. Aunque sólo le pidas que te de la información de un trozo de mapa, te da toda la información de los alrededores, que te harán falta para saber que margen del río tienes que pintar. Y esta información aparece reflejada en la seccion <member> al final del xml.

También he usado funciones básicas de geometría computacional, para averiguar si un punto esta dentro o no de un polígono.

Seguramente vendrá en algún lado de la documentación de OSM, pero es que a mí me gusta darme chocazos con las paredes. Y finalmente, a base de iterar sobre el error, lo conseguí. Read the rest of this entry »

Caché de Alturas

May 4th, 2010 by Manuel.g.a

Para mejorar la obtención de alturas utilizaremos una base de datos como caché. De esta forma los datos de elevaciones que más se utilicen estarán disponibles sin necesidad de consumir un servicio web.

El usuario será libre de utilizar el servidor SQL que quiera (mientras esté soportado por JDBC). Por ahora estamos contemplando SQLite, PostgreSQL y MySQL.

Comunicación entre agentes

April 22nd, 2010 by Alejandro Blanco Escudero

Jade también nos proporciona un sistema de comunicación entre agentes. Podemos utilizar este sistema para hacer que los agentes interactúen entre ellos, pudiendo recrear así comportamientos más complejos.

En este minitutorial, uno más de la serie que venimos publicando, explicaremos cómo utilizar dicho sistema.

Lo primero que querremos hacer a la hora de enviar un mensaje a otro agente es encontrar a dicho agente. Para ello Jade provee un sistema de páginas amarillas, el DFService. Los agentes que proveen servicios a otros agentes se registran en este directorio, de esta manera cualquier agente puede encontrar a otro agente que le provea de un servicio determinado. Read the rest of this entry »