Warning

You are reading the documentation related to the development version. Go here if you are looking for the documentation of the stable release.

spectrochempy.to

to(other, inplace=False, force=False)[source]

Return the object with data rescaled to different units.

Parameters
  • other (Quantity or str) – Destination units.

  • inplace (bool, optional, default=`False`) – Flag to say that the method return a new object (default) or not (inplace=True).

  • force (bool, optional, default=False) – If True the change of units is forced, even for incompatible units.

Returns

rescaled

See also

ito

Inplace rescaling of the current object data to different units.

to_base_units

Rescaling of the current object data to different units.

ito_base_units

Inplace rescaling of the current object data to different units.

to_reduced_units

Rescaling to reduced_units.

ito_reduced_units

Inplace rescaling to reduced units.

Examples

>>> np.random.seed(12345)
>>> ndd = scp.NDArray(data=np.random.random((3, 3)),
...                   mask=[[True, False, False],
...                         [False, True, False],
...                         [False, False, True]],
...                   units='meters')
>>> print(ndd)
NDArray: [float64] m (shape: (y:3, x:3))

We want to change the units to seconds for instance but there is no relation with meters, so an error is generated during the change

>>> ndd.to('second')
Traceback (most recent call last):
...
pint.errors.DimensionalityError: Cannot convert from 'meter' ([length]) to
'second' ([time])

However, we can force the change

>>> ndd.to('second', force=True)
NDArray: [float64] s (shape: (y:3, x:3))

By default the conversion is not done inplace, so the original is not modified :

>>> print(ndd)
NDArray: [float64] m (shape: (y:3, x:3))