cgsUnits
index
/users/schrei_f/src/py4CAtS/aux/cgsUnits.py

cgsUnits
convert (physical) data between (compatible) units
 
usage:
cgsUnits oldUnit newUnit value(s)
 
NOTE:  the (physical) quantities and units supported are far from complete.
       (see the source file for quantities and units known)

 
Modules
       
numpy
os
sys

 
Functions
       
cgs(unit, data=1.0)
Conversion of (scalar or array) physical value(s) to its cgs base unit (e.g. 'cm' or 'g').
If no data are given, simply return the conversion factor to the cgs base unit.
If unit starts with an exclamation mark (!), convert from the base unit.
If unit contains an exclamation mark, convert from the unit given before the ! to the unit after the !
 
ARGUMENTS:
unit:    a text string like "cm" or "mb"
data:    optional float or list or array of physical quantities
 
RETURNS:
either simply the conversion factor to (from) the cgs base unit
or the data converted to (or from) the cgs base unit
 
EXAMPLES:
cgs('km')                ---> 100000.0
cgs('!kg',amu)           ---> 1.660538782e-27
cgs('mb ! atm',1013.25)  ---> 1.0
 
NOTES:
* the greek mu can be specified with the latin 'u' (e.g. 'um' for wavelength in micrometer)
* temperature conversion K <--> C not implemented (additive, not multiplicative)
* the list of supported/known units is far from complete
  (for a complete conversion module see astropy.units, http://www.astropy.org)
cgsTemperature(data, old=None, new=None)
Temperature unit conversion:  additive, so the standard scheme (multiplicative) does not work.
change_frequency_units(x, xUnitOld, xUnitNew)
Convert frequency <--> wavenumber <--> wavelength.
lambda2nu(*lData, nm=False, freq='', flip=False, delta=False)
Convert wavelength [um|nm] to wavenumber [1/cm] or frequency.
 
ARGUMENTS:
----------
lData     wavelength(s)
nm        flag: input micrometer (default), otherwise nanometer
freq      if empty:  output data in cm-1
          for frequency give Hz | kHz | MHz | GHz | THz
flip      flag: reverse the order of elements
delta     return the differences between consecutive wavelengths
nu2lambda(*vData, freq='', nm=False, flip=False)
Convert wavenumber [cm-1] or frequency to wavelength.
 
ARGUMENTS:
----------
vData     wavenumber(s) or frequency(ies)
freq      if empty:  input data in cm-1
          for frequency give Hz | kHz | MHz | GHz | THz
nm        flag: return micrometer (default) or nanometer
flip      flag: reverse the order of elements
unitConversion(data, WHAT, old=None, new=None)
Conversion of (scalar or array) physical values to different units.
If old (input) or new (output) unit is not given: assume cgs standard unit for this quantity.

 
Data
        alias = 'height'
allQuantities = {'altitude': {'A': 1e-08, 'au': 14959787070000, 'cm': 1.0, 'dm': 10.0, 'inch': 2.54, 'km': 100000.0, 'ly': 946073047258080000, 'm': 100.0, 'micrometer': 0.0001, 'mm': 0.1, ...}, 'area': {'A**2': 1.0000000000000001e-16, 'au**2': 223795229179739184900000000, 'cm**2': 1.0, 'dm**2': 100.0, 'inch**2': 6.4516, 'km**2': 10000000000.0, 'ly**2': 895054210748189273006125286400000000, 'm**2': 10000.0, 'micrometer**2': 1e-08, 'mm**2': 0.010000000000000002, ...}, 'density': {'1/A**3': 1e+24, '1/au**3': 2.98692118986137e-40, '1/cm**3': 1.0, '1/dm**3': 0.001, '1/inch**3': 0.06102374409473228, '1/km**3': 1e-15, '1/ly**3': 1.1809349884417086e-54, '1/m**3': 1e-06, '1/micrometer**3': 999999999999.9999, '1/mm**3': 999.9999999999999, ...}, 'energy': {'J': 10000000.0, 'N.m': 10000000.0, 'Nm': 10000000.0, 'erg': 1.0, 'g.cm**2/s**2': 1.0, 'kg.m**2/s**2': 10000000.0, 'mJ': 10000.0}, 'frequency': {'1/cm': 29979245800.0, 'GHz': 1000000000.0, 'Hz': 1.0, 'MHz': 1000000.0, 'THz': 1000000000000.0, 'cm-1': 29979245800.0, 'kHz': 1000.0}, 'height': {'A': 1e-08, 'au': 14959787070000, 'cm': 1.0, 'dm': 10.0, 'inch': 2.54, 'km': 100000.0, 'ly': 946073047258080000, 'm': 100.0, 'micrometer': 0.0001, 'mm': 0.1, ...}, 'length': {'A': 1e-08, 'au': 14959787070000, 'cm': 1.0, 'dm': 10.0, 'inch': 2.54, 'km': 100000.0, 'ly': 946073047258080000, 'm': 100.0, 'micrometer': 0.0001, 'mm': 0.1, ...}, 'mass': {'amu': 1.660538782e-24, 'g': 1.0, 'kg': 1000.0, 'mg': 0.001, 'ton': 1000000.0, 'ug': 1e-06}, 'mixingratio': {'%': 0.01, 'pp1': 1.0, 'ppV': 1.0, 'ppb': 1e-09, 'ppbV': 1e-09, 'ppbv': 1e-09, 'ppm': 1e-06, 'ppmV': 1e-06, 'ppmv': 1e-06, 'ppt': 1e-12, ...}, 'p': {'N/m**2': 10.0, 'N/m^2': 10.0, 'Pa': 10.0, 'Torr': 1333.22, 'atm': 1013250.0, 'bar': 1000000.0, 'dyn/cm**2': 1.0, 'dyn/cm^2': 1.0, 'g/(cm*s**2)': 1.0, 'g/(cm*s^2)': 1.0, ...}, ...}
allUnits = {'%': 0.01, '1/A**3': 1e+24, '1/au**3': 2.98692118986137e-40, '1/cm': 29979245800.0, '1/cm**3': 1.0, '1/dm**3': 0.001, '1/inch**3': 0.06102374409473228, '1/km**3': 1e-15, '1/ly**3': 1.1809349884417086e-54, '1/m**3': 1e-06, ...}
areaUnits = {'A**2': 1.0000000000000001e-16, 'au**2': 223795229179739184900000000, 'cm**2': 1.0, 'dm**2': 100.0, 'inch**2': 6.4516, 'km**2': 10000000000.0, 'ly**2': 895054210748189273006125286400000000, 'm**2': 10000.0, 'micrometer**2': 1e-08, 'mm**2': 0.010000000000000002, ...}
c = 29979245800.0
cgs_units = {'density': '1/cm**3', 'energy': 'erg', 'length': 'cm', 'power': 'erg/s', 'pressure': 'g/(cm*s**2)', 'temperature': 'K', 'vmr': 'pp1'}
densityUnits = {'1/A**3': 1e+24, '1/au**3': 2.98692118986137e-40, '1/cm**3': 1.0, '1/dm**3': 0.001, '1/inch**3': 0.06102374409473228, '1/km**3': 1e-15, '1/ly**3': 1.1809349884417086e-54, '1/m**3': 1e-06, '1/micrometer**3': 999999999999.9999, '1/mm**3': 999.9999999999999, ...}
energyUnits = {'J': 10000000.0, 'N.m': 10000000.0, 'Nm': 10000000.0, 'erg': 1.0, 'g.cm**2/s**2': 1.0, 'kg.m**2/s**2': 10000000.0, 'mJ': 10000.0}
frequencyUnits = {'1/cm': 29979245800.0, 'GHz': 1000000000.0, 'Hz': 1.0, 'MHz': 1000000.0, 'THz': 1000000000000.0, 'cm-1': 29979245800.0, 'kHz': 1000.0}
lengthUnits = {'A': 1e-08, 'au': 14959787070000, 'cm': 1.0, 'dm': 10.0, 'inch': 2.54, 'km': 100000.0, 'ly': 946073047258080000, 'm': 100.0, 'micrometer': 0.0001, 'mm': 0.1, ...}
massUnits = {'amu': 1.660538782e-24, 'g': 1.0, 'kg': 1000.0, 'mg': 0.001, 'ton': 1000000.0, 'ug': 1e-06}
mixingRatioUnits = {'%': 0.01, 'pp1': 1.0, 'ppV': 1.0, 'ppb': 1e-09, 'ppbV': 1e-09, 'ppbv': 1e-09, 'ppm': 1e-06, 'ppmV': 1e-06, 'ppmv': 1e-06, 'ppt': 1e-12, ...}
powerUnits = {'W': 10000000.0, 'erg/s': 1.0, 'g.cm**2/s**3': 1.0, 'kg.m**2/s**3': 10000000.0, 'mW': 10000.0, 'nW': 0.01, 'uW': 10.0}
pressureUnits = {'N/m**2': 10.0, 'N/m^2': 10.0, 'Pa': 10.0, 'Torr': 1333.22, 'atm': 1013250.0, 'bar': 1000000.0, 'dyn/cm**2': 1.0, 'dyn/cm^2': 1.0, 'g/(cm*s**2)': 1.0, 'g/(cm*s^2)': 1.0, ...}
temperatureUnits = {'C': 273.15, 'Celsius': 273.15, 'K': 0.0, 'Kelvin': 0.0, 'k': 0.0}
units = {'J': 10000000.0, 'N.m': 10000000.0, 'Nm': 10000000.0, 'erg': 1.0, 'g.cm**2/s**2': 1.0, 'kg.m**2/s**2': 10000000.0, 'mJ': 10000.0}
volumeUnits = {'A**3': 1.0000000000000001e-24, 'au**3': 3347928975810748964239359243000000000000, 'cm**3': 1.0, 'dm**3': 1000.0, 'hl': 100000.0, 'inch**3': 16.387064000000002, 'km**3': 1000000000000000.0, 'l': 1000.0, 'ly**3': 846786664623715165...4714112000000000000, 'm**3': 1000000.0, ...}
wavelengthUnits = {'A': 1e-08, 'cm': 1.0, 'micrometer': 0.0001, 'mm': 0.1, 'mue': 0.0001, 'mum': 0.0001, 'nm': 1e-07, 'um': 0.0001}