Análisis de datos en python (ficheros)

21 04 2014

blog_2

 

Mediante un mini tutorial intentaré explicar como leer datos numéricos desde un archivos “.txt” y convertirlos a “float” para trabajarlos mediante el uso de listas.

 

Contexto:

Al trabajar en mi proyecto de tesis sobre análisis de cargas cíclicas mediante el uso de una máquina y un sistema asociado para medir presiones a través de un sensor, me topé con las disyuntiva de buscar una manera de trabajar con la enorme cantidad de datos que eran entregados por dicho sensor(del orden de 2 a 10 millones de datos). Lo primero que vino a mi mente fue excel, sin embargo me di cuenta que tenía una enorme cantidad de scripts realizados en python que me permitían obtener la información que realmente requería para mi estudio. Finalmente terminé transformando los scripts que necesitaba a funciones y lo único que me separaba de mi objetivo era el leer, transformar y analizar la información que venía en un archivo de bloc de notas. Después de buscar  y leer mucho terminé encontrando (mediante prueba y error) una solución mas menos simple.

 

Solución:


# direccion del archivo
entrada = open("C:\Users\pattop\Desktop\ensayo.txt")

# Lectura del archivo
c = entrada.read()

# division de datos
d = c.split()

# lista vacia para guardar los datos
datos = []

# transforma los datos en float y se pueden trabajar
for i in d:
    datos.append(float(i))

 

De esta manera los datos quedarán en la lista homónima y con las propiedades “float” para trabajarlas mediante cualquier función, en mi caso graficar mediante matplotlib y obtener información estadística. Cualquier consulta intentaré ayudar, aunque no es mi especialidad.

 

Herramientas: Lenguaje python, ninja IDE.
ninja-big1





La opción gratuita a AutoCAD

3 09 2013

4

Para quienes buscan una opción gratuita de un software de CAD profesional con una interfaz que nos recuerde al popularizado AutoCAD tenemos gracias la reconocida firma francesa dassault systemes (Solidwork, Catia, etc.)  a DraftSight. Este software posee las mismas características que posee AutoCAD (sin sus herramientas mas avanzadas, principalmente 3D) con una interfaz igualmente amigable  y con una mejor performance para computadores de baja capacidad de procesamieno (lo que quizá quería conseguir AutoDesk con sus versiones LT) junto con su bajo peso y facilidad de instalación.

Introducción a DraftSight

Para descargar se puede ir a la página donde se encuentran las instrucciones.

http://www.3ds.com/es/productos-y-servicios/draftsight/

También para los que desean interiorizarse mas, el software cuenta con un canal de youtube donde existe una serie de tutoriales.

http://www.youtube.com/user/DraftSight





Granulometría en Python

2 03 2013

granu

Un pequeño script desarrollado en el lenguaje Python para establecer la clasificación granulométrica de una muestra de suelos. Este método consiste principalmente en pasar las partículas de suelo por una serie de tamices que retienen un cierto volumen de la muestra según su diamatro. A partir de los resultados se obtiene un representación gráfica que ayuda en el proceso de clasificación.

Acá dejo el archivo para los que esten comenzando a programar en Python(es necesario cambiar la extensión a .py o copiar el código en el IDE). granulometria.

Código para el gráfico logarítmico en python(matplotlib).

from matplotlib import pyplot

col1 = [PA8, PA7, PA6, PA5, PA4, PA3, PA2, PA1]
col2 = [A8, A7, A6, A5, A4, A3, A2, A1]

pyplot.plot(col2, col1, color='blue', lw=2)

# escala logaritmica
pyplot.xscale('log')

 # sentencia que invierte el eje x
pyplot.gca().invert_xaxis()

# grilla log en eje x
pyplot.grid(True, which="minor", linestyle='-')

# grilla normal en eje y
pyplot.grid(True, linestyle='-')

pyplot.show()





Algunos lenguajes de programación

6 10 2012

Para todos es sabido que todo ingeniero o estudiante de ingeniería debería, a lo menos, tener el dominio intermedio o básico de algún lenguaje de programación. Si bien es cierto, muchas veces es más práctico y más cómodo encontrar soluciones a partir de software de pago o gratuitos como lo son las hojas de cálculo, que con el tiempo se han vuelto herramientas poderosas y con cada vez más opciones. Sin embargo existen muchas opciones para robustecer estas características mediante el uso de lenguajes de programación asociados a las compañías, como es el caso de Excel con Visual estudio de Microsoft. Esta relación simbiótica nos da luces de que muchas veces un software no contará con un solución que sea expuesta bajo una interfaz gráfica. Es por esto que programar se vuelve algo profesionalmente vital, práctico (a la larga) y en algunas ocasiones divertido.

 Como estudiante de ingeniería civil no especializado en la rama de informática y a lo largo de mis años de estudio, he utilizado varios lenguajes (unos más que otros) y me he hecho una idea de algunos ocupándolos en diferentes tópicos de ingeniería. Por ende intentaré dar algunas luces, fortalezas y debilidades de algunos de ellos.

