Categorías
Python

pyBigParser, un evaluador de funciones complejas en Python

En ingeniería química es común el uso de largas y complejas expresiones matemáticas para, por ejemplo, la obtención de parámetros termodinámicos en compuestos que intervienen en un proceso a modelar.

pyBigParser es una librería escrita en Python que permite crear objetos para el almacenamiento de funciones y su evaluación. Gracias a esta librería la función se puede dividir en «bloques» facilitando su implementación y evaluando la misma con otros parámetros a posteriori.

Por ejemplo, la ecuación:

$latex \left ( 24+6*c \right )^2+\left ( 2* \frac{25}{d} \right )$

se puede escribir de forma más compacta de la siguiente forma:

$latex (x)^2+\left ( 2*y \right )$

siendo:

$latex x=24+6*c$

$latex y=2*\frac{25}{d}$

Para hacer esto con pyBigParser:

from pybigparser import evaluator

mybig = evaluator.bigFunction()
mybig.setFunction("x**2+2*y")
mybig.addSub("x", "24+6*c")
mybig.addSub("y", "25 / d")
mybig.addSub("c", "1")
mybig.addSub("d", "4")

mybig.evaluate()

¿Sencillo no? En el momento de escribir esta entrada pyBigParser tiene una media de 500 descargas diarías.

Si estás iniciandote en programación con Python, puede que te ayude ver el vídeo-ejemplo que el propio creador (Nelson Carrasquel) ha publicado en nuestro canal de YouTube de CAChemE.

Categorías
Python

¿Python en la nube? Cloud computing de forma sencilla

Trabajar y ejecutar código Python desde servidores externos (la nube) se está convirtiendo en una alternativa cada vez más atractiva. La principal ventaja, aparte de poder disponer de mayores prestaciones que en un equipo local, es la posibilidad de compartir configuraciones y realizar trabajos en colaboración de forma sencilla. Debido a que el ecosistema de Python está evolucionando a un ritmo vertiginoso, se pueden tener problemas a la hora de compartir el trabajo realizado debido a que la configuración de las librerías (y versiones) es diferente entre los miembros del equipo.

Una solución excelente es Wakari.io de los mismos desarrolladores de Anaconda (Continiuum Analytics). Wakari permite acceder a través de un navegador a un entorno Python (NumPy, SciPy, Pandas etc.) listo para usar y completamente configurado incluyendo además los archivos o datos de partida. Permite además ver, clonar y editar notebooks de IPython e incluye opciones para compartir el trabajo entre colaboradores y/o mediante enlaces directos.

Wakari permite la configuración de diferentes entornos y consolas desde el navegador
Wakari permite la configuración de diferentes entornos y consolas desde el navegador

IPython es un interprete interactivo avanzado que ha revolucionando la manera en que se utiliza Python en ámbitos científicos, conferencias y tutoriales. Inspirados por los notebooks de Mathematica y Sage, el notebook de IPython es una interfaz web para IPython. El blog de Pybonacci, que debería de estar ya en tu lista de favoritos, habló del mismo hace un año: Introducción a IPython, mucho más que un intérprete de Python.

Wakari permite trabajar en la nube con IPython notebook
Wakari permite trabajar en la nube con Notebook de IPython

Wakari es la solución más interesante bajo esta filosofía y dispone de modalidades de uso gratuitas. No obstante, The Sagemath Cloud se presenta como una alternativa recién estrenada que permite trabajar directamente (desde el navegador) con notebooks de IPython de forma simple y entre varios usuarios. Este servicio es totalmente gratuito y esta ofrecido por la Sagemath Foundation y la Universidad de Washington

Worksheets: Sage, R, Python, Cython, GAP, Macaulay2, Singular, and much more
Matemática computacional con Sage, R, Python, Cython, GAP, Macaulay2 y Singular entre otros.

Otras alternativas para Python orientadas a HPC (High-performance computing) son:

Y tú, ¿conoces alguna plataforma o servicio para trabajar con Python online? .

