Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def world_axis_physical_types(self):
"""
An iterable of strings describing the physical type for each world axis.
These should be names from the VO UCD1+ controlled Vocabulary
(http://www.ivoa.net/documents/latest/UCDlist.html). If no matching UCD
type exists, this can instead be ``"custom:xxx"``, where ``xxx`` is an
arbitrary string. Alternatively, if the physical type is
unknown/undefined, an element can be `None`.
"""
# A CompositeFrame orders the output correctly based on axes_order.
if isinstance(self.output_frame, cf.CompositeFrame):
return self.output_frame.axis_physical_types
# If we don't have a CompositeFrame, where this is taken care of for us,
# we need to make sure we re-order the output to match the transform.
# The underlying frames don't reorder themselves because axes_order is global.
return tuple(self.output_frame.axis_physical_types[i] for i in self.output_frame.axes_order)
return SpectralFrame(**node)
@classmethod
def to_tree(cls, frame, ctx):
node = cls._to_tree(frame, ctx)
if frame.reference_position is not None:
node['reference_position'] = frame.reference_position.lower()
return node
class CompositeFrameType(FrameType):
name = "composite_frame"
types = [CompositeFrame]
@classmethod
def from_tree(cls, node, ctx):
if len(node) != 2:
raise ValueError("CompositeFrame has extra properties")
name = node['name']
frames = node['frames']
return CompositeFrame(frames, name)
@classmethod
def to_tree(cls, frame, ctx):
return {
'name': frame.name,
'frames': yamlutil.custom_tree_to_tagged_tree(frame.frames, ctx)
def from_tree(cls, node, ctx):
if len(node) != 2:
raise ValueError("CompositeFrame has extra properties")
name = node['name']
frames = node['frames']
return CompositeFrame(frames, name)
ph_type = list(range(naxes))
for frame in frames:
axes_order.extend(frame.axes_order)
for frame in frames:
for ind, axtype, un, n, pht in zip(frame.axes_order, frame.axes_type,
frame.unit, frame.axes_names, frame.axis_physical_types):
axes_type[ind] = axtype
axes_names[ind] = n
unit[ind] = un
ph_type[ind] = pht
if len(np.unique(axes_order)) != len(axes_order):
raise ValueError("Incorrect numbering of axes, "
"axes_order should contain unique numbers, "
"got {}.".format(axes_order))
super(CompositeFrame, self).__init__(naxes, axes_type=axes_type,
axes_order=axes_order,
unit=unit, axes_names=axes_names,
name=name)
self._axis_physical_types = tuple(ph_type)