Fortran.

Para comenzar aprovecharé el impulso del post anterior y daré sólo mi opinión.

Opinión: Salvo algunos aspectos,  debo decir que es un buen lenguaje para iniciarse puesto contiene varias características antiguas sobre la escritura de un programa que con el paso del tiempo fueron quitadas. Personalmente lo encuentro poco práctico y al momento de desarrollar rutinas más complejas puede tornarse engorroso y plano para detectar errores, flaquea en ámbitos como funciones incluidas y librerías (si bien tiene, son pocas). Lo bueno es libre y la rapidez, que en algunos niveles es irrelevante.

Java.

No hay mucho que decir que no se encuentre por montones en  la red sobre las particularidades de este lenguaje de programación de alto nivel. Sus opciones OOP permiten desarrollar aplicaciones y programas informáticos basándolos en técnicas que incluyen conceptos como herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. En cuanto a las funciones matemáticas en Java, las funciones disponibles vienen definidas en la clase Math. Hay muchas funciones disponibles. Se puede consultar la lista completa en la documentación oficial del API de Java

Opinión: Al poco tiempo de utilizarlo me dio la sensación de que es un lenguaje en el que es posible desarrollar casi cualquier tipo de programa o solución informática. Existen librerías, funciones y textos por montones en la red, además de diferentes IDE´s  para desarrolladores. A pesar de no ser un lenguaje complicado, la verdad es que exige un tiempo de aprendizaje considerable, sobre todo en la parte de programación orientada a objetos. Podría decir que al considerar su versatilidad para propósitos tan generales, su principal característica se vuelve una desventaja cuando es utilizado para programar sobre tópicos específicos como el análisis numérico, matrices y otros. Quizás si quieres crear tu universo java y dispones de tiempo considerable para dominar el lenguaje (o cuentas con la amistad o soporte de algún programador) puede darte a largo plazo una buena performance en el ámbito laboral.

Matlab.

Opinión: El otrora conocido como todopoderoso matlab ya no lo es tan así, por una serie de falencias que personas más especializadas en el tema esgriman. Sin embargo es el más efectivo y práctico lenguaje para desarrollar script matemáticos y análisis de matrices que he ocupado, por ende es el que más comúnmente utilizo. Es muy versátil en el análisis numérico y existe mucha bibliografía del tema, posee muchas funciones incluidas y es el lenguaje que aprendí con mayor rapidez debido a su simplicidad. Lo recomendaría para iniciarse y después cambiarse a Octave o Scilab llegando al ámbito laboral, ya que estos si son software libre y conservan muchas de las propiedades de Matlab.

Como confesión debo reconocer que dispongo de una versión ilegal de Matlab, ya que si tuviera el dinero para comprar la licencia tendría que ser dueño de algún centro de investigación o millonario excéntrico, de otra manera dudo mucho que la pagaría.

Nota: En estricto rigor matlab no es un lenguaje como tal sino que es un software que ofrece un IDE de lenguaje M.

Python.

Ya hace un buen tiempo está dando mucho que hablar, Python es un lenguaje multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es libre y de código abierto, viene preinstalado en muchas de las distribuciones actuales de Linux, y también puede ser instalado en Windows.

Opinión: Lo estoy usando hace algún tiempo ocupando el entorno de desarrollo NINJA (apoyando las iniciativas de IDE´s sudamericanos) y la verdad es que personalmente me agradó mucho, de hecho me hizo dejar en stand by a MATLAB. Es muy sencillo de aprender y a la vez subir de nivel en cuanto a sus opciones. Cuenta con muchas librerías, funciones y en cuanto a textos si bien existen muchos, todavía escasean los documentos en español (aunque recomiendo aprender de literatura en inglés para ahorrarse problemas). En cuanto a su uso para tópicos más matemáticos y científicos existen para Python herramientas muy útiles como SciPy, que a su vez cuentan con variadas clases como por ejemplo la clase array para trabajo con vectores.

Para no llenar de links el post hice un pdf  con todos los links importantes con información de cada uno de estos lenguajes.

Links para lenguajes de programación

Tutorial esencial de python y extension numpy, a partir de diferentes documentos (avanzar hacia atrás en las fotos)

http://www.flickr.com/photos/pvargasbello/8190463765/





FORTRAN

6 08 2012

Fortran es un lenguaje informático desarrollado en 1957 cuyo nombre viene del acrónimo de la palabras en inglés Formula Translation. Fue el primer lenguaje de alto nivel de propósito general desarrollado originalmente por IBM para aplicaciones científicas y de ingeniería. Entre muchas de sus aplicaciones se cuenta la predicción numérica del tiempo,  análisis de elemento finito, dinámica de fluidos,  física computacional, química, etc.

El compilador actualmente más usado para la plataforma Windows es Force 2.0 y puede obtenerse gratuitamente desde su página de desarrollo http://www.lepsch.com/

Acá un tutorial introductorio sobre el uso del lenguaje fortran en el compilador Force 2.0.





