Source code for ndcube.utils.misc
import astropy.units as u
__all__ = ['convert_quantities_to_units', 'unique_sorted']
[docs]
def unique_sorted(iterable):
"""
Return unique values in the order they are first encountered in the iterable.
"""
lookup = set() # a temporary lookup set
return [ele for ele in iterable if ele not in lookup and lookup.add(ele) is None]
[docs]
def convert_quantities_to_units(coords, units):
"""Converts a sequence of Quantities to units used in the WCS.
Non-Quantity types in the sequence are allowed and ignored.
Parameters
----------
coords: iterable of `astropy.units.Quantity` or `None`
The coordinates to be converted.
units: iterable of `astropy.units.Unit` or `str`
The units to which the coordinates should be converted.
Returns
-------
converted_coords: iterable of `astropy.units.Quantity` or `None`
The coordinates converted to the units.
Non-quantity types remain.
"""
return [coord.to(unit) if isinstance(coord, u.Quantity) else coord
for coord, unit in zip(coords, units)]