Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
acemu:proyectos:linux:preprocesamiento_datos [2010/03/30 15:33] kenneth |
— (actual) | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Preprocesamiento de los datos ====== | ||
- | |||
- | |||
- | Supongamos que recibimos un archivo con los datos recogidos de un ensayo de motor, por ejemplo, los datos del motor MX001 realizados en 21 de marzo del 2010. El archivo de datos se llama '' | ||
- | |||
- | '' | ||
- | |||
- | |||
- | Primero veamos en qué formato recibimos los datos. Más allá de que hayamos exportado los datos en un formato CSV (comma separated values), pueden haber problemas adicionales por la manera que esos datos son almacenados bajo Windows. | ||
- | |||
- | Siempre que queramos saber con qué tipo de archivo estamos lidiando, podemos usar el comando **'' | ||
- | |||
- | < | ||
- | # file toma_de_datos_acemumx001.csv | ||
- | toma_de_datos_acemumx001.csv: | ||
- | </ | ||
- | |||
- | Vemos que Linux reconoce el archivo como un archivo **ASCII** pero terminado en '' | ||
- | |||
- | '' | ||
- | |||
- | Bajo **DOS** (y por extensión retrógrada, | ||
- | |||
- | Bajo **Linux** (o Unix en generl) se continúa con la tradición de Unix de emplear un simple '' | ||
- | </ | ||
- | |||
- | Si lo editamos con el procesador de texto vi, vemos lo siguiente: | ||
- | |||
- | < | ||
- | " | ||
- | |||
- | " | ||
- | |||
- | "" | ||
- | |||
- | -4.8828E-01, | ||
- | |||
- | -4.6875E-01, | ||
- | </ | ||
- | |||
- | donde los " | ||
- | Empleando el comando '' | ||
- | |||
- | < | ||
- | # od -c toma_de_datos_acemumx001.csv|head | ||
- | |||
- | 0000000 | ||
- | 0000020 | ||
- | 0000040 | ||
- | 0000060 | ||
- | 0000100 | ||
- | 0000120 | ||
- | 0000140 | ||
- | 0000160 | ||
- | 0000200 | ||
- | 0000220 | ||
- | </ | ||
- | |||
- | El **" | ||
- | |||
- | Comparando con lo que vimos en el editor de textos, identificamos los comandos '' | ||
- | |||
- | Evidentemente todos estos códigos deben ser eliminados y el archivo debe covnertirse en un simple archivo de texto llano, versión Linux. | ||
- | |||
- | Para lograr eso primero usamos el comando **'' | ||
- | |||
- | < | ||
- | # dos2unix toma_de_datos_acemumx001.csv | ||
- | </ | ||
- | |||
- | ¡Listo! | ||
- | |||
- | Ahora tenemos que eliminar las lineas en blanco adicionales, | ||
- | |||
- | Para hacer eso podemos emplear una de las herramientas predilectas de los usuarios linux: **'' | ||
- | |||
- | El comando **'' | ||
- | |||
- | En nuestro caso lo que queremos es eliminar todas las lineas en blanco, lo que equivale a listar todas las lineas que **no** están en blanco. Para eso buscamos lineas en blanco y con la opción **" | ||
- | |||
- | Una linea en blanco es una linea que comienza y termina y no contiene nada en su interior. Es el equivalente a la secuencia **' | ||
- | |||
- | Hay una manea especial de representar eso como una expresión regular: **" | ||
- | |||
- | El **" | ||
- | |||
- | Así que ejecutamos el comando | ||
- | |||
- | < | ||
- | # grep -v " | ||
- | </ | ||
- | |||
- | El comando **'' | ||
- | |||
- | Si ahora miramos el contenido de dat.csv con el comando head, observamos algo así: | ||
- | |||
- | < | ||
- | # head data.csv | ||
- | " | ||
- | " | ||
- | "" | ||
- | -4.8828E-01, | ||
- | -4.6875E-01, | ||
- | -4.6875E-01, | ||
- | -4.8828E-01, | ||
- | -4.8828E-01, | ||
- | -4.8828E-01, | ||
- | </ | ||
- | |||
- | Vemos que el resultado de estas operaciones nos ha dado un archivo limpio que tiene el formato y los datos que esperamos encontrar en un archivo **CSV**. Observamos en particular que los datos en sí corresponden a 3 columnas: voltaje (en notacion científica), | ||
- | |||
- | Ahora tenemos el archivo en un formato adecuado para comenzar a procesar los datos propiamente dichos. Eso lo veremos en el siguiente artículo: [[http:// | ||
- | |||