Sistemas Innovadores De Protección Sísmica Estructural (Curso De Extensión)

30 08 2011

 Descripción del Curso:

Curso de iniciación dirigido a Estudiantes de pregrado de Ingeniería Civil en Obras Civiles, Ingeniería en Construcción y arquitectura, así como estudiantes de Magister en Ingeniería para la Innovación.

El curso es una introducción a los sistemas de protección sísmica estructural pasivos y semiactivos en donde se caracterizan y analizan los principales dispositivos de control de vibraciones empleados en la actualidad. Se enfatiza en la problemática energética del diseño sismorresistente, así como en la redefinición de la demanda sísmica mediante el empleo de Espectros Input de Energía.

Temario:

-Sistemas de control de vibraciones de estructuras. Sistemas activos, semi-activos, pasivos e híbridos. Aplicaciones a proyecto sismorresistente de estructuras. Lazos de control. Estrategias de control. Control PID, óptimo y predictivo. Controlabilidad y observabilidad. Aplicaciones.

– Aislamiento de base. Concepto. Grado de aislamiento. Proyecto de  edificios con aisladores. Límites de aplicabilidad. Tipos de aisladores. Aisladores de goma (RB, LRB, HDRB). Péndulos de fricción. “Sliding isolation pendulum”. Otros tipos de aisladores. Normativa. Edificios. Puentes. Instalaciones industriales. Obras de arte. Aplicaciones.

– Disipadores de energía. Concepto. Colocación. Utilidad. Normativa. Proyecto de edificios con disipadores. Tipos. Disipadores histeréticos, friccionales, visco-elásticos, viscosos, con aleaciones con memoria de forma. Barras de pandeo restringido. Edificios. Puentes. Aplicaciones.

– Amortiguadores de masa. Concepto. Tipos de amortiguadores de masa. Proyecto de amortiguadores de masa. “Shock transmitters”. Líneas de transporte de electricidad; “Stockbridge Dampers” y “Dog Bones”. Edificios altos. Pasarelas de peatones. Losas de edificación. Puentes. Plataformas marinas. Chimeneas metálicas. Aplicaciones.

– Proyecto sismorresistente basado en espectros de energía. Comparación con los espectros de respuesta de aceleración y de desplazamiento. Espectros y pseudo-espectros. Formulación de Housner-Akiyama. Energía aportada por el sismo y energía histerética. Aplicaciones a proyecto de estructuras con disipadores.

– Foro de Discusión. La Ingeniería Estructural del Siglo XXI en Chile y el Mundo: normativa, protección, riesgo sísmico y otras cuestiones.

Dr. Francesc López-Almansa
ETSAB, Universitat Politècnica de Catalunya, Barcelona





Atacama Solar 250 MW

31 07 2011

Hace mucho tiempo se encuentra en la palestra de la opinión pública mundial la necesidad de aumentar el porcentaje de energías limpias usada por cada país.  Es ahí donde Chile espera alcanzar un liderazgo regional y mundial. Es por eso que se está llevando a cabo sobre la ruta A-665 camino a Pica, el parque fotovoltaico más grande del mundo cuyo periodo de construcción tardará aproximadamente 5 años.

La iniciativa se suma a otros 5 proyectos de energía fotovoltaica que han sido aprobados en la región del Tarapacá, y contemplará una inversión aproximada US$ 773 millones y una vida útil de 30 años.

Dentro de los datos técnicos el proyecto en general aportará una potencial nominal 250 MW y tendrá una extensión aproximada de 1.128 hectáreas. Contará con 250 generadores fotovoltaicos, es decir, 2.889.000 paneles solares y tendrá 2 subestaciones eléctricas(23 kV y 220 kV) y una línea aérea de transmisión de 40 Km. De longitud.

Algunos datos del proyecto.

Los 2.889.000 paneles solares se dispondrán sobre:

  • 10.000 estructuras fijas hincadas de 21º de inclinación de dimensiones 118,8 m de largo y 3 m de ancho albergando 2.700.000 módulos fotovoltaicos.
  • 500 estructuras fijas hincadas de 21º de inclinación de dimensiones 95,6 m de largo y 3 m de ancho albergando 108.000 módulos fotovoltaicos.
  • 500 estructuras fijas hincadas de 21º de inclinación de dimensiones 71,27 m de largo y 3 m de ancho albergando 81.000 módulos fotovoltaicos.

La Línea de Alta Tensión se emplaza en un trazado que comprende 40 km para lo cual se solicitarán las servidumbres respectivas y concesiones eléctricas de acuerdo a la normativa vigente en el DFL Nº 4.

Dentro de los objetivos del proyecto busca reforzar la actual tendencia y política nacional de desarrollo, que se ve encaminada hacia la generación de energías renovables no convencionales (ERNC).  El proyecto se acogerá al mercado de los bonos de carbono, debido a su condición de Energía Renovable no Convencional.

 La empresa a cargo será Atacama Solar S.A.

Fuentes:http://seia.sea.gob.cl, http://www.elboyaldia.cl,http://www.atacamasolar.cl/