Source code for sunkit_instruments.iris.iris
"""
This package provides Interface Region Imaging Spectrometer (IRIS) instrument
routines.
.. note::
More comprehensive IRIS tools are now being developed by the
`IRIS instrument team. <https://gitlab.com/LMSAL_HUB/iris_hub>`__
"""
import sunpy.io
import sunpy.map
import sunpy.time
__all__ = ["SJI_to_sequence"]
[docs]def SJI_to_sequence(filename, start=0, stop=None, hdu=0):
"""
Read a SJI file and return a `sunpy.map.MapSequence`.
.. warning::
This function is a very early beta and is not stable. Further work is
on going to improve SunPy IRIS support.
Parameters
----------
filename: `str`
File to read.
start: `int`, optional
Temporal axis index to create `~sunpy.map.MapSequence` from.
Defaults to 0, which will start from the begining.
stop: `int`, optional
Temporal index to stop `~sunpy.map.MapSequence` at.
Defaults to `None`, which will use the entire index.
hdu: `int`, optional
The hdu index to use, defaults to 0.
Returns
-------
`~sunpy.map.MapSequence`
A map sequence of the SJI data.
"""
hdus = sunpy.io.read_file(filename)
# Get the time delta
time_range = sunpy.time.TimeRange(hdus[hdu][1]["STARTOBS"], hdus[hdu][1]["ENDOBS"])
splits = time_range.split(hdus[hdu][0].shape[0])
if not stop:
stop = len(splits)
headers = [hdus[hdu][1]] * (stop - start)
datas = hdus[hdu][0][start:stop]
# Make the cube:
iris_cube = sunpy.map.Map(list(zip(datas, headers)), sequence=True)
# Set the date/time
for i, m in enumerate(iris_cube):
m.meta["DATE-OBS"] = splits[i].center.isot
return iris_cube