In [257]:
from iuvs import io, scaling
from astropy.io import fits
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (32/3, 8)
In [255]:
summaryfile = io.l1b_filenames('summary', ext='.txt')[0]
In [262]:
summary = pd.read_table(summaryfile, skiprows=26, skipinitialspace=True, sep=' ',index_col=0)
In [263]:
summary.columns
Out[263]:
In [267]:
pattern = 'cruisecal2-mode080-muv'
pattern = 'orbit00490'
pattern = 'cruisecal2-mode070'
fname = io.l1b_filenames(pattern, stage=False)
fname
Out[267]:
In [266]:
fname
Out[266]:
In [268]:
l1b = io.L1BReader(fname)
In [270]:
l1b.DarkIntegration
Out[270]:
In [271]:
dark1, dark2 = l1b.detector_dark
In [272]:
dark1.mean()
Out[272]:
In [273]:
dark2.mean()
Out[273]:
In [17]:
fits.info('dark_fitting.fits')
In [229]:
def do_plot(data, title, header=None):
fig, axes = plt.subplots(nrows=2)
if header is not None:
coeffs = eval(header['COEFFS'])
coeffs = [round(i, 4) for i in coeffs]
print(coeffs)
else:
coeffs = 0.0
axes[0].plot(data[30])
axes[0].set_title("{}, profile at spatial bin 30".format(title))
axes[0].set_ylim(-500, 500)
imax = axes[1]
im = imax.imshow(data,vmin=-500, vmax=500, cmap='gray')
plt.colorbar(im, ax=imax, orientation='horizontal')
imax.set_title("{}, stddev: {:.1f} DN, {}".format(title, data.std(), coeffs),
fontsize=16)
# fig.tight_layout()
fig.savefig(title+'.png', dpi=150)
In [230]:
do_plot(dark2-dark1,'dark2-dark1')
In [231]:
header = fits.getheader('dark_fitting.fits', 'RANK-1')
do_plot(fits.getdata('dark_fitting.fits', 'RANK-1'), 'additive',
header)
In [232]:
do_plot(fits.getdata('dark_fitting.fits', 'RANK0'), 'multiplicative (no offset)',
fits.getheader('dark_fitting.fits', "RANK0"))
In [233]:
do_plot(fits.getdata('dark_fitting.fits', 'RANK1'), 'degree 1 polynom',
fits.getheader('dark_fitting.fits', "RANK1"))
In [234]:
do_plot(fits.getdata('dark_fitting.fits', 'RANK2'), 'degree 2 polynom',
fits.getheader('dark_fitting.fits', 'rank2'))
In [237]:
do_plot(fits.getdata('dark_fitting.fits', 'RANK3'), 'degree 3 polynom',
fits.getheader('dark_fitting.fits', 'rank3'))
In [242]:
ranks = [-1,0,1,2,3]
for rank in ranks:
header = fits.getheader('dark_fitting.fits', 'rank'+str(rank))
print(header['COEFFS'])
In [ ]: