Source code for asdf_astropy.converters.wcs.slicedwcs
from asdf.extension import Converter
[docs]
class SlicedWCSConverter(Converter):
tags = ("tag:astropy.org:astropy/wcs/slicedwcs-*",)
types = ("astropy.wcs.wcsapi.wrappers.sliced_wcs.SlicedLowLevelWCS",)
[docs]
def from_yaml_tree(self, node, tag, ctx):
from astropy.wcs.wcsapi.wrappers.sliced_wcs import SlicedLowLevelWCS
wcs = node["wcs"]
slice_array = [
s if isinstance(s, int) else slice(s["start"], s["stop"], s["step"]) for s in node["slices_array"]
]
return SlicedLowLevelWCS(wcs, slice_array)
[docs]
def to_yaml_tree(self, sl, tag, ctx):
slices_array = []
for s in sl._slices_array:
if isinstance(s, slice):
slices_array.append(
{
"start": s.start,
"stop": s.stop,
"step": s.step,
},
)
else:
slices_array.append(s)
return {
"wcs": sl._wcs,
"slices_array": slices_array,
}