from __future__ import division import quantities as pq import numpy as np import inspect # Generar un cuadro con versiones de las librerías utilizadas en este notebook #https://github.com/jrjohansson/version_information %load_ext version_information %version_information numpy, quantities x = 3 * pq.m y = 5 * pq.foot print x + y x = 3.5 * pq.newton y = 0.7 * pq.joule try: x + y # da un error si se intenta realizar una operación no válida con esas unidades except Exception as e: print u'*** ¡Atención! ***: ',e x = 0.3 * pq.km # longitud en Km t = 250 * pq.ms # tiempo en milisegundos acel = x/t**2 masa = 7 * pq.g # masa en gramos fuerza = masa * acel print fuerza print fuerza.simplified print fuerza.rescale(pq.newton) print fuerza.rescale(pq.dyne) # Unidades de tiempo y distancias print pq.year # tiempo en años print pq.au, pq.au.simplified # distancia en unidades astronómicas print pq.light_year, pq.light_year.simplified # distancia en años luz print pq.pc, pq.pc.simplified # distancia en parsecs # Unidades de temperatura print pq.K print pq.celsius # En este ejemplo se vé que la conversión no se lleva a cabo temp = 345 * pq.celsius print temp.rescale(pq.K) # Tampoco es correcta la conversión entre las escalas Farhrenheit y Celsius # Sin embargo, si se considera el valor como un incremento de temperaturas, # el resultado es el correcto temp = 170 * pq.fahrenheit print temp.rescale(pq.celsius) # Medida de ángulos print pq.deg print pq.rad print pq.arcmin print pq.arcsec print (np.pi/2 * pq.rad).rescale(pq.deg) print (1 * pq.deg).rescale(pq.arcmin) # Definición de nuevas unidades Mly = pq.UnitQuantity('megalight_year', 1e6*pq.ly, symbol = 'Mly') Mpc = pq.UnitQuantity('megaparsec', 1e6*pq.pc, symbol = 'Mpc') print (1 * Mpc).rescale(pq.ly) print pq.c, pq.c.simplified # Velocidad de la luz print pq.constants.G, pq.constants.G.simplified # Constante newtoniana de gravitación # Definición de nuevas constantes: earth_radius = 6378160.0 * pq.m moon_radius = 1740000.0 * pq.m sun_radius = 695000000.0 * pq.m earth_mass = 5.97219e24 * pq.kg sun_mass = 332946 * earth_mass Hubble_constant = 67.80 * (pq.km/pq.s)/(1e6*pq.pc) xa = np.arange(10) * pq.N print xa[5] print (xa / (3.0 * pq.kg)).simplified # Un solo valor numérico f = 30 * pq.N print f.item(), type(f.item()) # Un array de valores print xa.magnitude, type(f.magnitude) for nombre, datos in inspect.getmembers(pq.units, inspect.ismodule): print nombre, ',', for u in dir(pq.mass): print u,',', for nombre, datos in inspect.getmembers(pq.constants, inspect.ismodule): print nombre, ',', dir(pq.constants.astronomy)