Categorías
chemsep simuladores

Operaciones de separación con ChemSep

ChemSep es un simulador de columnas de destilación, absorción y operaciones de extracción con una interfaz fácil e intuitiva. Combina el modelo de columna de etapas de equilibrio clásico con un modelo de columna de no-equilibrio en una interfaz fácil e intuitiva. Su base de datos abarca 400 productos químicos y se puede probar la versión totalmente gratuita limitada a 150 etapas y 10 componentes.

chemsep
Interfaz y ejemplos resueltos mediante ChemSep

Este programa aunque autónomo, pertenece al paquete de simulación de COCO que es un simulador similar a CHEMCAD, pero este programa es gratuito. ChemSep sirve para describir o simular un único proceso de separación de componentes y no un conjunto de procesos; no obstante el programa nos parece muy interesante primero porque funciona muy bien ya que tiene gran cantidad de opciones, porque se puede obtener muchísima información de él una vez finalizada la simulación, ya sea en forma de gráficas o tablas y finalmente porque es muy intuitivo y fácil de utilizar. Por lo tanto es muy recomendable para utilizarlo en el caso de la docencia y para aprender los distintos procesos de separación, e incluso en algunos casos como ayuda previa al diseño de estos equipos de separación.

Hay que destacar opciones de análisis como el estudio paramétrico o el mapa de curvas de residuo que hacen de este programa una elección más que recomendable.

