Nota de investigación: Análisis exploratorio de datos de movilidad.

En esta nota de investigación, mostramos cómo hemos creado una serie de funciones de R que nos permiten visualizar datos de movilidad en un cubo espacio-temporal en Google Earth.

SPACE-TIME CUBE

El problema

Representar visualmente los datos de movilidad es todo un reto. Por un lado, estos datos son espacio-temporales, pues representan la posición de un objeto en el espacio y en el tiempo. Por otro lado, suelen ser muchísimos; por ejemplo, en un reciente experimento registramos el movimiento de 20 personas moviéndose en bicicletas por Cuenca utilizando GPS que graban la posición cada 5 segundos, dando como resultado un conjunto de aproximadamente 71 000 observaciones. Finalmente, suelen ser multi-escala, pues tienen a la vez gran detalle y amplia extensión espacio-temporal. En el ejemplo anterior, aunque la posición de cada bicicleta se grabó cada 5 segundos, cada viaje duraba al rededor de una hora y diferentes viajes ocurrieron en diferentes días.

Ya que los datos de movimiento generalmente están almacenados como tuplas con la forma [oid, x, y, t], las propiedades del movimiento deben ser derivadas de forma automática a partir de estos valores de forma automática.

La idea

Tomando en cuenta estas dificultades, estamos experimentando diferentes formas de visualizar estos datos. Esto nos permitirá: a) tener una perspectiva general de los patrones espacio-temporales y b) detectar algunas características específicas del movimiento, como los lugares donde el movimiento se detiene o las rutas más utilizadas. Necesitamos además que estas visualizaciones se puedan crear de forma automática o semi-automática ya que durante la investigación tendremos conjuntos de datos cada vez más grandes.

Cómo lo solucionamos

Utilizando el lenguaje de programación R, hemos creado dos funciones que toman como entrada un directorio con archivos .gpx y realizan las siguientes transformaciones: 1) sincroniza el tiempo de inicio de cada archivo para que todos los movimientos inicien al mismo tiempo. 2) Transforma el tiempo en la dimensión espacial z, de manera que el transcurso del tiempo quede registrado como “altitud” del movimiento. 3) guarda el resultado en un nuevo archivo .gpx.

El archivo resultante puede visualizarse en Google Earth simplemente abriéndolo o arrastrándolo sobre la interfaz. El resultado es un “cubo espacio-temporal” que permite observar al mismo tiempo las dimensiones espaciales y temporales del movimiento.

El resultado:

El siguiente video realizado por Mateo Neira (@MateoNeira) muestra un ejemplo de la visualización de datos de movilidad. Cada línea representa el movimiento de una bicicleta; el tiempo está representado en la dimensión z (altura), de forma que cada trayectoria inicia en la base y se dirige hacia arriba, con la inclinación representando la velocidad. A mayor velocidad, la inclinación de la línea es menor, pues se recorre mucho espacio en poco tiempo, y las líneas más inclinadas representan menor velocidad (se recorre poco espacio en mucho tiempo). Las secciones verticales representan paradas, pues la bicicleta permanece en el mismo sitio durante un tiempo.

Las funciones de R están disponibles en GitHub. También es posible descargar un ejemplo de datos de movimiento para visualizar en Google Earth.

Siguientes pasos.

Una vez que hemos logrado representar los datos en el cubo espacio-temporal, el siguiente paso es modificar las funciones en R para adicional algunas características en la visualización: por ejemplo, utilizar el color para representar mejor la velocidad, o detectar automáticamente los sitios de encuentro.

Autores:

Daniel Orellana

Mateo Neira