Measurement Objects
Distance
objects may be instantiated using a keyword argument indicating the context of the units. In the example below, two different distance objects are instantiated in units of kilometers (km
) and miles (mi
):
For conversions, access the preferred unit attribute to get a converted distance quantity:
>>> print(d1.mi) # Converting 5 kilometers to miles
3.10685596119
>>> print(d2.km) # Converting 5 miles to kilometers
Moreover, arithmetic operations may be performed between the distance objects:
>>> print(d1 + d2) # Adding 5 miles to 5 kilometers
13.04672 km
>>> print(d2 - d1) # Subtracting 5 kilometers from 5 miles
1.89314403881 mi
Two objects multiplied together will yield an Area
object, which uses squared units of measure:
To determine what the attribute abbreviation of a unit is, the unit_attname
class method may be used:
>>> print(Distance.unit_attname('US Survey Foot'))
survey_ft
>>> print(Distance.unit_attname('centimeter'))
cm
Note
class Distance
(\*kwargs*)
To initialize a distance object, pass in a keyword corresponding to the desired unit attribute name set with desired value. For example, the following creates a distance object representing 5 miles:
__getattr__
(unit_att)
Returns the distance value in units corresponding to the given unit attribute. For example:
- classmethod
unit_attname
(unit_name)
Returns the distance unit attribute name for the given full unit name. For example:
>>> Distance.unit_attname('Mile')
'mi'
class D
Alias for class.
Area
To initialize an area object, pass in a keyword corresponding to the desired set with desired value. For example, the following creates an area object representing 5 square miles:
>>> a = Area(sq_mi=5)
__getattr__
(unit_att)
Returns the area value in units corresponding to the given unit attribute. For example:
- classmethod
unit_attname
(unit_name)
Returns the area unit attribute name for the given full unit name. For example:
>>> Area.unit_attname('Kilometer')
class
Alias for Area
class.
Footnotes
Robert Coup is the initial author of the measure objects, and was inspired by Brian Beck’s work in and Geoff Biggs’ PhD work on dimensioned units for robotics. |