ChemSep está disponible en dos versiones. Su versión Lite puede ser usado tanto a nivel personal como industrial sin coste. La versión completa permite la simulación de columnas dinámicas y es gratuita para uso académico (http://www.chemsep.com/program/faq.html)

Además, ChemSep se pueden insertar en cualquier paquete de simulación de procesos acorde con CAPE-OPEN (como COCO –http://www.cocosimulator.org/), por lo que el modelo de la columna específico puede ser usado en la simulación de una planta química completa.

Categorías
MATLAB Python

Enthought Canopy vs Anaconda – ¿Cúal es mejor?

¿Enthought Canopy o Anaconda? Ambas son distribuciones de Python que se presentan como alternativas a MATLAB. La ventaja que tienen es que simplifican enormemente la instalación de Python incluyendo los paquetes más populares.

[box]Actualización (2015): Anaconda de Continuum es a día de hoy la mejor opción para instalar Python 3. Ver vídeo de instalación

Spyder es el IDE más similar a MATLAB
Spyder es el entorno de desarrollo de Python más similar a MATLAB

A pesar de que el producto de Mathworks no tiene rival en ciertas áreas, Pyhton tiene una serie de ventajas muy importantes frente a MATLAB.

En cualquier caso en el 2013, no existía una selección clara de por dónde empezar. Canopy express (la versión gratuita) presentaba más paquetes que Anaconda pero una limitación de 32bit , mientras que Anaconda permitía trabajar directamente a 64bit.

Anaconda es una nuevo instalador de paquetes de Python multiplataforma

Pero en la actualidad (2015), el número de paquetes de Anaconda ha aumentado y a diferencia de Canopy express, Anaconda viene con Python 3 y es totalmente gratuito incluso para uso comercial. Su gestor de paquetes conda resuelve el problema de dependencias de forma elegante.

Canopy vs Anaconda - Canopy express ahora también a 64bit

Entonces, ¿qué es mejor Anaconda o Canopy Express?

Hasta hace unos años Enthought (Canopy) lideraba el sector, pero su licencia sólo permite el uso personal. Además, sigue sin dar soporte a Python 3 (cuando para el 2020 no habrá más soporte de Python 2.7).

Anaconda/conda  es la mejor opción con diferencia ya que sigue siendo totalmente gratuita tanto para usuarios como para empresas y ha liberado su código y licencia, soporta Python 3 e incluye ahora una interfaz gráfica.

 

Categorías
MATLAB Python

Python para ingenieros

Pese a que a día de hoy MATLAB es imbatible en ciertos campos, Python empieza a ser una alternativa real gracias a sus librerías llamadas NumPy / SciPy para operaciones númericas, Cython para optimizaciones de código a bajo nivel, IPython para trabajar de forma interactiva, Pandas para análisis de datos y matplotlib para gráficas etc.

[box]Actualización (2015): El panorama ha cambiado mucho en estos dos años. Python es la opción recomendada por Python en Nature y en varias universidades de prestigio.

Hoy en día, muchas de las ofertas de trabajo para ingenieros solicitan conocimientos de MATLAB. Debido a que empezar a trabajar con MATLAB sólo requiere conocimientos de álgebra y cálculo con matrices, es la herramienta utilizada en muchas de las universidades y escuelas de ingeniería. Hasta aquí MATLAB sólo da satisfacciones, todo es sencillo y con los toolboxes ilimitados apenas hay que programar nada más que scripts que hagan usos de estas funciones.

spyder-windows
Si vienes de MATLAB, Spyder es el entorno de programación (IDE por sus siglas en inglés) que te resultará más cómodo.

Llegas al mundo laboral y sin embargo las cosas cambian, una licencia comercial de MATLAB suele costar unos 15000 € de media. Por lo que las empresas que pueden afrontar ese coste exigen conocimientos elevados para recuperar la inversión.

Pero, si estás aquí, es porque has oído que Python empieza a ser una alternativa real para muchas de las funciones de MATLAB. Ya hemos hablado de las opciones para sustituir MATLAB y cómo Python es posiblemente la mejor alternativa a MATLAB.

Resumiendo mucho, Python es un lenguaje de programación mucho mejor que MATLAB puesto que es un lenguaje muy fácil de leer, escalable y que sirve para muchas más funciones que el cálculo científico.

¿Te hemos empezado a convencer? Pues espera, porque ahora viene lo mejor.

La instalación de Python para Windows es (o era), especialmente tediosa. Por eso, si quieres empezar con Python como ingeniero y no sabes cómo desde CAChemE te recomendamos tres opciones:

  • Anaconda: Alternativa a Canopy con instaladores para Windows, MacOS y Linux. Si bien es menos completo que Canopy, Anaconda tiene las librerías de Python más importantes. También tiene opciones comerciales para acelerar código pero la ventaja de Anaconda es que puedes usar Python 3 (versión más reciente y recomendable si estás empezando). En resumen, para instalar Python en Windows Anaconda es la mejor opción.

carousel_1

 

  • Python(x,y) y/o WinPython: Alternativa totalmente libre y gratuita orientada especialmente para ingenieros que quieren migrar de MATLAB a Python. De las anteriores es la que menos paquetes o librerías dispone pero es la forma más sencilla de empezar. Amabas son sólo para Windows siendo WinPython la opción más interesante puesto que no requiere instalación (portable) y la puedes llevar en tu memoria USB.

Python para Windows portable

  • Canopy: Conocida anteriormente como Enthought, dispone de instaladores para Windows, MAC y Linux totalmente automáticos. Además incluye la mayoría de librerías y un sistema para añadir o actualizar los paquetes de Python de forma automática.  A día de hoy no dispone de Python 3 por lo que recomendamos Anaconda (primera opción) que, a diferencia de Canopy, permite su uso en empresa de forma gratuita.

canopy-logo-white

En general, aprender Python requiere un poco más de esfuerzo ya que dependes de otras librerías. Pero es que con MATLAB (comercial) cada cosa nueva que quieres hacer te toca adquirir la licencia del toolbox correspondiente lo cual limita bastante a no ser que tú u tu empresa tengáis recursos infinitos.

Nosotros recomendamos dos materiales para aprender Python si se viene de MATLAB:

– El “curso” online que realizamos con Pybonacci (deberías pasarte por su blog para que veas todo lo que se puede hacer con Python)

– Y Software Carpentry:

Por último, una vez nos sentimos cómodos esta tabla viene muy bien para imitar la forma de trabajar en la que estamos acostumbrados en MATLAB:

Ya estás listo para empezar, si tienes alguna duda puedes preguntarlo en la comunidad de Python para ingenieros que tenemos en Google+.

Categorías
MATLAB Python SciLab

Python para usuarios de MATLAB

Si bien existen varias alternativas a MATLAB tales como Scilab y Octave, el uso de Python para sustituir MATLAB va ganando adeptos. Muchos ingenieros y científicos nos consultan respecto a cuales son las verdaderas ventajas Python como nuevo lenguaje de trabajo que consumirá un tiempo valioso de aprendizaje.

Python-Programming-Language

Antes de empezar, es importante destacar que MATLAB es una herramienta muy capaz y en algunos campos (aún) no tiene rival. El gran problema de MATLAB es el coste de las licencias junto a algunas inconsistencias de su lenguaje.

El coste de una licencia de MATLAB es a día de hoy de 2000€ más los toolboxes que se requieran (1000€/ud) más 5000€ para el compilador que nos permitirá comercializar nuestro trabajo.

¿Qué alternativas más sencillas y gratuitas existe para MATLAB?

  • Octave es el lenguaje más compatible con MATLAB pero tiene la «desventaja» de estar protegido con licencia GPL por lo que, sin entrar en detalle, deberás facilitar el código de tu aplicación (comercial o no) siempre que hagas un cambio en el original y alguien te lo solicite. Por otro lado, Octave carecía de GUI o interfaz gráfica hasta hace bien poco, lo lo hacía menos atractivo que MATLAB. La gran ventaja de Octave es que es el «mismo» lenguaje por lo que si tienes código hecho en MATLAB seguramente funciones «directamente» en Octave.
  • Scilab pese a ser de licencia similar a la GPL pero francesa (CECILL), no es compatible de forma directa con MATLAB. Sin embargo tiene la ventaja de tener una IDE muy similar a la de MATLAB y ofrece la única alternativa a Simulink llamada XCOS.

En resumen, si dispones de mucho código MATLAB heredado Octave es la mejor opción, pero si buscas algo similar a MATLAB-Simulink entonces SciLab es tu mejor apuesta. A pesar de que estas opciones salvan los costes licencias, Octave y Scilab tienen las mismas limitaciones técnicas que MATLAB.

GNU Octave es la mejor alternativa a MATLAB si se busca compatibilidad con el código ya desarrollado.

Entonces como ingeniero o científico te preguntarás,

¿Por qué es mejor aprender Python para sustituir MATLAB?

  • Python es uno de los lenguajes de programación más sencillos de aprender que existen y se enseña en universidades prestigiosas como el MIT.
  • Tanto Python como sus paquetes o librerías son gratuitos.
  • Están cubiertos por licencia BSD por lo que se permite su comercialización sin ningún tipo de restricción (no tendrás que facilitar el código si no lo deseas).
  • Es un lenguaje de programación bien diseñado, fácil de leer y escalable por lo que tu código será util para pequeñas pruebas como para usos industriales.
  • La integración con otras herramientas y lenguajes es casi siempre posible.
  • Multiplataforma, se puede ejecutar tanto en Linux como en MacOS como en Windows.
  • Existe una cantidad de información y documentación en internet incomparable con el resto de alternativas.
  • Su comunidad se compone desde aprendices a profesionales de diversos ámbitos (no sólo científico)
  • Ejemplo de ello es Nature y Google que lo recomiendan y utilizan.

En resumen, Python es un lenguaje que se usa simplemente para todo (web, bases de datos, redes, interfaces gráficas de usuario, juegos, gráficos, ciencia…)

Categorías
dinamico Simulink tutorial XCOS

Simulación reactor RCTA con XCOS / Simulink

Aprende a simular un reactor RCTA con XCOS (alternativa open source de Simulink):

Categorías
Simulink tutorial XCOS

Iniciación con XCOS / Simulink

Aprende a utlizar XCOS (alternativa open source de Simulink) mediante este video tutorial dónde aprenderás las fuciones báscias del programa:

Categorías
MATLAB Python

Alternativas a MATLAB: Python

Python es un lenguaje de programación sencillo y práctico, que te permite trabajar con mayor rapidez e integrar sistemas con mayor eficacia. Puedes aprender a usar Python y obtener beneficios casi inmediatos en la productividad y reducir los costes de licencia ya que es gratuito. Por todo ello Python se está convirtiendo (si no lo es ya) en una de las alternativas principales a la hora de remplazar a otros lenguajes de programación como MATLAB.

print("Hola mundo!")

¿Por qué Python?

Podemos resumir las ventajas de Python en los siguientes puntos:

  • Software libre y gratuito (con licencia BSD que son permisivas para empresas)
  • Es multiplataforma (Windows, MacOS y Linux)
  • Lenguaje de alto nivel conveniente para un desarrollo rápido
  • Su filosofía enfatiza la simplicidad y legibilidad de código
  • Posee núcleo de lenguaje relativamente pequeño con el apoyo de magníficas librerías (NumPy, SciPy, scikit-learn, pandas, IPython-Jupyter, matplotlib etc.)
  • Multiparadigma: varios estilos de programación son compatibles (imperativo, orientado a objetos, funcional)
  • Integración con C/C++/Fortran y R
  • Amplio espectro de programadores (ocasional <> desarrolladores)
  • Comunidad grande (científica también) y activa (PyCon, SciPy, EuroPython, PyData…)

Parece interesante, ¿cómo empiezo?

Una de los problemas y virtudes de Python es que se usa en muchísimos campos y, por tanto, si alguien quiere empezar la cantidad de información puede llegar a ser problemática. Así que primero busca (¡o pregunta!) si tus tareas habituales las puedes hacer con Python. Por ejemplo, nosotros demostramos que podíamos realizar los ejercicios formación en Ingeniería Química con Python y sus bibliotecas:

Para la instalación de Python, la distribución más interesante en estos momentos, seas científico o no, es Anaconda (http://continuum.io/anaconda); que es igual tanto para los usuarios de Windows, OS X e incluso para las distribuciones de Linux que tienen gestores de paquetes decentes. En general, es lo más parecido a instalar MATLAB (pero gratis y open source), ya que instalas todos los paquetes y puedes ponerte a trabajar 🙂

De hecho, Anaconda incluye un  IDE por defecto tipo MATLAB llamado Spyder:

spyder-windows
Si vienes de MATLAB, Spyder es el entorno de programación (IDE por sus siglas en inglés) que te resultará más cómodo.

Pero una de las cosas más interesantes  es IPython Notebook (Jupyter) que ahora incluye widgets para poder variar parámetros de forma muy sencilla.

En general, aprender Python requiere un poco más de esfuerzo ya que dependes de otras librerías. Pero es que con MATLAB (comercial) cada cosa nueva que quieres hacer te toca adquirir la licencia del toolbox correspondiente lo cual limita bastante a no ser que tú u tu empresa tengáis recursos infinitos.

Nosotros recomendamos dos materiales para aprender Python si se viene de MATLAB y no morir en el intento:

– El “curso” online que realizamos con Pybonacci (deberías pasarte por su blog para que veas todo lo que se puede hacer con Python)

aprender-python-ciencia-ingenieria

– Y Software Carpentry:

Por último, una vez nos sentimos cómodos esta tabla viene muy bien para imitar la forma de trabajar en la que estamos acostumbrados en MATLAB:

Ya estás listo para empezar, si tienes alguna duda puedes preguntarlo en la comunidad de Python para ingenieros que tenemos en Google+.

Actualización: Hemos escrito más cosas sobre Python desde que se publicó esta entrada, para saber más:

Categorías
SciLab Simulink tutorial XCOS

Descarga el manual de Xcos

Ya disponible el manual de usuario de Xcos (Scilab), aprende a usar la alternativa grautita y libre a Simulink (MATLAB)

Página de descarga (link)