Pestañas

martes, julio 10, 2007

Vídeos de datos en Linux.

Voy a escribir sobre una cosilla un tanto técnica, que con absoluta seguridad no interese a ninguno de los lectores habituales de este blog (que tampoco son muchos, así que espero que no les importe). Supongamos que tenemos una serie de datos de simulaciones o de experimentos de partículas moviéndose. Estas posiciones se suelen almacenar en archivos de texto o de datos. O sea, cada archivo es un instante temporal y dentro de los mismos tenemos las posiciones en las coordenadas x e y de las partículas u objetos para ese tiempo. Algo interesante, de cara a presentaciones, es conseguir hacer un vídeo de estas evoluciones temporales, de forma que podamos mostrar de forma visual que es lo que nos enseñan esos datos. Una forma de hacerlo es hacer un script de bash en linux (suena a chino, eh?). Un script es una especie de programa que ejecuta comandos de linux. Por ejemplo, se puede hacer un script que lea todos los archivos de un directorio y les cambie el formato. Un script para hacer el video puede ser este.

En este script he utilizado gnuplot para representar los datos, de forma que es necesario emplear un script del propio gnuplot que podéis ver aquí. También se emplea convert de ImageMagick para manipular las imágenes y mencoder para hacer el vídeo en formato "avi". Para unir varios vídeos en uno solo con mencoder se puede hacer esto. Otros muchos ejemplos de utilización de mencoder son estos de aquí. Es posible que para ver los vídeos resultantes en Windows haya problemas con los codecs, es recomendable instalar estos codecs.

El script debe guardarse con extensión "sh". Tiene tres parámetros de entrada que son los que se explican en las primeras líneas comentadas del script, de forma que se ejecuta como:

./loquesea.sh simulaciones 223 video

Para cambiar de "avi" a "wmv", que es un formato puede hacerse algo así:

ffmpeg -i video.avi video.wmv

Este comando, FFmpeg, es bastante potente y sirve para transformar los vídeos a diferentes formatos, por ejemplo de "mov" (película de QuickTime) a "avi" (aquí se puede consultar la documentación del programa). Hay varios manuales por Internet acerca de como hacer scripts. Yo tampoco es que sepa mucho de estas cosas, en realidad este es mi primer script en linux un poco elaborado, con un bucle y todo.

Un ejemplo de vídeo a partir de las simulaciones puede ser este abajo.



Cada punto es una partícula magnética, estas partículas se juntan formando cadenas cuando se introduce un campo magnético; cuando el campo se desconecta las partículas difunden y vuelven a la situación original. Si lo comparais con el vídeo de los experimentos, vereis que, se parece bastante (a primera vista).

1 comentario :

Ruth dijo...

Mañana es el gran día. Tranquilo y sobre todo muchasuerte.