Example #1
0
def FindUnitTypes():
    """
    returns a mapping of all the unit names to the unit types
    
    raises an exception if there is more than one option -- this will check
    the unit database for duplicated names
    """
    unit_types = {}
    for unit_type in ConvertDataUnits.keys():
        if unit_type == "Oil Concentration" or unit_type == "Concentration In Water":
            continue  # skipping Oil Concentration, 'cause this is really length -- lots of duplicate units!
            # skipping Concentration in water, cause this has lots of duplicate units
        for PrimaryName, data in ConvertDataUnits[unit_type].items():
            # strip out whitespace and capitalization
            #Pname = Simplify(PrimaryName)
            Pname = PrimaryName
            # add the primary name:
            unit_types[Pname] = unit_type
            # now the synonyms:
            for n in data[1]:
                if unit_type == "Volume" and n == 'oz':
                    continue  # skip, "oz" is only mass
                if unit_types.has_key(n):
                    raise ValueError("Duplicate name in units table: %s" % n)
                unit_types[n] = unit_type
    return unit_types
Example #2
0
def GetUnitTypes():
    """
    returns a list of all the unit types available

    a unit type is something like "mass", "velocity", etc.
    """
    return ConvertDataUnits.keys()
def FindUnitTypes():
    """
    returns a mapping of all the unit names to the unit types
    
    raises an exception if there is more than one option -- this will check
    the unit database for duplicated names

    Usually not called from user code.
    """
    unit_types = {}
    for unit_type in ConvertDataUnits.keys():
        if unit_type == "Oil Concentration" or unit_type == "Concentration In Water":
            continue # skipping Oil Concentration, 'cause this is really length -- lots of duplicate units!
                     # skipping Concentration in water, cause this has lots of duplicate units 
        for PrimaryName, data in ConvertDataUnits[unit_type].items():
            # strip out whitespace and capitalization
            #Pname = Simplify(PrimaryName)
            Pname = PrimaryName
            # add the primary name:
            unit_types[Pname] = unit_type
            # now the synonyms:
            for n in data[1]:
                if unit_type == "Volume" and n == 'oz':
                    continue # skip, "oz" is only mass
                if unit_types.has_key(n):
                    raise ValueError("Duplicate name in units table: %s"%n)
                unit_types[n] = unit_type
    return unit_types
def GetUnitTypes():
    """
    returns a list of all the unit types available

    a unit type is something like "mass", "velocity", etc.
    """
    return ConvertDataUnits.keys()
Example #5
0
def GetUnitTypes():
    return ConvertDataUnits.keys()
Example #6
0
    @classmethod
    def ToMass(self, Volume, VolUnits, Density, DensityUnits, MassUnits):
        Density = convert("Density", DensityUnits, "kg/m^3", Density)
        #print "Density in kg/m^3", Density
        Volume = convert("Volume", VolUnits, "m^3", Volume)
        #print "Volume in m^3", Volume
        Mass = Volume * Density
        #print "Mass in kg", Mass
        Mass = convert("Mass", "kg", MassUnits, Mass)
        #print "Mass in %s"%MassUnits, Mass
        return Mass


# create the converter objects
Converters = {}
for (unittype, data) in ConvertDataUnits.items():
    if unittype.lower() == 'temperature':
        Converters["temperature"] = TempConverterClass(unittype, data)
    elif unittype.lower() == 'density':
        Converters["density"] = DensityConverterClass(unittype, data)
    else:
        Converters[Simplify(unittype)] = ConverterClass(unittype, data)


def convert(UnitType, FromUnit, ToUnit, Value):
    UnitType = Simplify(UnitType)
    try:
        Converter = Converters[UnitType]
    except:
        raise InvalidUnitTypeError(UnitType)
    return Converter.Convert(FromUnit, ToUnit, Value)
        :param MassUnits: unit of mass desired for output
        """

        Density = convert("Density", DensityUnits, "kg/m^3", Density)
        #print "Density in kg/m^3", Density
        Volume = convert("Volume", VolUnits, "m^3", Volume)
        #print "Volume in m^3", Volume
        Mass = Volume * Density
        #print "Mass in kg", Mass
        Mass = convert("Mass", "kg", MassUnits,  Mass)
        #print "Mass in %s"%MassUnits, Mass
        return Mass

# create the converter objects
Converters = {}
for (unittype,data) in ConvertDataUnits.items():
    if unittype.lower() == 'temperature':
        Converters["temperature"] = TempConverterClass(unittype, data)
    elif unittype.lower() == 'density':
        Converters["density"] = DensityConverterClass(unittype, data)
    else:
        Converters[Simplify(unittype)] = ConverterClass(unittype, data)

def convert(UnitType, FromUnit, ToUnit, Value):
    """
    Convert(FromUnit, ToUnit, Value)

    returns a new value, in the units of ToUnit.

    :param FromUnit: the unit the original value is in
    :param ToUnit: the unit you want the value converted to
def GetUnitTypes():
    return ConvertDataUnits.keys()