El 21 de abril de 2010 05:42, Juan Camilo Hernandez D <
camilo.hernan...@gmail.com> escribió:

> Hola colisteros.
>
> Este es mi primer mensaje a la lista de pyhton-es.
>
> Le escribo por que tengo el siguiente problema. En este momento me
> encuentro desarrollando mi trabajo de investigación en el cual hago uso de
> varios modelos meteorológicos, uno de estos modelos es el FLEXTRA el cual
> genera unos archivos de salida en texto plano. Un ejemplo de salida de este
> archivo lo podemos ver aqui ( http://pastebin.com/x4VgXEBC ) o en el
> manual del modelo (
> http://zardoz.nilu.no/~andreas/flextra/flextra3.html#tth_sEc5.5<http://zardoz.nilu.no/%7Eandreas/flextra/flextra3.html#tth_sEc5.5>).
>
> En mi trabajo de grado contemplo hacer un análisis de agrupamiento (Cluster
> Analysis) para esto he contemplado utilizar el modulo de python pycluster y
> para graficar los resultados utilizar la herramienta matplotlib.
>
> El problema consiste en cambiar el formato de mis datos a un formato donde
> las columnas representen las variables y las filas los datos, agregando tres
> columnas adicionales para identificar cada conjunto de datos. Un ejemplo de
> lo que deseo conseguir es el siguiente: http://pastebin.com/ja86AJWP
>
> Le escribo por que si bien tengo un  poco de experiencia programando con
> python, mis habilidades en el manejo de archivos es muy poca. Adicionalmente
> no he podido encontrar ejemplos donde se muestre algo similar a lo que deseo
> conseguir.
>
> Agradecería cualquier ayuda que me puedan brindar para solucionar este
> problema de programacion que tengo, para mi complejo espero que para alguien
> afuera sea algo trivial.
>
> De antemano muchas gracias por toda la ayuda que me puedan brindar.
>
> --
> Juan Camilo Hernández Díaz
> Ingeniero Sanitario - Investigador
> Grupo de Ingeniería y Gestión Ambiental GIGA
> Universidad de Antioquia
>
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
Hola.

Viendo los ficheros y haciendo el código rápido y mal se me ocurre:
-------------------------------------------------------------------------------------------
#Abrimos el fichero de datos y leemos la cabecera
fichero = open('ruta_hasta_tu_fichero', 'r')
lineas_cabecera = int(fichero.readline().split()[0])
for i in range(lineas_cabecera-1):
     basura = fichero.readline()  ;Esto lee la cabecera pero no hace nada
con ella

#Abrimos el fichero donde guardamos la salida reformateada y metemos la
cabecera
salida = open('ruta_y_nombre_del_fichero_de_salida', 'w')
salida.write('DATE      TIME    SECS    LONGIT              LATIT
         ETA    PRESS  \
     Z    Z-ORO    PV    THETA    Q')

#Empezamos a leer los datos
for i in range(pasost):
     # donde pasost indica el numero de pasos temporales del modelo
     # Es decir, si la salida del modelo es a las 0000 y a las 1200 y se
corre para 20 días, pasost = 20*2
     fechayhora = fichero.readline().split()
     date = fechayhora[1]
     time = fechayhora[3]
     basura = fichero.readline()
     for j in range (numero_integraciones):
          # donde numero_integraciones será el número de pasos del modelo
          # es decir, numero_integraciones será el número de datos que hay
en cada date y time
         datos = fichero.readline().split()
         salida.write(date + '  ' + time + '  ' + str(datos[0]) + '  ' \
                     + str(datos[1]) + '  ' + str(datos[2]) + '  ' +
str(datos[3]) + '  ' \
                     + str(datos[4]) + '  ' + str(datos[5]) + '  ' +
str(datos[6]) + '  ' \
                     + str(datos[7]) + '  ' + str(datos[8]) + '  ' +
str(datos[9]) + '\n')

fichero.close()
salida.close()
------------------------------------------------------------------------------------------------

La salida se puede formatear como tú quieras y seguro que te aportan
soluciones más interesantes e inteligentes que esta pero de momento mi
python y esta hora de la mañana da para esto ;-D

Saludos.
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a