# FunctionUnitBase¶

class astropy.units.function.FunctionUnitBase(physical_unit=None, function_unit=None)[source]

Bases: object

Abstract base class for function units.

Function units are functions containing a physical unit, such as dB(mW). Most of the arithmetic operations on function units are defined in this base class.

While instantiation is defined, this class should not be used directly. Rather, subclasses should be used that override the abstract properties _default_function_unit and _quantity_class, and the abstract methods from_physical, and to_physical.

Parameters
physical_unit

Unit that is encapsulated within the function unit. If not given, dimensionless.

function_unit

By default, the same as the function unit set by the subclass.

Attributes Summary

 cgs Copy the current function unit with the physical unit in CGS. equivalencies List of equivalencies between function and physical units. function_unit physical_type Return the physical type of the physical unit (e.g., ‘length’). physical_unit si Copy the current function unit with the physical unit in SI.

Methods Summary

 decompose(self[, bases]) Copy the current unit with the physical unit decomposed. from_physical(self, x) Transformation from value in physical to value in function units. is_equivalent(self, other[, equivalencies]) Returns True if this unit is equivalent to other. is_unity(self) to(self, other[, value, equivalencies]) Return the converted values in the specified unit. to_physical(self, x) Transformation from value in function to value in physical units. to_string(self[, format]) Output the unit in the given format as a string.

Attributes Documentation

cgs

Copy the current function unit with the physical unit in CGS.

equivalencies

List of equivalencies between function and physical units.

Uses the from_physical and to_physical methods.

function_unit
physical_type

Return the physical type of the physical unit (e.g., ‘length’).

physical_unit
si

Copy the current function unit with the physical unit in SI.

Methods Documentation

decompose(self, bases=set())[source]

Copy the current unit with the physical unit decomposed.

For details, see decompose.

abstract from_physical(self, x)[source]

Transformation from value in physical to value in function units.

This method should be overridden by subclasses. It is used to provide automatic transformations using an equivalency.

is_equivalent(self, other, equivalencies=[])[source]

Returns True if this unit is equivalent to other.

Parameters
otherunit object or string or tuple

The unit to convert to. If a tuple of units is specified, this method returns true if the unit matches any of those in the tuple.

equivalencieslist of equivalence pairs, optional

A list of equivalence pairs to try if the units are not directly convertible. See Equivalencies. This list is in addition to the built-in equivalencies between the function unit and the physical one, as well as possible global defaults set by, e.g., set_enabled_equivalencies. Use None to turn off any global equivalencies.

Returns
bool
is_unity(self)[source]
to(self, other, value=1.0, equivalencies=[])[source]

Return the converted values in the specified unit.

Parameters
otherUnit object, FunctionUnitBase object or string

The unit to convert to.

valuescalar int or float, or sequence convertible to array, optional

Value(s) in the current unit to be converted to the specified unit. If not provided, defaults to 1.0.

equivalencieslist of equivalence pairs, optional

A list of equivalence pairs to try if the units are not directly convertible. See Equivalencies. This list is in meant to treat only equivalencies between different physical units; the build-in equivalency between the function unit and the physical one is automatically taken into account.

Returns
valuesscalar or array

Converted value(s). Input value sequences are returned as numpy arrays.

Raises
UnitsError

If units are inconsistent.

abstract to_physical(self, x)[source]

Transformation from value in function to value in physical units.

This method should be overridden by subclasses. It is used to provide automatic transformations using an equivalency.

to_string(self, format='generic')[source]

Output the unit in the given format as a string.

The physical unit is appended, within parentheses, to the function unit, as in “dB(mW)”, with both units set using the given format

Parameters
formatastropy.units.format.Base instance or str

The name of a format or a formatter object. If not provided, defaults to the generic format.