diff --git a/.gitignore b/.gitignore index 1bb2e45..08767e5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ build .vscode dist *.egg-info +.idea +.ipynb_checkpoints diff --git a/ogip/lc.py b/ogip/lc.py new file mode 100644 index 0000000..cd432d2 --- /dev/null +++ b/ogip/lc.py @@ -0,0 +1,222 @@ +import logging +import numpy as np # type: ignore +import astropy.io.fits as fits # type: ignore + +logger = logging.getLogger() + + +class LightCurve: + + def from_file_name(self, fn): + raise NotImplementedError + + def to_long_string(self): + return repr(self) + + ### + + +double_time_definition_keywords = [('MJDREFI', 'MJDREFF'), + ('TSTARTI', 'TSTARTF'), + ('TSTOPI', 'TSTOPF'), + ('TIMEZERI', 'TIMEZERF'), + ] + +single_time_definition_keywords = ['MJDREF', + 'TSTART', + 'TSTOP', + 'TIMEZERO', + 'TIMEUNIT', + 'TIMEDEL', + ] + +optional_keywords = ['TELAPSE', + 'TIMEREF', + 'TIMESYS', + 'CLOCKCOR', + 'DATE-OBS', + 'DATE-END', + 'TELESCOP', + 'INSTRUME', + 'FILTER', + 'OBJECT', + 'RA', + 'DEC', + 'EQUINOX', + 'RADECSYS', + 'ORIGIN', + 'DATE', + 'AUTHOR', + 'CREATOR' + ] + + +class Rate(LightCurve): + _time = None + _rate = None + _error = None + _timedel = None + _fracexp = None + _keywords = {} + _filename = None + + def __init__(self, filename): + + self._keywords = dict.fromkeys(single_time_definition_keywords, 0.0) + + methods_tried = {} + issue = True + for n, m in Rate.__dict__.items(): + + if n.startswith('from_file_name_'): + try: + self.__getattribute__(m.__name__)(filename) + issue = False + except Exception as e: + logger.debug("failed to read with %s %s", m.__name__, e) + methods_tried[n] = e + if issue: + raise Exception(f"failed to read with any method, tried: {methods_tried}") + + def read_keywords(self, hdu): + + for kk in single_time_definition_keywords + optional_keywords: + if kk in hdu.header: + self._keywords[kk] = hdu.header[kk] + logger.debug(f'Updating {kk}') + for cc in double_time_definition_keywords: + if cc[0] in hdu.header and cc[1] in hdu.header: + tmp_val = hdu.header[cc[0]] + hdu.header[cc[1]] + for kk in single_time_definition_keywords[0:4]: + if cc[0].startswith(kk[0:-1]): + logger.debug(f'Updating {kk} from {cc[0]} and {cc[1]}') + self._keywords[kk] = tmp_val + + def from_file_name_osa(self, fn): + + f = fits.open(fn) + issue = True + for e in f: + try: + self._filename = fn + self._time = e.data['TIME'] + self._timedel = e.data['TIMEDEL'] + self._rate = e.data['RATE'] + self._error = e.data['ERROR'] + self.read_keywords(e) + # set if I find an extension + issue = False + + except Exception as ex: + logger.debug("failed to read from %s: %s", e, ex) + + if issue: + raise Exception("unable to read from any extension") + + def from_file_name_normal(self, fn): + f = fits.open(fn) + try: + hdu = f['RATE'] + except Exception as ex: + logger.error('Unable to find the extension RATE in %s : %s', fn, ex) + raise Exception('Unable to find the extension RATE in %s : %s', fn, ex) + + self.read_keywords(hdu) + + if 'TIME' in hdu.data.names: + self._time = hdu.data['TIME'] + else: + logger.warning("No time column, use keywords") + self._time = np.arange(self._keywords['TSTART'], self._keywords['TSTOP'], + self._keywords['TIMEDEL']) + + if 'XAX_E' in hdu.data.names: + self._timedel = hdu.data['XAX_E'] * 2 + elif 'TIMEDEL' in hdu.data.names: + self._timedel = hdu.data['TIMEDEL'] + else: + self._timedel = self._time[1:] - self._time[0:-1] + self._timedel = np.append(self._timedel, self._timedel[-1]) + + rate_columns = [] + for kk in hdu.data.names: + if kk.startswith('RATE') or kk.startswith('COUNTS'): + rate_columns.append(kk) + + if len(rate_columns) == 0: + logger.error(f'No RATE or COUNTS in {fn}') + raise Exception(f'No RATE or COUNTS in {fn}') + else: + for kk in rate_columns: + self.__setattr__(f'_{kk.lower()}', hdu.data[kk]) + + err_columns = [] + for kk in hdu.data.names: + if kk.startswith('ERROR'): + err_columns.append(kk) + + if len(err_columns) == 0: + logger.warning(f'No Errors in {fn} assuming Poissonian') + for kk_r in rate_columns: + err_kk = kk_r.replace('RATE', 'ERROR').replace('COUNTS', 'ERROR') + self.__setattr__(f'_{err_kk.lower()}', np.sqrt(hdu.data[kk_r])) + else: + for kk in err_columns: + self.__setattr__(f'_{kk.lower()}', hdu.data[kk]) + + if 'FRACEXP' in hdu.data.names: + self._fracexp = hdu.data['FRACEXP'] + else: + self._fracexp = np.ones(len(self._rate)) + + def lc_hdu(self): + # https://heasarc.gsfc.nasa.gov/docs/heasarc/ofwg/docs/rates/ogip_93_003/ogip_93_003.html + + columns = [fits.Column(name='TIME', array=self._time, format='D'), + fits.Column(name='TIMEDEL', array=self._timedel, format='D'), + fits.Column(name='FRACEXP', array=self._fracexp, format='1E') + ] + + for n, m in self.__dict__.items(): + if n.startswith('_rate') or n.startswith('_error'): + columns.append(fits.Column(name=n.upper().replace('_', ''), array=m, format='1E')) + + header = fits.Header(cards=dict( + EXTNAME="RATE", # - the name (i.e. type) of the extension + TELESCOP="", # - the "telescope" (i.e. mission/satellite name). + INSTRUME="", # - the instrument/detector. + FILTER="", # - the instrument filter in use (if any) + HDUCLASS="OGIP", # - should contain the string "OGIP" to indicate that this is an OGIP style file. + HDUCLAS1="LIGHT CURVE", # - + HDUCLAS2="RATE", # - + TIMVERSN='OGIP/93-003', # OGIP memo number where the convention used + OBJECT='', # / name of the observed object + RA='', # / source right ascension in degree + DEC='', # / source declination in degree + # RA--NOM = / r.a. nominal pointing in degree + # DEC--NOM= / dec. nominal pointing in degree + EQUINOX=2000.0, # / equinox for ra and dec + RADECSYS='FK5', # / world coord. system for this file (FK5 or FK4) + ORIGIN='', # / who produced the fits file + DATE='', # / when the fits file was created + AUTHOR='', # /name of program that produced this file + MJDREF=0.0)) + for kk in ['DATE-OBS', 'DATE-END']: + header[kk] = '' + for kk, vv in self._keywords.items(): + header[kk] = vv + return fits.BinTableHDU.from_columns(columns, header=header) + + def to_fits(self, fn: str): + logger.info("store to fits %s %s", self, fn) + fits.HDUList([fits.PrimaryHDU(), + self.lc_hdu(), + ]).writeto(fn, overwrite=True) + + @property + def total_counts(self): + return np.nansum(self._rate) + + def to_long_string(self): + elapsed_time = self._time[-1] - self._time[0] + return f"{self.__class__.__name__}: elapsed time {elapsed_time} s, total count/s {self.total_counts}, {len(self._rate)} bins " diff --git a/tests/data/FPMA_3.0_7.0.flc b/tests/data/FPMA_3.0_7.0.flc new file mode 100644 index 0000000..a1a387c --- /dev/null +++ b/tests/data/FPMA_3.0_7.0.flc @@ -0,0 +1,22 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 28 / width of table in bytes NAXIS2 = 512 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 5 / number of fields in each row TTYPE1 = 'TIME ' / label for field 1 TFORM1 = 'D ' / data format of field: 8-byte DOUBLE TUNIT1 = 's ' / physical unit of field TTYPE2 = 'XAX_E ' / label for field 2 TFORM2 = 'D ' / data format of field: 8-byte DOUBLE TTYPE3 = 'RATE1 ' / label for field 3 TFORM3 = 'E ' / data format of field: 4-byte REAL TUNIT3 = 'count/s ' / physical unit of field TTYPE4 = 'ERROR1 ' / label for field 4 TFORM4 = 'E ' / data format of field: 4-byte REAL TUNIT4 = 'count/s ' / physical unit of field TTYPE5 = 'FRACEXP ' / label for field 5 TFORM5 = 'E ' / data format of field: 4-byte REAL EXTNAME = 'RATE ' / name of this binary table extension DATE = '2022-09-25T11:30:02' / file creation date (YYYY-MM-DDThh:mm:ss UT) CREATOR = 'lcurve 1.0 (xronos6.0)' / Name of XRONOS program that created this fiHDUCLASS= 'OGIP ' HDUCLAS1= 'LIGHT CURVE' HDUCLAS2= 'TOTAL ' HDUCLAS3= 'RATE ' CONTENT = 'XRONOS OUTPUT' ORIGIN = 'HEASARC/GSFC' OBJECT = 'Cen_X3 ' TIMVERSN= 'OGIP/93-003' TSTARTI = 17356 / Start time for this extension TSTARTF = 0.7581993887761200 / Start time for this extension TSTOPI = 17357 / Stop time for this extension TSTOPF = 0.2071675589832012 / Stop time for this extension TIMEUNIT= 'd ' / Units for header timing keywords TIMEZERI= 17356 / Zero-point offset for TIME column TIMEZERF= 0.7586378342530224 / Zero-point offset for TIME column COMMENT TIMESYS keyword is not currently set. If the input lightcurve COMMENT contains the header keyword MJDREF, the time in the xronos COMMENT output is in TJD (JD-2440000.5) TIMEDEL = 8.7689095610969149E-04 AVRGE_1 = 3.33168411E+01 / Avg, count/s in interval FREXP_1 = 7.03125000E-01 / Avg. Frac exposure in frame VAROB_1 = 1.29225937E+02 / observed variance VAREX_1 = 9.24199343E-01 / expected variance THRDM_1 = 4.27338196E+02 / third moment MININ_1 = 1.02753410E+01 / Minimun Intensity MAXIN_1 = 6.05562706E+01 / Maximun Intensity EXVAR_1 = 1.28301743E+02 / excess of variance CHI2_1 = 5.15895195E+04 / Chi squared RMS_1 = 3.39979291E-01 / RMS variability AVRGE_E1= 5.07382639E-02 / Error Avg count/s VAROB_E1= 9.64533806E+00 / Error observed variance VAREX_E1= 6.89816251E-02 / Error expected variance CHI2_E1 = 2.67955227E+01 / Error Chi2 RMS_E1 = 1.27793094E-02 / RMS variability END @B1&B\?Q?@R1(@B1&BY? ?ȫ@b1(@B1&B`10?d\?@liH<@B1&Bb7?/?@r1(@B1&B$^?y?ȫ@wo@B1&B0|??@|iH<@B1&B?g?VD?ȫ@˴x@B1&B;7*??@1&@B1&B ?u#?@N1-@B1&Aǵ?@?ȫ@o@B1&B?i<?@ -dT@B1&B=?r)?@iH<@B1&BP?R?ȫ@d1*@B1&B@?w?@˴x@B1&B@?fo?@~ӥ@B1&Bx?l?ȫ@1&@B1&BK?l2?@X@B1&BԴ?gv?ȫ@N1-@B1&Bh Q?9&?@:;@B1&B;|S??ȫ@iH<@B1&BP'[??@V~ i@B1&Bh??ȫ@d1*@B1&BB?_y?@qIP@B1&AJ?@P?@˴x@B1&A(s??L?ȫ@*FDZ@B1&B ?uͲ?@~ӥ@B1&BMi?,#?@YTXc<@B1&BSP?f?ȫ@1&@B1&BR@?D?@b i@B1&B;?`I?@X@B1&A?-?ȫ@o@B1&B$?i?@N1-@B1&By?|?ȫ@}q$@B1&Ay^?4?@~KPZ@B1&A/?7hc?@$V@B1&A8?!]?ȫ@o@B1&Ap?U ?@D@B1&A,?R?@"@B1&B?ka?ȫ@sK@B1&Bp-?[?@ -dT@B1&A?Qd?@>=x@B1&B?o?ȫ@:;@B1&B&>?|(?@\ @B1&B ?f0?ȫ@iH<@B1&B?Z)?@Ϥ{R@B1&Aһ?CƤ?@V~ i@B1&A?LX?ȫ@/W@B1&A?L>?@d1*@B1&B"?zm?a@^ +-@B1&B3ؙ@qIP@B1&@F^u@B1&@˴x@B1&@ރ8|D@B1&@*FDZ@B1&@v + ڧ@B1&@~ӥ@B1&@ q@@B1&@YTXc<@B1&@+@B1&@1&@B1&@@B1&@N1-@B1&@@B1&@}q$@B1&@2@ވq@B1&@~KPZ@B1&A=?(>;@Ǹ& +@B1&A9l?M`i?ȫ@$V@B1&B;?[=?@aN@B1&Bj?^?@o@B1&A?;?ȫ@k7S<@B1&AŁ?; b?@D@B1&B!?YK?@\D@B1&B1\ +?-?ȫ@"@B1&B?l&K?@'Vn@B1&B,{?~F?@sK@B1&B2?}?ȫ@i@B1&B?su?@ -dT@B1&B?h?ȫ@Vu@B1&B ?f?@>=x@B1&A?5D?@wD:@B1&AV?F3?ȫ@:;@B1&AAw?|?@@B1&A-?!h?@\ @B1&A??ȫ@ 7@B1&AD?A?@Ϥ{R@B1&A#?M)?@LC@B1&A^?E?ȫ@V~ i@B1&Ak?$ +`?@58@B1&A?7!?@/W@B1&A?+?ȫ@{b@B1&A2s?9 ?@d1*@B1&AS?@?@'bj@B1&A?3e?ȫ@^ +-@B1&A?9N?@w@B1&A S?=-?ȫ@qIP@B1&Aa? K?@!@B1&AsR?4?@F^u@B1&A̶P?@;@?ȫ@lP@B1&A1x?>*?@˴x@B1&A8b?Nu?@^h@B1&A?9?ȫ@ރ8|D@B1&Af?b?@d)@B1&A7?k2?@*FDZ@B1&A_o$??ȫ@P([@B1&AV??@v + ڧ@B1&Aq?+0]?ȫ@oM@B1&Aiw?s?@~ӥ@B1&A?>U?@57@B1&Am?/?ȫ@ q@@B1&A?O?@3rV@B1&A +&?M.?@YTXc<@B1&B + ?d?ȫ@6"3@B1&B6??@¥+@B1&B2??ȫ@{@B1&B c1?v-?@1&@B1&As?RR?z%@V@B1&A쐻?(? @ x@bU@B1&@Èb i@B1&@îCOe@B1&@%xJ5 @B1&@.@B1&@X@B1&@Eʛu@B1&@kQ˥@B1&@đ=K@B1&@ķo@B1&@Qu|@B1&@3+ib>@B1&@)G@B1&@N1-@B1&@tN1@B1&@Ś@B1&@\~@B1&@}q$@B1&@ _($@B1&@2@ވq@B1&@X"u@B1&@~KPZ@B1&@ƣ@c@B1&A$g?'?G @Ǹ& +@B1&A:">?ȫ@n| @B1&Aӧ?1?@$V@B1&A? }I?@;lC@B1&A ?%J?ȫ@aN@B1&ATl?1?@LJ0H I@B1&A?8N?ȫ@ǭo@B1&A;H?C?@m@B1&Az?R?@k7S<@B1&A?*K?ȫ@!8@B1&A` ?78?@D@B1&A܉j?G5?@jzc/@B1&BE?f?ȫ@Ȑ\D@B1&B(?|s?@ȶ=*|@B1&B#?xO?ȫ@"@B1&B+E?~Σ?@g@B1&B/h?%5?@'Vn@B1&B: ?=?ȫ@MԺf@B1&B?{1?@Vu@B1&B&M?z=|?ȫ@|҇ٓG@B1&B5? ?@ʢ>=x@B1&B?]?0?@ȕ^@B1&BT#?qL?ȫ@wD:@B1&B'?Z?@Yai)@B1&BT?q<+?@:;@B1&B ƹ?eV?ȫ@`0-@B1&A-?H(?@˅@B1&A?3D?@˫:z@B1&A$?8?ȫ@\ @B1&AI?KA?@@B1&AG*?*@?ȫ@^$ql@B1&AEB1? HE?@CgW@B1&Aud?B?@iH<@B1&A,??ȫ@̏*P"_@B1&Aj/??@̵ 7@B1&AD?--?@@B1&A?f?ȫ@Ϥ{R@B1&Axe?X?@&Z߸@B1&A?Ct?ȫ@LC@B1&A'?5?@rtǧE@B1&A8?(?@͘V~ i@B1&A?'9?ȫ@;84oO@B1&A?&?@58@B1&An?9Sk?@ 7@B1&Ag?P'A?ȫ@/W@B1&A@?WYV?j>?@U +@B1&B?n;?90@{b@B1&B.Q?^?z+@ΡzƱx@B1&Bt@5<`@d1*@B1&@E|@B1&@'bj@B1&@9 TVH@B1&@^ +-@B1&@τ\@B1&@Ϫw@B1&@А-ު@B1&@qIP@B1&@)V@B1&@!@B1&@4 @B1&@F^u@B1&@Y:H@B1&@lP@B1&@@B1&@В˴x@B1&@Хk@B1&@и^h@B1&@˒]JQ;@B1&@ރ8|D@B1&@t6@B1&@d)@B1&@U@B1&@*FDZ@B1&@=7v.@B1&AӬ?if>.@P([@B1&A?Ksk?@c6@B1&Ay?K]C?@v + ڧ@B1&A?Ay?ȫ@ш=z@B1&B?]D?@ћoM@B1&AB?X?ȫ@Ѯܣ @B1&B˪?ZG?@~ӥ@B1&BEN?p1?@ԾZ@B1&B2?c?ȫ@57@B1&B' ?{?@i~m@B1&B.??@ q@@B1&BF??ȫ@ d@B1&B9/?aj?@3rV@B1&B5X? +?@Fc}1I@B1&B?r?ȫ@YTXc<@B1&B$?yl?@lE3/`@B1&B.?i,?ȫ@6"3@B1&BM,?o?@Ғ&@B1&AV?Xg?@ҥ+@B1&Ad?M?ȫ@Ҹ\@B1&A/?So?@{@B1&Au?6\2?@VS@B1&A?2 +?ȫ@1&@B1&A*?@A?@ $@B1&A(?9?@V@B1&Ae+?=\?ȫ@)È@B1&A,m?Q?@@B1&@$U@B1&@)G@B1&@<:@B1&@N1-@B1&@asc ^@B1&@tN1@B1&@Շ)@B1&@՚@B1&@խ*@B1&@\~@B1&@ӌQ@B1&@}q$@B1&@nL@B1&@ _($@B1&@PV@B1&@2@ވq@B1&@E1D@B1&@X"u@B1&@kpg@B1&@~KPZ@B1&@֐&M@B1&@֣@c@B1&@ֶ37@B1&@Ǹ& +@B1&@ܸJ@B1&@n| @B1&@I@B1&@$V@B1&@(|)@B1&@;lC@B1&@N]u@B1&A~?Vp?; @aN@B1&Aڡ?Jl?@t?lٯv@B1&AP?O?@ׇ0H I@B1&AC?9 ?ȫ@ך!#=@B1&A}\?7?@׭o@B1&A?6D?ȫ@١z@B1&A?-?@m@B1&AG{?8?@`i@B1&A?),?ȫ@k7S<@B1&A?`?@ FiF@B1&A;v?#h?@!8@B1&AA?)[?ȫ@1+@B1&A76?1d?@D@B1&Az?,?@W1\@B1&A?(?ȫ@jzc/@B1&Ab:?1eo?@}ki@B1&Axq?)?ȫ@ؐ\D@B1&A?1t?@أMܨ@B1&A[?0"\?@ض=*|@B1&A6?3?ȫ@.\O@B1&A?0m?@"@B1&A?-!?@@B1&Af?)?ȫ@g@B1&A?1?@C$@B1&AN?;?ȫ@'Vn@B1&A?4$M?@:sB@B1&A?2?@MԺf@B1&AK?2U?ȫ@`X@B1&AzI,??@sK@B1&AWL?#?@نfP>@B1&A=?4?ȫ@ٙA1a@B1&AӬ?O?@٬y$5@B1&AqQ?P[?@ٿi@B1&An?N;?ȫ@Z @B1&A[?Lj?@KI@B1&A?V~?ȫ@<{@B1&BP?]Q?@ -dT@B1&B Κ?d?@?'@B1&B& ?zj?ȫ@1@B1&By?tƳ?@CC@B1&B*?0|?@Vu@B1&B"f?x]?ȫ@iᬧt@B1&B%?z$?@|҇ٓG@B1&B{w?l?@ڏc @B1&B/?q?ȫ@ڢ>=x@B1&Aj?>}@ڵok@B1&@ȕ^@B1&@ۆQg@B1&@wD:@B1&@h77 @B1&@Yai)@B1&@'J<@B1&@:;@B1&@M+Z@B1&@`0-@B1&@s b@B1&@ۅ@B1&@ۘ_ͦ@B1&@۫:z@B1&@۾*M@B1&@\ @B1&@̎@B1&@@B1&@ +~@B1&@^$ql@B1&@0v9Vd@@B1&@CgW@B1&@VWI@B1&B '0?kL?p@iH<@B1&A뗻?Q6]?@|9/@B1&Al?Z?@܏*P"_@B1&AZS?wId?[_@ܢ\2@B1&B#@ml>n(@ܵ 7@B1&@@B1&@@B1&@I@B1&@Ϥ{R@B1&@%@B1&@&Z߸@B1&@96@B1&@LC@B1&A?G[?"B@_ur@B1&A?A8?ȫ@rtǧE@B1&A%?=b?@݅ew@B1&A?: ?@ݘV~ i@B1&AȎ?@3Z?ȫ@ݫGY=\@B1&A?9?@ݾ84oO@B1&Am?At?ȫ@)Be@B1&A?1t?@58@B1&A?7Y?@ +( @B1&A~?;?ȫ@ 7@B1&A+^?>Q?@|i @B1&A?F+?@/W@B1&A?B1?ȫ@B2X@B1&AT?RƦ?@U +@B1&B?pP?ȫ@h0@B1&Bv?f?@{b@B1&B?Z#$?@ގ@B1&AΑ?T&?ȫ@ޡzƱw@B1&A[?K?@޴sUK@B1&An?CL?@d1*@B1&A.?H?ȫ@U \@B1&Aic?92?@E|@B1&A6??L?@6o@B1&A?Kr?ȫ@'bj@B1&AXq?Vl?@&y$U=@B1&A ?L+?ȫ@9 TVH@B1&A၎?X?@K/:@B1&A ?Jd?@^ +-@B1&Á?E?ȫ@q @B1&A?I ?@߄\@B1&AϷ?A?@ߗP0@B1&A?7&?ȫ@ߪw@B1&A"?J`?@߽R@B1&B?Z9@d)@B1&BC?q?ȫ@ \y#@B1&B+/?~tD?@U@B1&B=v?c?ȫ@ 7@B1&B1??@*FDZ@B1&B̵ \ No newline at end of file diff --git a/tests/data/FPMA_7.0_30.0_sr.lc b/tests/data/FPMA_7.0_30.0_sr.lc new file mode 100644 index 0000000..07c5ffe --- /dev/null +++ b/tests/data/FPMA_7.0_30.0_sr.lc @@ -0,0 +1,13 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 32 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H TELESCOP= 'NuSTAR ' / Telescope (mission) name DATAMODE= 'NONE ' / Datamode DETNAM = 'NONE ' / Detector INSTRUME= 'FPMA ' / Instrument name OBJECT = 'Cen_X3 ' / Name of observed object ONTIME = 2.657196550387144E+04 / On-source time DEADC = 8.06424439E-01 / Deadtime correction DEADAPP = T / Has DEADC been applied to data EXPOSURE= 2.142828237334861E+04 / Exposure time LIVETIME= 2.142828237334861E+04 / Deadtime corrected on-source time DATE-OBS= '2015-11-30T18:11:48' / Start date of observations DATE-END= '2015-12-01T04:57:33' / End date of observations TSTART = 1.866030422431890E+08 / time start TSTOP = 1.866417876350140E+08 / time stop TELAPSE = 3.874539182499051E+04 / elapsed time MJD-OBS = 5.735675819938877E+04 / MJD of data start time MJDREFI = 55197 / MJD reference day MJDREFF = 7.660185200000000E-04 / MJD reference (fraction of day) TIMEREF = 'SOLARSYSTEM' / reference time TIMESYS = 'TDB ' / time measured from TIMEUNIT= 's ' / unit for time keywords EQUINOX = 2.000E+03 / Equinox of celestial coord system RADECSYS= 'FK5 ' / celestial coord system USER = 'jovyan ' / User name of creator FILIN001= 'lnk-nu30101055002A01_cl.evt' / Input file name CREATOR = 'extractor v6.07' / Extractor version DATE = '2022-09-25T11:50:39' / file creation date (YYYY-MM-DDThh:mm:ss UT) ORIGIN = 'NASA/GSFC' / origin of fits file TIMEDEL = 1.000000000000000E-01 / Binning factor HISTORY extractor v6.07 CHECKSUM= 'mB5poA2omA2omA2o' / HDU checksum updated 2022-09-25T11:51:06 DATASUM = ' 0' / data unit checksum updated 2022-09-25T11:50:39 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 28 / width of table in bytes NAXIS2 = 29 / Number of bins PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 6 / number of fields in each row TTYPE1 = 'TIME ' / label for field 1 TFORM1 = 'D ' / data format of field: 8-byte DOUBLE TUNIT1 = 's ' / physical unit of field TTYPE2 = 'RATE ' / label for field 2 TFORM2 = 'E ' / data format of field: 4-byte REAL TUNIT2 = 'count/s ' / physical unit of field TTYPE3 = 'ERROR ' / label for field 3 TFORM3 = 'E ' / data format of field: 4-byte REAL TUNIT3 = 'count/s ' / physical unit of field TTYPE4 = 'FRACEXP ' / label for field 4 TFORM4 = 'E ' / data format of field: 4-byte REAL EXTNAME = 'RATE ' / name of this binary table extension COMMENT = 'The value in TIME combines the packet timestamp with the COMMENT subseconds d COMMENT = 'PREPHAS is the sum of six pre-trigger pulse-height samples' COMMENT = 'POSTPHAS is the sum of six post-trigger pulse-height samples' COMMENT = 'Pixel order in PREPHAS and POSTPHAS: row-by-row, starting at COMMENT upper-le COMMENT = 'If central-pixel is on-edge, off-detector pixels are zero-filled.' ONTIME = 2.6571965503871E+04 / On-source time HDUCLASS= 'ogip ' / Format conforms to OGIP/GSFC conventions HDUCLAS1= 'LIGHTCURVE' / Extension contains a light curve HDUCLAS2= 'TOTAL ' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name OBS_ID = '30101055002' / Observation ID TARG_ID = 0 / Target ID OBJECT = 'Cen_X3 ' / Name of observed object RA_OBJ = 1.7031579000000E+02 / Right Ascension used for barycenter correctionsDEC_OBJ = -6.0623000000000E+01 / Declination used for barycenter corrections RA_NOM = 1.7036030000000E+02 / R. A. of nominal aspect point DEC_NOM = -6.0607900000000E+01 / Dec. of nominal aspect point RA_PNT = 1.7036030000000E+02 / [deg] RA pointing DEC_PNT = -6.0607900000000E+01 / [deg] Dec pointing PA_PNT = 1.5348720000000E+02 / [deg] Position angle (roll) EQUINOX = 2.0000000000000E+03 / Equinox of celestial coord system RADECSYS= 'FK5 ' / celestial coord system TASSIGN = 'SATELLITE' / Time assigned by onboard clock TIMESYS = 'TDB ' / time measured from MJDREFI = 55197 / MJD reference day MJDREFF = 7.6601852000000E-04 / MJD reference (fraction of day) TIMEREF = 'SOLARSYSTEM' / reference time CLOCKAPP= T / Absolute precision of clock correction COMMENT MJDREFI+MJDREFF = epoch of Jan 1, 2010, in TT time system. TIMEUNIT= 's ' / unit for time keywords TSTART = 1.8660304224319E+08 / time start TSTOP = 1.8664178763501E+08 / time stop TELAPSE = 3.8745391824991E+04 / elapsed time DATE-OBS= '2015-11-30T18:11:48' / Start date of observations DATE-END= '2015-12-01T04:57:33' / End date of observations ORIGIN = 'NASA/GSFC' / origin of fits file CREATOR = 'extractor v6.07' / Extractor DATETLM = '2020-10-04T10:38:54' / L1 file creation date (UTC) TLM2FITS= '$Id: L1_events_write.pl 4997 2012-07-23 17:26:04Z adavis $' / L1 SoftHISTORY TASK: FSORT on FILENAME: HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30 HISTORY 10105500 HISTORY fsort3.1f at 2020-10-04T10:41:37 TSORTKEY= 'TIME ' HISTORY File modified by 'nuflagbad_0.1.7' (nustardas_01Apr20_v1.9.2) at HISTORY 2020-10-04T10:45:54 HISTORY Added STATUS column HISTORY Added BADPOS column HISTORY Used following file(s) to get bad pixels: HISTORY CALDB CALDB bad pixels file HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/hk/nu30101055 HISTORY 002A_dspx.fits on-board bad pixels map NUFLAG = T / Are events flagged (T/F)? COMMENT Events STATUS flags COMMENT b0000000000000000 Good event COMMENT b0000000000000001 Event falls in a bad pixel from on-ground CALDB Bad COMMENT Pi COMMENT xel File COMMENT b0000000000000010 Event falls in a on-board disabled pixel COMMENT b0000000000000100 Event falls in a user bad pixel file COMMENT b0000000000001000 Event has a neighbor bad from bad/disabled pixels COMMENT list COMMENT b0000000000010000 Event falls in a pixel on a detector edge COMMENT b0000000000100000 Event falls in a hot/flickering pixel COMMENT b0000000001000000 Event has a neighbor hot/flickering pixel COMMENT b0000000010000000 Event fails depth cut HISTORY HISTORY START PARAMETER list for nuflagbad_0.1.7 at 2020-10-04T10:45:56 HISTORY HISTORY P1 infile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/eve HISTORY P1 nt_cl/nu30101055002A_uf.evt HISTORY P2 outfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ev HISTORY P2 ent_cl/nu30101055002A_uf.18564tmp HISTORY P3 dispixfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002 HISTORY P3 /hk/nu30101055002A_dspx.fits HISTORY P4 bpfile = CALDB HISTORY P5 userbpfile = NONE HISTORY P6 outbpfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ HISTORY P6 event_cl/nu30101055002A_bp.fits HISTORY P7 clobber = yes HISTORY P8 history = yes HISTORY P9 chatter = 3 HISTORY P10 mode = ql HISTORY END PARAMETER list for nuflagbad_0.1.7 HISTORY HISTORY File modified by 'nuhotpix_0.1.6' (nustardas_01Apr20_v1.9.2) at HISTORY 2020-10-04T10:46:01 HISTORY Added HOTPOS column HISTORY HISTORY START PARAMETER list for nuhotpix_0.1.6 at 2020-10-04T10:46:03 HISTORY HISTORY P1 infile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/eve HISTORY P1 nt_cl/nu30101055002A_uf.evt HISTORY P2 outfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ev HISTORY P2 ent_cl/nu30101055002A_uf.18564tmp HISTORY P3 outhpfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ HISTORY P3 event_cl/nu30101055002A_hp.fits HISTORY P4 binsize = 600 HISTORY P5 cellsize = 5 HISTORY P6 impfac = 1.0 HISTORY P7 logpos = -6 HISTORY P8 bthresh = 6 HISTORY P9 cleanflick = yes HISTORY P10 iterate = yes HISTORY P11 clobber = yes HISTORY P12 history = yes HISTORY P13 chatter = 3 HISTORY P14 mode = ql HISTORY END PARAMETER list for nuhotpix_0.1.6 HISTORY HISTORY File modified by 'nucalcpha_0.2.1' (nustardas_01Apr20_v1.9.2) at HISTORY 2020-10-04T10:46:04: computed PHA. HISTORY HISTORY START PARAMETER list for nucalcpha_0.2.1 at 2020-10-04T10:46:08 HISTORY HISTORY P1 infile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/eve HISTORY P1 nt_cl/nu30101055002A_uf.evt HISTORY P2 outfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ev HISTORY P2 ent_cl/nu30101055002A_uf.18564tmp HISTORY P3 offsetfile = CALDB HISTORY P4 gradefile = CALDB HISTORY P5 phaparfile = CALDB HISTORY P6 evtthr = 55 HISTORY P7 timerise = 0.0016 HISTORY P8 cleancols = no HISTORY P9 clobber = yes HISTORY P10 history = yes HISTORY P11 chatter = 3 HISTORY P12 mode = ql HISTORY END PARAMETER list for nucalcpha_0.2.1 HISTORY HISTORY File modified by 'nucalcpi_0.2.1' (nustardas_01Apr20_v1.9.2) at HISTORY 2020-10-04T10:46:13: computed PI. HISTORY HISTORY START PARAMETER list for nucalcpi_0.2.1 at 2020-10-04T10:46:23 HISTORY HISTORY P1 infile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/eve HISTORY P1 nt_cl/nu30101055002A_uf.evt HISTORY P2 outfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ev HISTORY P2 ent_cl/nu30101055002A_uf.18564tmp HISTORY P3 hkfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/hk/ HISTORY P3 nu30101055002A_fpm.hk HISTORY P4 temperature = 5 HISTORY P5 gainfile = CALDB HISTORY P6 clcfile = CALDB HISTORY P7 clcfilterfile = CALDB HISTORY P8 clobber = yes HISTORY P9 history = yes HISTORY P10 chatter = 3 HISTORY P11 mode = ql HISTORY END PARAMETER list for nucalcpi_0.2.1 HISTORY HISTORY File modified by 'nuflagevt_0.1.3' (nustardas_01Apr20_v1.9.2) at HISTORY 2020-10-04T10:46:31: computed PHA. HISTORY HISTORY START PARAMETER list for nuflagevt_0.1.3 at 2020-10-04T10:46:43 HISTORY HISTORY P1 infile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/eve HISTORY P1 nt_cl/nu30101055002A_uf.evt HISTORY P2 outfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/30101055002/ev HISTORY P2 ent_cl/nu30101055002A_uf.18564tmp HISTORY P3 depthcutfile = CALDB HISTORY P4 evtcutfile = CALDB HISTORY P5 clobber = yes HISTORY P6 history = yes HISTORY P7 chatter = 3 HISTORY P8 mode = ql HISTORY END PARAMETER list for nuflagevt_0.1.3 HISTORY HISTORY File modified by 'nucalcpos_0.2.3' (nustardas_01Apr20_v1.9.2) at HISTORY 2020-10-04T10:46:55. HISTORY HISTORY START PARAMETER list for nucalcpos_0.2.3 at 2020-10-04T10:47:07 HISTORY HISTORY P1 infile = 18886_tmp_nucoord/nu30101055002A_uf.18564tmp HISTORY P2 outfile = 18886_tmp_nucoord/nu30101055002A_uf.18886tmp HISTORY P3 pixposfile = CALDB HISTORY P4 saveraw2coord = no HISTORY P5 initseed = no HISTORY P6 alignfile = HISTORY /home/nustar1/SOC/CALDB_20200429/data/nustar/fpm/bcf/alig HISTORY P6 n/nuCalign20100101v007.fits HISTORY P7 mastaspectfile = HISTORY /disk/lif2/nustar/repro_2020/30101055_Cen_X3/3010105 HISTORY P7 5002/event_cl/nu30101055002_mast.fits HISTORY P8 clobber = yes HISTORY P9 history = yes HISTORY P10 chatter = 3 HISTORY P11 mode = ql HISTORY END PARAMETER list for nucalcpos_0.2.3 HISTORY ABERRAT = F / Has aberration been corrected for in sky coordsFOLOWSUN= F / Has the Sun position been recalculated for eachHISTORY The DETX DETY X Y columns were updated by coordinator 0.1 on HISTORY 2020-10-04T HISTORY 10:48:59 UTC using teldef file HISTORY 18886_tmp_nucoord/nuA20100101v002.teldef HISTORY and attitude file 18886_tmp_nucoord/nu30101055002_att.fits. HISTORY HISTORY START PARAMETER list for coordinator_0.1 at 2020-10-04T10:48:59 HISTORY HISTORY P1 eventfile = 18886_tmp_nucoord/nu30101055002A_uf.18564tmp HISTORY P2 eventext = EVENTS HISTORY P3 timecol = TIME HISTORY P4 skyxnull = -1 HISTORY P5 skyynull = -1 HISTORY P6 attfile = 18886_tmp_nucoord/nu30101055002_att.fits HISTORY P7 teldef = 18886_tmp_nucoord/nuA20100101v002.teldef HISTORY P8 aberration = no HISTORY P9 follow_sun = yes HISTORY P10 ra = 170.31579 HISTORY P11 dec = -60.623 HISTORY P12 randomize = yes HISTORY P13 seed = -1956 HISTORY P14 timemargin = 32. HISTORY P15 interpolation = LINEAR HISTORY P16 history = yes HISTORY P17 chatter = 3 HISTORY P18 mode = ql HISTORY END PARAMETER list for coordinator_0.1 HISTORY SOFTVER = 'Hea_08Apr2022_V6.30.1_nustardas_16Feb22_v2.1.2' / HEASoft/NuSTAR softCALDBVER= '20220815' / CALDB index version HISTORY File modified by 'nuflagbad_0.1.8' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-01T17:05:59 HISTORY Used following file(s) to get bad pixels: HISTORY CALDB CALDB bad pixels file HISTORY /home/jovyan/NUSTAR/Repository/30101055002/hk/nu30101055002A_dspx.fits HISTORY .gz on-board bad pixels map COMMENT Events STATUS flags COMMENT b0000000000000000 Good event COMMENT b0000000000000001 Event falls in a bad pixel from on-ground CALDB Bad COMMENT Pi COMMENT xel File COMMENT b0000000000000010 Event falls in a on-board disabled pixel COMMENT b0000000000000100 Event falls in a user bad pixel file COMMENT b0000000000001000 Event has a neighbor bad from bad/disabled pixels COMMENT list COMMENT b0000000000010000 Event falls in a pixel on a detector edge COMMENT b0000000000100000 Event falls in a hot/flickering pixel COMMENT b0000000001000000 Event has a neighbor hot/flickering pixel COMMENT b0000000010000000 Event fails depth cut HISTORY HISTORY START PARAMETER list for nuflagbad_0.1.8 at 2022-09-01T17:07:01 HISTORY HISTORY P1 infile = ./obs_pipeline/nu30101055002A_uf.evt HISTORY P2 outfile = ./obs_pipeline/nu30101055002A_uf.67tmp HISTORY P3 dispixfile = HISTORY /home/jovyan/NUSTAR/Repository/30101055002/hk/nu30101055 HISTORY P3 002A_dspx.fits.gz HISTORY P4 bpfile = CALDB HISTORY P5 userbpfile = NONE HISTORY P6 outbpfile = ./obs_pipeline/nu30101055002A_bp.fits HISTORY P7 clobber = no HISTORY P8 history = yes HISTORY P9 chatter = 3 HISTORY P10 mode = ql HISTORY END PARAMETER list for nuflagbad_0.1.8 HISTORY HISTORY File modified by 'nuhotpix_0.1.7' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-01T17:19:56 HISTORY HISTORY START PARAMETER list for nuhotpix_0.1.7 at 2022-09-01T17:22:52 HISTORY HISTORY P1 infile = ./obs_pipeline/nu30101055002A_uf.evt HISTORY P2 outfile = ./obs_pipeline/nu30101055002A_uf.67tmp HISTORY P3 outhpfile = ./obs_pipeline/nu30101055002A_hp.fits HISTORY P4 binsize = 600 HISTORY P5 cellsize = 5 HISTORY P6 impfac = 1.0 HISTORY P7 logpos = -6 HISTORY P8 bthresh = 6 HISTORY P9 cleanflick = yes HISTORY P10 iterate = yes HISTORY P11 clobber = no HISTORY P12 history = yes HISTORY P13 chatter = 3 HISTORY P14 mode = ql HISTORY END PARAMETER list for nuhotpix_0.1.7 HISTORY HISTORY File modified by 'nucalcpha_0.2.2' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-01T17:22:58: computed PHA. HISTORY HISTORY START PARAMETER list for nucalcpha_0.2.2 at 2022-09-01T18:26:16 HISTORY HISTORY P1 infile = ./obs_pipeline/nu30101055002A_uf.evt HISTORY P2 outfile = ./obs_pipeline/nu30101055002A_uf.67tmp HISTORY P3 offsetfile = CALDB HISTORY P4 gradefile = CALDB HISTORY P5 phaparfile = CALDB HISTORY P6 evtthr = 55 HISTORY P7 timerise = 0.0016 HISTORY P8 cleancols = yes HISTORY P9 clobber = no HISTORY P10 history = yes HISTORY P11 chatter = 3 HISTORY P12 mode = ql HISTORY END PARAMETER list for nucalcpha_0.2.2 HISTORY HISTORY File modified by 'nucalcpi_0.2.2' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-01T18:37:30: computed PI. HISTORY HISTORY START PARAMETER list for nucalcpi_0.2.2 at 2022-09-01T18:39:23 HISTORY HISTORY P1 infile = ./obs_pipeline/nu30101055002A_uf.evt HISTORY P2 outfile = ./obs_pipeline/nu30101055002A_uf.67tmp HISTORY P3 hkfile = HISTORY /home/jovyan/NUSTAR/Repository/30101055002/hk/nu30101055002A HISTORY P3 _fpm.hk.gz HISTORY P4 temperature = 5 HISTORY P5 gainfile = CALDB HISTORY P6 clcfile = CALDB HISTORY P7 clcfilterfile = CALDB HISTORY P8 clobber = no HISTORY P9 history = yes HISTORY P10 chatter = 3 HISTORY P11 mode = ql HISTORY END PARAMETER list for nucalcpi_0.2.2 HISTORY HISTORY File modified by 'nuflagevt_0.1.4' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-01T18:39:32: computed PHA. HISTORY HISTORY START PARAMETER list for nuflagevt_0.1.4 at 2022-09-01T18:41:42 HISTORY HISTORY P1 infile = ./obs_pipeline/nu30101055002A_uf.evt HISTORY P2 outfile = ./obs_pipeline/nu30101055002A_uf.67tmp HISTORY P3 depthcutfile = CALDB HISTORY P4 evtcutfile = CALDB HISTORY P5 clobber = no HISTORY P6 history = yes HISTORY P7 chatter = 3 HISTORY P8 mode = ql HISTORY END PARAMETER list for nuflagevt_0.1.4 HISTORY HISTORY File modified by 'nucalcpos_0.2.4' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-01T18:53:15. HISTORY HISTORY START PARAMETER list for nucalcpos_0.2.4 at 2022-09-01T18:55:07 HISTORY HISTORY P1 infile = 589_tmp_nucoord/nu30101055002A_uf.67tmp HISTORY P2 outfile = 589_tmp_nucoord/nu30101055002A_uf.589tmp HISTORY P3 pixposfile = CALDB HISTORY P4 saveraw2coord = no HISTORY P5 initseed = no HISTORY P6 alignfile = HISTORY /opt/CalDB/data/nustar/fpm/bcf/align/nuCalign20140927v001 HISTORY P6 .fits HISTORY P7 mastaspectfile = ./obs_pipeline/nu30101055002_mast.fits HISTORY P8 clobber = no HISTORY P9 history = yes HISTORY P10 chatter = 3 HISTORY P11 mode = ql HISTORY END PARAMETER list for nucalcpos_0.2.4 HISTORY HISTORY The DETX DETY X Y columns were updated by coordinator 0.1 on HISTORY 2022-09-01T HISTORY 20:38:43 UTC using teldef file 589_tmp_nucoord/nuA20100101v002.teldef HISTORY an HISTORY d attitude file 589_tmp_nucoord/nu30101055002_att.fits. HISTORY HISTORY START PARAMETER list for coordinator_0.1 at 2022-09-01T20:38:43 HISTORY HISTORY P1 eventfile = 589_tmp_nucoord/nu30101055002A_uf.67tmp HISTORY P2 eventext = EVENTS HISTORY P3 timecol = TIME HISTORY P4 skyxnull = -1 HISTORY P5 skyynull = -1 HISTORY P6 attfile = 589_tmp_nucoord/nu30101055002_att.fits HISTORY P7 teldef = 589_tmp_nucoord/nuA20100101v002.teldef HISTORY P8 aberration = no HISTORY P9 follow_sun = yes HISTORY P10 ra = 1.7036030000000E+02 HISTORY P11 dec = -6.0607900000000E+01 HISTORY P12 randomize = yes HISTORY P13 seed = -1956 HISTORY P14 timemargin = 32. HISTORY P15 interpolation = LINEAR HISTORY P16 history = yes HISTORY P17 chatter = 3 HISTORY P18 mode = ql HISTORY END PARAMETER list for coordinator_0.1 HISTORY DATAMODE= 'NONE ' / Datamode DETNAM = 'NONE ' / Detector EXPOSURE= 2.1428282373349E+04 / Exposure time LIVETIME= 2.1428282373349E+04 / Deadtime corrected on-source time MJD-OBS = 5.7356758199389E+04 / MJD of data start time USER = 'jovyan ' / User name of creator FILIN001= 'lnk-nu30101055002A01_cl.evt' / Input file name DATE = '2022-09-25T11:50:39' / file creation date (YYYY-MM-DDThh:mm:ss UT) DSTYP1 = 'GRADE ' / Data subspace descriptor: name DSVAL1 = '0:26 ' / Data subspace descriptor: value NPIXSOU = 7.4900000000000E+03 / Numbers of Pixels HISTORY HISTORY START PARAMETER list for nuscreen_0.2.3 at 2022-09-01T23:41:53 HISTORY HISTORY P1 infile = ./obs_pipeline/nu30101055002A_uf.evt HISTORY P2 gtiscreen = yes HISTORY P3 evtscreen = yes HISTORY P4 gtiexpr = HISTORY "(ELV>3&&SAA_A==0&&SAA_B==0&&SW_SAA==0&&SW_TENTACLE==0&&SLE HISTORY P4 HISTORY W==0&&SOURCE==1&&RESIDUAL<7)&&(CAL0STAT==0&&LIVETIME>0)&&(METGRID_FLA HISTORY P4 G==0||METGRID_FLAG==2)" HISTORY P5 gradeexpr = "0-26" HISTORY P6 statusexpr = STATUS==b000000000x0xx000&&SHIELD==0 HISTORY P7 createattgti = yes HISTORY P8 createinstrgti = yes HISTORY P9 outdir = ./obs_pipeline HISTORY P10 obsmode = SCIENCE HISTORY P11 hkfile = HISTORY /home/jovyan/NUSTAR/Repository/30101055002/hk/nu30101055002 HISTORY P11 A_fpm.hk.gz HISTORY P12 mkffile = ./obs_pipeline/nu30101055002A.mkf HISTORY P13 usrgtifile = NONE HISTORY P14 hkrangefile = CALDB HISTORY P15 evtrangefile = CALDB HISTORY P16 depthcut = NOMINAL HISTORY P17 timecol = TIME HISTORY P18 gtiext = GTI HISTORY P19 gtifile = ./obs_pipeline/nu30101055002A01_gti.fits HISTORY P20 outfile = ./obs_pipeline/nu30101055002A01_cl.evt HISTORY P21 cleancols = yes HISTORY P22 cleanup = yes HISTORY P23 clobber = no HISTORY P24 chatter = 3 HISTORY P25 history = yes HISTORY P26 mode = ql HISTORY HISTORY END PARAMETER list for nuscreen_0.2.3 DEADC = 8.0642443900000E-01 / Deadtime correction DEADAPP = T / Has DEADC been applied to data NUPSDOUT= 0.0000000000000E+00 / Out of calibrated PSD grid ontime (s) DEPTHCUT= 'NOMINAL ' / Events depth cut screening OBSMODE = 'SCIENCE ' / Observing mode selection TIMEZERO= 1.8660304229319E+08 / Time Zero TREFPOS = 'BARYCENTER' / Time reference position TREFDIR = 'RA_OBJ,DEC_OBJ' / Keywords of reference direction PLEPHEM = 'JPL-DE200' / Solar system ephemeris used for baryctr corr. TIERRELA= 1.0000000000000E-09 / Short-term clock stability TIERABSO= 1.3462360000000E-04 / Absolute precision of clock correction HISTORY TOOL :axBary - 2.14 ASC0000 HISTORY PARM :infile=obs_lc/FPMA_7.0_30.0_cl_barycorr.evtworkfile19342ASC0001 HISTORY PARM :outfile=obs_lc/FPMA_7.0_30.0_cl_barycorr.evtworkfile1934ASC0002 HISTORY HISTORY START PARAMETER list for barycorr_2.16 at 2022-09-25T11:40:59 HISTORY HISTORY P1 infile = obs_pipeline/nu30101055002A01_cl.evt HISTORY P2 outfile = obs_lc/FPMA_7.0_30.0_cl_barycorr.evt HISTORY P3 orbitfiles = HISTORY /home/jovyan/NUSTAR/Repository/30101055002/auxil/nu30101 HISTORY P3 055002_orb.fits.gz HISTORY P4 clockfile = CALDB HISTORY /opt/CalDB/data/nustar/fpm/bcf/clock/nuCclock20100101v144.fits.gz+1 HISTORY P5 ra = 170.315790 HISTORY P6 dec = -60.623000 HISTORY P7 refframe = FK5 HISTORY P8 ephem = DEFAULT HISTORY P9 barytime = no HISTORY P10 tolerance = 3 HISTORY P11 clobber = no HISTORY P12 history = yes HISTORY P13 chatter = 3 HISTORY P14 mode = ql HISTORY END PARAMETER list for barycorr_2.16 HISTORY HDUCLAS3= 'RATE ' TIMEDEL = 1.0000000000000E-01 / Binning factor TIMEPIXR= 5.0000000000000E-01 / Timestamps give center of bin PHALCUT = 135 / Minimum PI channel PHAHCUT = 710 / Maximum PI channel MINFREXP= 0.0000000000000E+00 / Minimum value of FRACEXP included DSTYP2 = 'POS(X,Y)' / Data subspace descriptor: name DSREF2 = ':REG00101' / Data subspace descriptor: reference DSVAL2 = 'TABLE ' / Data subspace descriptor: value COMMENT Region file selection COMMENT global color=green dashlist=8 3 width=1 font="helvetica 10 normal COMMENT roman" COMMENT select= COMMENT fk5 COMMENT circle(170.3158,-60.6230,120") HISTORY extractor v6.07 CHECKSUM= '6AA263326AA26332' / HDU checksum updated 2022-09-25T11:51:06 DATASUM = '4089539016' / data unit checksum updated 2022-09-25T11:51:06 TTYPE5 = 'RATE_ORIG' / Original bin count rate TFORM5 = '1E ' / data format of the field: REAL TTYPE6 = 'ERROR_ORIG' / Original bin count rate error TFORM6 = '1E ' / data format of the field: REAL HISTORY File modified by 'nulccorr_0.1.9' (nustardas_16Feb22_v2.1.2) at HISTORY 2022-09-25T11:51:05: light curve corrected. NULCCO = T / Has RATE been corrected on ground (T/F)? HISTORY HISTORY START PARAMETER list for nulccorr_0.1.9 at 2022-09-25T11:51:05 HISTORY HISTORY P1 lcfile = obs_lc/FPMA_7.0_30.0_sr.lc HISTORY P2 hkfile = obs_lc/19267_fpm.hk HISTORY P3 outlcfile = NONE HISTORY P4 infile = obs_lc/FPMA_7.0_30.0_cl_barycorr.evt HISTORY P5 phafile = 19267_sr.pha HISTORY P6 inskyinstrfile = obs_lc/19267_skymap_vign.img HISTORY P7 inaspecthistofile = obs_lc/19267_asphist.fits HISTORY P8 pixposfile = CALDB HISTORY P9 alignfile = CALDB HISTORY P10 mastaspectfile = HISTORY P11 attfile = HISTORY P12 teldef = CALDB HISTORY P13 instrprobmapfile = CALDB HISTORY P14 psffile = CALDB HISTORY P15 vignfile = CALDB HISTORY P16 aberration = no HISTORY P17 vignflag = yes HISTORY P18 energy = 10 HISTORY P19 det1reffile = HISTORY P20 optaxisfile = obs_lc/19267_oa.fits HISTORY P21 pixbin = 5 HISTORY P22 cutmaps = yes HISTORY P23 boxsize = 20 HISTORY P24 percent = 0.02 HISTORY P25 skyinstrfile = NONE HISTORY P26 initseed = no HISTORY P27 extended = no HISTORY P28 corrfile = NONE HISTORY P29 psfflag = yes HISTORY P30 expoflag = yes HISTORY P31 clobber = no HISTORY P32 history = yes HISTORY P33 chatter = 3 HISTORY P34 mode = ql HISTORY END PARAMETER list for nulccorr_0.1.9 HISTORY HISTORY File modified by user 'ferrigno' with fv on 2024-08-09T18:06:25 END B B?BHA?B B?BHA?əBuAB/?BpA?33@AA?A A ?ٙBB?B A?BuAB/?BpA?330BVuAA?AAg?ff`B6B K/?BHA?陙BCB &?BHA?BרB0?BpA?ClBIk?BAF1?񙙘BlBl?B A?330BUAx?AAg?BUAx?AAg?ffhBlBl?B A?BB E?BHA?B8B8?B A?330BwA!?AAbF1?AlAl?A A ?ffhBբB.n?BpA@BB$c?BpA@BJAP?AAg@BT?AR?AAbF1@ffhBHA?AAg@334BWBW?B A@B6B6?B A@Ba{B?BHA@Ba{B?BHA@ffhBJAP?AAgXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 255 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row TTYPE1 = 'START ' / label for field 1 TFORM1 = '1D ' / data format of field: 8-byte DOUBLE TUNIT1 = 's ' / physical unit of field TTYPE2 = 'STOP ' / label for field 2 TFORM2 = '1D ' / data format of field: 8-byte DOUBLE TUNIT2 = 's ' / physical unit of field EXTNAME = 'GTI ' / name of this binary table extension HDUCLASS= 'OGIP ' / File conforms to OGIP/GSFC conventions HDUCLAS1= 'GTI ' / File contains Good Time Intervals HDUCLAS2= 'STANDARD' / File contains Good Time Intervals TELESCOP= 'NuSTAR ' / Telescope (mission) name DATAMODE= 'NONE ' / Datamode DETNAM = 'NONE ' / Detector INSTRUME= 'FPMA ' / Instrument name OBJECT = 'Cen_X3 ' / Name of observed object ONTIME = 2.657196550387144E+04 / On-source time DEADC = 8.06424439E-01 / Deadtime correction DEADAPP = T / Has DEADC been applied to data EXPOSURE= 2.142828237334861E+04 / Exposure time LIVETIME= 2.142828237334861E+04 / Deadtime corrected on-source time DATE-OBS= '2015-11-30T18:11:48' / Start date of observations DATE-END= '2015-12-01T04:57:33' / End date of observations TSTART = 1.866030422431890E+08 / time start TSTOP = 1.866417876350140E+08 / time stop TELAPSE = 3.874539182499051E+04 / elapsed time MJD-OBS = 5.735675819938877E+04 / MJD of data start time MJDREFI = 55197 / MJD reference day MJDREFF = 7.660185200000000E-04 / MJD reference (fraction of day) TIMEREF = 'SOLARSYSTEM' / reference time TIMESYS = 'TDB ' / time measured from TIMEUNIT= 's ' / unit for time keywords EQUINOX = 2.000E+03 / Equinox of celestial coord system RADECSYS= 'FK5 ' / celestial coord system USER = 'jovyan ' / User name of creator FILIN001= 'lnk-nu30101055002A01_cl.evt' / Input file name CREATOR = 'extractor v6.07' / Extractor DATE = '2022-09-25T11:50:39' / file creation date (YYYY-MM-DDThh:mm:ss UT) ORIGIN = 'NASA/GSFC' / origin of fits file HDUNAME = 'GTI ' / ASCDM block name MTYPE1 = 'TIME ' / Data type MFORM1 = 'START,STOP' / names of the start and stop columns METYP1 = 'R ' / data descriptor type: Range, binned data CHECKSUM= 'aADgd39ea9Cea99e' / HDU checksum updated 2022-09-25T11:51:06 DATASUM = '1099664352' / data unit checksum updated 2022-09-25T11:50:39 END A>D|EA>˂+A>˃I_A>˃A>˄cA>ˆ2A>ˇIeA>ˇA>ˇgA>ˈ iA>ˉIi A>ˉ A>ˊm!A>ːCFA>˓IyA>˓A>˕I}(A>˕A>˕~~A>˖ &A>˘ɄA>˘PA>˜ɋ-A>ˠ]A>ˣIA>ˣ/tA>˦IA>˦hA>˩IA>˩9yA>˩ɟA>˪ A>˪ɢA>ˬrA>˭I:A>˭@&A>ˮɩ;A>ˮu\A>˯IA>˯C~A>˯ɩA>˰ A>˱IA>˱FA>˶IBA>˶ւA>˻IA>˻WA>IA>ãdA>IA>ϣxA>A> [A>A>ִA> A>ָ.A>IA>٣A>A> iA>pA> +A>sA>ϕA> +$A>EA>J A>룧A>'A> +A>A>A>/A> +A>J1A>A>A> +1A>4A>A>"8A> +$A>$A>"7MA>#JjA>#nA>#mA>$ +nA>$nA>*DA>ٞ)yA>o?7*A>oj^A>p MA>q2naA>?pA>7A> >%A>29A>?=A>A>?FA>2|A>?ÞA>òA> A>2(A>rA>ƲA>?NA>2A>sA>ɳA>?WA>ͳA> yA>3 A>?A>ѳ (A>ӳA>?A>׳FA> 4A>3A>sEA>ٳA>?|A>/A> ʟA>31A>s3A>3 +A>@A>3EA>sGA>IA>@AA>P{A>@$A>3[A>@'A>3bA>@.A>aA> A>e=A> )A>hA> @8A> oHA> @?lA> rA> A>3wPA>@LA>3\A>sA>_A> LA>3mA>@]A>"3sA>"sA>#vA>$ 2eA>$3A>$suA>&|A>)@nNA>.3A>.s5A>33A>3@ A>6IA>7@A>7A>8 SA>;3SA>;@tA>>3YA>>sA>?]A>@ aKA>A3`A>A@A>CA>D gA>IA>J r A>NA>Q@RA>V3A>VsWA>AA>5 A> A>46`A>t9 +A?OA?%}A?%~A?%~uqA?%A?% A?%ەA?%>A?%ݙA?%A?%A?%uA?%A?%A?% A?%A?%A?%5A?%jA?%uWA?%A?%A?%A?%QA?%A?%A?%GA?%u6A?%*A?%{A?%*A?%uŞA?%. +A?%uA?%1dA?%uRA?%8A?%A?%B%A?%A?%ÜLA?%ɩ# A?%\HA?%ͩ)A?%Ϝ`A?%ѩ0rA?%ӜgA?%թ7&A?%j[A?%vJA?%֜kA?%n\A?%؜o A?&êUA?&A?&wyA?&A?&wA?&Ɲ>A?&A?&ǞA?&ͪ$A?& A?&wA?6+A?SN}lA?SNA?SNKA?SOA?SOFA?SPA?SR#A?SRYA?SRRFA?STA?S\A?S\#A?S\cA?S^(A?S`A?S`A?S`iA?SbA?Sd^A?SdՓA?SdpA?SfٗA?SjqA?SmZA?St=A?SvA?SvA?Sw%A?SwFA?SzA?SA?S SA?SAA?S A?SGSA?SA?SA?SA?SA?S&4A?S"A?S*9A?SA?S4NA?SA?S;A?S +A?S?A?SGAA?SAA?SA?SEA?S%hA?S\A?S/~A?ShA?S[4A?S҇jA?S)YA?SpA?SaA?Sև$A?S0A?S؇A?SlA?S܇A?dA?HA?ulA? A?mDqA? A? ɶA? qA? meA? A? mkQA? A? A?rA?A?~A?mA?A?A? A?$A?'VA?xA?A?P1A?Q[gA?QjWA?QпA?RiA?RoA?jA?kA?lHA?lOA?lpA?m[A?mA?nA?nA?o\A?oA?o_A?p A?r pA?tA?u\ (A?uA?u A?v*A?v0A?x߲A?y\A?yA?{\IA?{8A?!A?A?-A?.A?.A?A?\3A?wA?8A?8A?\>A? A?\B1A?A?\OA?&A?[/A?]A?]A?-bA?\`A?A?aA?dA?\cA?A?eRA?gA?hA?7A?lA?nA?nA?E A?\xBA?1A?yA?|DA?|KA?鈯A?\A?ݶVA?ܽ?A?A?ܿA?sA?\ªA?]A?A?ƮA?fA?A?A?陛A?\A?gA?ZEA?E XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 56 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 26 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 6 / number of fields in each row TTYPE1 = 'X ' / label for field 1 TFORM1 = '1PD(1) ' / data format of field: variable length array TUNIT1 = 'pixel ' / physical unit of field TTYPE2 = 'Y ' / label for field 2 TFORM2 = '1PD(1) ' / data format of field: variable length array TUNIT2 = 'pixel ' / physical unit of field TTYPE3 = 'SHAPE ' / label for field 3 TFORM3 = '16A ' / data format of field: ASCII Character TTYPE4 = 'R ' / label for field 4 TFORM4 = '1PD(1) ' / data format of field: variable length array TUNIT4 = 'pixel ' / physical unit of field TTYPE5 = 'ROTANG ' / label for field 5 TFORM5 = '1PD(0) ' / data format of field: variable length array TUNIT5 = 'degree ' / physical unit of field TTYPE6 = 'COMPONENT' / label for field 6 TFORM6 = '1PI(1) ' / data format of field: variable length array EXTNAME = 'REG00101' / name of this binary table extension EXTVER = 1 EXTLEVEL= 1 / Level i DB hierarchy: Data table HDUNAME = 'REGION ' / ASCDM block name HDUCLASS= 'ASC ' / Region extension HDUCLAS1= 'REGION ' / Region extension HDUCLAS2= 'STANDARD' / Region extension HDUVERS = '1.0.0 ' HDUDOC = 'ASC-FITS-REGION-1.0: McDowell, Rots: FITS REGION Binary Table Design'CONTENT = 'REGION ' / CXC Content Key TELESCOP= 'NuSTAR ' / Telescope (mission) name DATAMODE= 'NONE ' / Datamode DETNAM = 'NONE ' / Detector INSTRUME= 'FPMA ' / Instrument name OBJECT = 'Cen_X3 ' / Name of observed object ONTIME = 2.657196550387144E+04 / On-source time DEADC = 8.06424439E-01 / Deadtime correction DEADAPP = T / Has DEADC been applied to data EXPOSURE= 2.142828237334861E+04 / Exposure time LIVETIME= 2.142828237334861E+04 / Deadtime corrected on-source time DATE-OBS= '2015-11-30T18:11:48' / Start date of observations DATE-END= '2015-12-01T04:57:33' / End date of observations TSTART = 1.866030422431890E+08 / time start TSTOP = 1.866417876350140E+08 / time stop TELAPSE = 3.874539182499051E+04 / elapsed time MJD-OBS = 5.735675819938877E+04 / MJD of data start time MJDREFI = 55197 / MJD reference day MJDREFF = 7.660185200000000E-04 / MJD reference (fraction of day) TIMEREF = 'SOLARSYSTEM' / reference time TIMESYS = 'TDB ' / time measured from TIMEUNIT= 's ' / unit for time keywords EQUINOX = 2.000E+03 / Equinox of celestial coord system RADECSYS= 'FK5 ' / celestial coord system USER = 'jovyan ' / User name of creator FILIN001= 'lnk-nu30101055002A01_cl.evt' / Input file name CREATOR = 'extractor v6.07' / Extractor DATE = '2022-09-25T11:50:39' / file creation date (YYYY-MM-DDThh:mm:ss UT) ORIGIN = 'NASA/GSFC' / origin of fits file MTYPE1 = 'pos ' / DM Keyword: Descriptor name. MFORM1 = 'X,Y ' / DM Keyword: Descriptor value. TCTYP1 = 'RA---TAN' TCRPX1 = 5.005000000000000E+02 / X axis reference pixel TDRPX1 = 5.005000000000000E+02 / original X axis reference pixel TCRVL1 = 1.703603000000000E+02 / Coord of X ref pixel TCDLT1 = -6.828076000000000E-04 / X axis increment TDDLT1 = -6.828076000000000E-04 / original X axis increment TCTYP2 = 'DEC--TAN' / projection TCRPX2 = 5.005000000000000E+02 / Y axis reference pixel TDRPX2 = 5.005000000000000E+02 / original Y axis reference pixel TCRVL2 = -6.060790000000000E+01 / Coord of Y ref pixel TCDLT2 = 6.828076000000000E-04 / Y axis increment TDDLT2 = 6.828076000000000E-04 / original Y axis increment TCROT2 = 0.000000000000000E+00 / Sky coord rotation angle CHECKSUM= 'S91aV60ZS60aS60W' / HDU checksum updated 2022-09-25T11:51:06 DATASUM = '1330212098' / data unit checksum updated 2022-09-25T11:50:39 END CIRCLE @p7@}b[`@HhB \ No newline at end of file diff --git a/tests/data/IBIS_lc_Swift_J151857.0-572147_30-50.fits b/tests/data/IBIS_lc_Swift_J151857.0-572147_30-50.fits new file mode 100644 index 0000000..95318f1 --- /dev/null +++ b/tests/data/IBIS_lc_Swift_J151857.0-572147_30-50.fits @@ -0,0 +1,31 @@ +SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 44 / length of dimension 1 NAXIS2 = 339 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 9 / number of table fields BACKAPP = T BANDTYPE= 'ENERGY ' BASETYPE= 'DAL_TABLE' BKGPARAM= 'rebinned_back_lcr.fits' CHANTYPE= 'PI ' CHECKSUM= 'H9gaH6dRH6dXH6dX' COMMENT STAMP : CONFIGUR= 'osa_2022-03-30T09:56:36' CREATOR = 'ii_lc_extract 2.7.1' DATASUM = '2029684990' DATE = '2024-03-16T07:33:53' DEADAPP = T DEADC = 0.802286175232177 DEC_OBJ = -57.3633003234863 DETNAM = 'ISGRI ' EQUINOX = 2000.0 EUNIT = 'keV ' EXPOSURE= 485.268995098526 EXP_SRC = 211.428501412247 EXTNAME = 'ISGR-SRC.-LCR' EXTREL = '7.9.4 ' EXTVER = 5 E_MAX = 50.0 E_MIN = 30.0 FITTYPE = 6 GRPID1 = 1 INSTRUME= 'IBIS ' ISDCLEVL= 'LCR ' MJDREF = 51544.0 NAME = 'Swift J151857.0-5721' OBTEND = '00009157042472222720' OBTSTART= '00009157041780162560' OFFCORR = 'rebinned_corr_lcr.fits' ONTIME = 0 ORIGIN = 'ISDC ' RADECSYS= 'FK5 ' RA_OBJ = 229.737503051758 REVOL = 2747 SOURCEID= 'Swift J151857.0-' SRCCNT = -0.10944590670194 SRCCNTE = 1.01938711470333 STAMP = '2024-03-16T07:33:53 ii_lc_extract 2.7.1' SWBOUND = 'String ' SWID = '274700190010' SW_TYPE = 'POINTING' TELAPSE = 28.17834643275455 TELESCOP= 'INTEGRAL' TFIRST = 8820.39631009945 TIERABSO= 0.0 TIERRELA= 0.0 TIMEDEL = 0.0076229683108977 TIMEPIXR= 0.5 TIMEREF = 'LOCAL ' TIMESYS = 'TT ' TIMEUNIT= 'd ' TLAST = 8848.574656532204 TSTART = 8820.39631009945 TSTOP = 8848.574656532204 VIGNAPP = T VIGNET = 1.0 Y_FIN = -57.386 Z_FIN = 32.8117 TTYPE1 = 'TIME ' TFORM1 = 'D ' TTYPE2 = 'TOT_COUNTS' TFORM2 = 'E ' TTYPE3 = 'BACKV ' TFORM3 = 'E ' TTYPE4 = 'BACKE ' TFORM4 = 'E ' TTYPE5 = 'RATE ' TFORM5 = 'E ' TTYPE6 = 'ERROR ' TFORM6 = 'E ' TTYPE7 = 'FRACEXP ' TFORM7 = 'E ' TTYPE8 = 'XAX_E ' TFORM8 = 'E ' TTYPE9 = 'TIMEDEL ' TFORM9 = 'D ' END @:37/BB >e%-?{G?V;y?9B@:9lGq#BBMؑ>u>?+?t ;y?9B@:=;2BBb>cƅEJ?d?C;y?9B@:B?ׄB?BZD2>a`>.>?B;y?9B@:FB/Bg>b=>?ش;y?9B@:K{`B)Bj@>m>8?Y?2;y?9B@:O{ʧBB`qS>{m?u?0;y?9B@:S1BLB>c]?E?0?k;y?9B@:XH%B(BP=>t:H?u?9?1;y?9B@:\B<BK>a>IrB?:?;y?9B@:a(^B+BG|o>^JHD>n?";y?9B@:iIkBh9BN>{r?G?r);y?9B@:nZut,BBZ>Vξ0K?TJ?;y?9B@:rHBBn*>a_"|[>c?;y?9B@:w+n}BBL>o? B?;y?9B@:{]BakBwG>aIg»Q>{?t;y?9B@:$hBBH >ZJ]2>D?=;y?9B@:j2SB&BS>]k־ >?;y?9B@:KB,BS8>h6a?x?։;y?9B@:YPBBM >h}_?? ;y?9B@:>"TBoBt1>D}? Y?<:?~N;y?9B@;LbBB>VI޵2??~;y?9B@;NArBA:Bb>Rݿ??;y?9B@;Q(BMB >ĉ>+? ? ;y?9B@;T@B{Be >>aJ?n?;y?9B@;X]BBu>s(?~?O ?8;y?9B@;\ BCBq>ս?u#?g?k;y?9B@;^}dBCBZq >.?A?;y?9B@;aɂBTBwg>{2?9?Y;y?9B@;e>B@Bb>yP>-p??;y?9B@;h}B*BgH>I?? \?>;y?9B@;k@iBBhp>:?%?D|?;y?9B@;o$oKBHBbw>笽;?A?;y?9B@;runBBo>F> ?,?:;y?9B@;uFhBBv>;A? ? ;y?9B@;ySTB BYE>L?9?e??;y?9B@;|X BB>]?b'??;y?9B@;/JB.BZ>>C?2{?8;y?9B@;BIB^>1?3?;y?9B@;FwvBBt>?6?"?|;y?9B@;W-BBw>сh?$ߐ?5!;y?9B@;݄{BBVS>,u? ?;y?9B@;)^\BBbj>씿!? W?;y?9B@;VBtBj>jt>V?;y?9B@;IBߋBh>>/??J;y?9B@;ZٲBB]>ž~?%0?ʌ;y?9B@;`eB3BkB>?C,?;y?9B@;4-FBB4/>[LL?GQV?.;y?9B@;dVBB_>-?V+?( ?;y?9B@;].BM{BjP>ñ??+?zOk;y?9B@;VB]B3>rd?:c?;y?9B@;]TRB׬Bvt>?|??;y?9B@;@BJBe|>Ծ?}x +??ɶ;y?9B@;<9BBS>~?R?G;y?9B@;HBBfb>'?5?;y?9B@;פ BgdBx>?;?Q?;y?9B@;-*NBdkBgo>F?]e?g;y?9B@;v,BBz>ھ?7ez?A;y?9B@;˼$rBPBiP>_?ql>t??i;y?9B@;XHB&YBhL>žY?"b?:;y?9B@;աB;BW>y?ܭ??4k?ʇ;y?9B@;>?BNBfp#>=(??@ ?i;y?9B@;߇93B +BrJV>V??_T?;y?9B@;C&iBxBJ>a=3?B?yw;y?9B@;cgB)Bpm`>-f= +*? N?;y?9B@;zB5BdD>&32?u?;y?9B@;BBja>c;>&6?"?;y?9B@??J?~yf;y?9B@`q >?ع;y?9B@i~2I??J;y?9B@<]BBv?O\Gn??};y?9B@<%D,BB^>V>7e>?ڸ;y?9B@<BXBnK?A4@(C?V?};y?9B@<\BNBM]j>\bܾП>o?;y?9B@_~a>[?;y?9B@ƼW??0?|);y?9B@j>??i{;y?9B@<8tB5BuQ?W??O?}Ӂ;y?9B@<ֻTBFBj>w1!?•?;y?9B@bgD>?;y?9B@<tB#kBp?N@?`#?}];y?9B@<ֻܳbB!Bt}b>qgJ]??;y?9B@< wwBBs)?qӿVt@c?}G;y?9B@<4BW9BJ>\w?@>?;y?9B@<7FBBw;?T /}@]?});y?9B@< BsBLh>\jE>5?;y?9B@<BFwBw3?\j>,? ?}X;y?9B@t䛿h? b=?s;;y?9B@ye>G.?>? ;y?9B@<@BB/Bm?j? +@ +?};y?9B@<5,)BBQLM>rϿ? ?q;y?9B@= BV,BpB?Q9?;@h?};y?9B@=(O0RB9BFC>\ >>?`;y?9B@="CBBu5?F??J?};y?9B@= LB&BV<>[rD>?;y?9B@= }BbB}2?P|տ=?IV?} ;y?9B@= BU.Bb>]y==>?ٔ;y?9B@=k0BBs=?ME?/??} +;y?9B@=+B5B4 >k!E??;y?9B@=^OBBv>?T@?T?} +;y?9B@=VBņBbh>uOT>X? *R?3;y?9B@=MԕBqBy?_̌e$@*?}՞;y?9B@=ctBGB>>Y&>dj?;y?9B@=;;BBo,?@???};y?9B@=!φBsBe>^?GA?f?;y?9B@=$-B-Btw?S?=u?;y?9B@=&AB{BJf>\߿6>_?;y?9B@=)[)BS[Bym?S-MG?a?} ;y?9B@=+~BHBX<>^v('>?;y?9B@=.?BxvBv?ZL?Ъ?u?}\;y?9B@=0{ BB[90>a8 +>Z?;y?9B@=274BBn?J@G?U?};y?9B@=5>BBZj >f?X??;y?9B@=7BBt ?T%@ y?~?};y?9B@=9}"B B`_>Z>0??ʌ;y?9B@BM/BTBv\>,A>?aD@?~N;y?9B@BQ\"BB]8>9Aa?u?;y?9B@BT21xBaBi]>.A*O??6;y?9B@BWY1BBajs>A} +?X?؋;y?9B@BZsFSBPBy?gAO@/?~2;y?9B@CԢBBW?{A1I*?q?~w;y?9B@C<\B`BD >oNAT??C;y?9B@C+ɷB4Br?LA?a?~';y?9B@CĸBBN7>>x6A7z? T?ڠ;y?9B@C"/zB{Br??fAXҍ@ ?};y?9B@C˲}TBk3Bc>_&AGQ>_?;y?9B@CBBx?K8A/g?Y?}&;y?9B@CФ#BBM +>f sA78>:?B;y?9B@C^B}Bsp?TA@?g?}_;y?9B@CՓ~B0BZ>b2AX@4>?؃;y?9B@CB3BuE(?TA`^?E?}߄;y?9B@Cڄ n BBx[>{'An? 9t?;y?9B@CvA\~??yl;y?9B@C9JBCHB\>A\?3{AW?@?i5;y?9B@C9VBaBC>zqvAh ?Q?o;y?9B@C;qB Bs ?g-Ast@ ?};y?9B@C* BxBYSB>gAQ??;y?9B@Cc^BBw?RڿAL5??}ڞ;y?9B@C"BBM1>bwAT.>#=?;y?9B@C{FBBy?RXnA653?E?};y?9B@D +B*Bu/>Amj?aa?r,;y?9B@D\lBKA[mAuܩ??;y?9B@D C$~\BBv,?lAE1@ Ķ?}aw;y?9B@DaBjLB>>oVAdt? +>?s;y?9B@D+8B.Btf}?a"At@5?};y?9B@DߎBB~b>c Ao,>SM? +;y?9B@DB0Bx?InA8-I?s?};y?9B@D@BiBR܅>kA^5#>?;y?9B@D +A%BABŚ?[A?D?};y?9B@DJ>BīBtf>yj(AO6? ?ڨ;y?9B@D 0wBvB#?k?aA"@U?};y?9B@D#@B) +Bj>uA4\?\?;y?9B@D% B]xBy?yzA#.@Mw?}̿;y?9B@D(||:BٓA2{?%?;y?9B@D*pBB ?7A1i??;y?9B@D/ӤBRB#?oRAH@ +@R?}d;y?9B@D2kf6BބBs>MAL}?&?;y?9B@D4 BBXg?ADW*@?};y?9B@D7Ug|B'Bi>BjAEB?"?;y?9B@D9}BY1BW?t,A3p@ {n?};y?9B@D4'ADxK?v?q;y?9B@D>BnBEA)? +?x;y?9B@DCz BBx,?qAd@?};y?9B@DF!BdB}> A?u?:;y?9B@DH|4BB(?A@?}W;y?9B@EFdBF2BqD?+AT?v?~;y?9B@EמBCBa >9@[? ?ڪ;y?9B@EBB9?'ۙA28?ir?~;y?9B@EPtB!+BQA>qJPA ??6;y?9B@ERoBgcB?! AAj??~Ԧ;y?9B@EBjBd>taAN? ?&;y?9B@E BB?4@?fp?~;y?9B@E"@KB|IBZ>sKA tp?_?;y?9B@E%Er\BgB,d?!E,@`??~<;y?9B@E'#4BPBX6>q]BA? +S?;y?9B@E*xBWfB?A??~;y?9B@E-BB+B\>kA:?S?;y?9B@E//nBB?!@?>?~Ν;y?9B@E2r.B/BZ>ofD@c?Z?و;y?9B@E4.OB$BK?t@Ʌ??~w;y?9B@E7ƬB!BU>q.HA>1Y?;y?9B@E:+BB"?01@J??~;y?9B@E<6BeBoU>r@W?T?ؕ;y?9B@E?g7BeBG? @\?f?~ܟ;y?9B@EBXB)%Bd>w0@d8??ظ;y?9B@ED鄐B)B?! @M]??~ߴ;y?9B@EGRBBM>j,{@?.?f;y?9B@EIvP6BqB/? @ph? +?~;y?9B@ELM|BX Bh>nl@ >?ٍ;y?9B@EO BBw?k8@'Q?_ ?~;y?9B@EQkBTBXP>u@i>p?;y?9B@ETHܲ0BgB?!%@{?7o?~v;y?9B@EW=ZBBu>k&@>Ʈ?;y?9B@EY?BBB?@??~s;y?9B@E\:B2Bast>d*@>+?ذ;y?9B@E^GB9BM?@z??~;y?9B@Ea mB#BK>kc:A??;y?9B@Ed_rBvB3?!@?o?~;y?9B@EfMBLBn>gA_>?;y?9B@Ei8aBB-?W@?k?~;y?9B@EkԳB1B^}>l%Ax>?د;y?9B@Enj:BBL?@"??~;y?9B@Eq#XBNB]>hU5@ +>u?;y?9B@EsPBB?s@ު?F?~j;y?9B@EvcVBBr>gGY@w#>m?;y?9B@ExMB9Bѽ?hZ@?H?~;y?9B@E{HBBMA9>koAƀ?B?;y?9B@E~BDxBR?&qA$1??~;y?9B@E.{B Bl>nA +?d?;y?9B@EKdBB? @@˴"?f?~ ;y?9B@E B6BF>fP@%b?k?;y?9B@EDB B?@+4??~;y?9B@E4UBB>gL@?Ĩ?{;y?9B@E7B4B?vT@EL??~ٻ;y?9B@EgYBBSBlQ>kB@ +W?b@ı?)?;y?9B@E8pBIB?@??~ϗ;y?9B@E&iA R?/?w;y?9B@Ep BB?Æ@M?a?l ;y?9B@E>0BPBi>]4N@>__?;y?9B@E]Q(B}Bk?A%E@#>|?|h;y?9B@Efv^B3B=>?@Y??~7;y?9B@E1g~B9Bdi>b.b@>,C?);y?9B@EhB1BqV?S@Ԋh?A&?};y?9B@E$B4Bo?>c@>?];y?9B@Ev`Bz@? +A?ڙ;y?9B@EVBCjB|D?s> @}?;y?9B@FBɂBZOb>g@}T_??;y?9B@F98BB{:?`?=@?}a;y?9B@FdB7ABR&>kD@q3?:M?;y?9B@F oB^Bt[?l'a@E3f@ y*@ ? 4o?S;y?9B@F SBB4Bxܕ?|?ߖ@ ?}au;y?9B@F`Bw\Bі>a@7>?;y?9B@F +pBBpp?a8 @n@?}Mq;y?9B@FjC)BxBL>`.@m> ?e;y?9B@FRBاBqN?e2q@W@?}^;y?9B@F0@??r;y?9B@F!B;Br?A)8@m?}, ;y?9B@F$cBkB)z>Q@??5;y?9B@F&gBVBuā?b@@#+?}B;y?9B@F)lB^Bm4>k1@+?^?|Z;y?9B@F+ThBZABts~?gi@ @^?|;y?9B@F-['BJBm>o@?"?;y?9B@F0/zBQBw?q@@1?}g;y?9B@F2vBBE>_g@S\>c?;y?9B@F5{lB?Bu\?[@Y@2?}h;y?9B@F7 BgBtn>`7@>?;y?9B@F9?$BBz( ?jWH@5@#?});y?9B@Fd@z>?;y?9B@F>ӃgBBvp?gܺ@@?}J7;y?9B@FA]PBB>yL@$? S'?;y?9B@FCBBo8?>mA-O@8?;y?9B@FK,q`BBU->h!A&\?U?;y?9B@FMBLBr C?jAKd@!?}V;y?9B@FP+ BYBA>nA&7b?q?ٗ;y?9B@FRg_+BRTBs.i?r@@?}U";y?9B@FTaB:B:>dgAC(>l?;y?9B@FWNQBt;Br[?rAj9c@N?|;y?9B@FYC BBFg>dADJ>7q?ڿ;y?9B@F\(GZ:BIBx??d82A+ő?l?}~;y?9B@F^'BOJBt>g?A?i>m?ْ;y?9B@Fa 2BBw!?h3A+#@{?}2;y?9B@Fc0TBBR&>p+.A1آ??;y?9B@FeBBvX?mA(@ M?}r;y?9B@Fh|B"BSO7>} A+C?q?;y?9B@FjBmBy-? EA@`K?}4-;y?9B@FmY~#B?fBn>k +A%z??c;y?9B@FooB}Bs ?oAPo@ R?}H;y?9B@Fr8/B BSJm>sSA+? ΀?;y?9B@FtpļBBs~?kA% +Y@ ?}r;y?9B@Fw$zB?PBh>bA/;>?v;y?9B@FyzbBnBvU?p1]A!;m@ sa?|o;y?9B@G}C{BKB?6@?:?~;y?9B@G|BsB`?@?B{?~2;y?9B@GϽqBSBo>@^??~z;y?9B@G҉pBiBz2>aE@\>g?;y?9B@GBt7BuZ?m@ ~??~w;y?9B@G!BBa>i +n@T?j?;y?9B@GKNBUBn?L@g~?SW?~ ;y?9B@G rB*3BLƁ>ee@Y?:?y߰;y?9B@GRB /BZ>@^w ? ?;y?9B@GUBJ8B>ǃ@'X??g;y?9B@G58BqBT>aW@x>w?D;y?9B@GZjBBr\?u@?e?~;y?9B@GriB\BR@>Y@>?;y?9B@GÂBBu?@Y??~N;y?9B@GACmB^BV^@>e@^@>?ؚ;y?9B@GB"BrvG?u@]r??~S;y?9B@G8bBBi{>`@տ> ?;y?9B@G oBBvK?5o@?4?~8;y?9B@GcBoBn>_@%>*?;y?9B@G9S,BVBo?Ih@f?K?~Ϥ;y?9B@GBYBN| >`Fd@>G?;y?9B@Hs2B[Bw?%@%?Q?~9;y?9B@H7q'BTB[.>h\@>^?;y?9B@HsSB`BtK?# T@?{?~;y?9B@H +rCBY?Bkv>f] @W})>R?;y?9B@H BBtb?!@X?v?~;y?9B@H/BBI>f<@5>?;y?9B@HB۔BJ?@l?\?~;y?9B@H7 +BA+Bc;>;#@)?m?;y?9B@H\\BKOB0?4A?}?~ԭ;y?9B@H`dBzBQ>>B@`+??;y?9B@Hy:fCB$ ?R.~??/?~̙;y?9B@HUPC~0Bb>S?M??m;y?9B@H!BpC1B:?Mz.?y?$?~́;y?9B@H$\C B>@`? $?};y?9B@H' BCeBD?P'@?rg?x;y?9B@H)UCMBu>X@S?4$?`.;y?9B@H,AJC#\B ?}W@=9@c'?D';y?9B@H/ 9IC2KCI7>@9?N2?B;y?9B@H1A3C:aC??@@g@9?h8f?31;y?9B@H6CAsC,?w@@#~?6];y?9B@H9qxHCJBt? G?n?yE?%U;y?9B@H;CR5C&t?g@1 ?%~s;y?9B@H>L//ChC/z?J@p?9?XP;y?9B@HA5geCCa@R,>@{>;y?9B@HC BWC=CJ@?(@C@W?C>;y?9B@HF}CCn?vV}@@t>cZ;y?9B@HIsV:CJCb3%?@@?nv>Mo;y?9B \ No newline at end of file diff --git a/tests/data/JMX1_lc_Swift_J151857.0-572147_3-10.fits b/tests/data/JMX1_lc_Swift_J151857.0-572147_3-10.fits new file mode 100644 index 0000000..b052ff4 --- /dev/null +++ b/tests/data/JMX1_lc_Swift_J151857.0-572147_3-10.fits @@ -0,0 +1,2 @@ +SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 44 / length of dimension 1 NAXIS2 = 13 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 8 / number of table fields BACKAPP = T BASETYPE= 'DAL_TABLE' CHANMAX = 127 CHANMIN = 46 CHANTYPE= 'PI ' CHECKSUM= 'MpJgPm9eMmGeMm9e' COMMENT STAMP : Copied all selected lightcurves CONFIGUR= 'osa_2022-03-30T09:56:36' CREATOR = 'lc_pick 3.4.3' DATAMODE= 'FULL ' DATASUM = '4094470219' DATE = '2024-03-24T17:37:50' DEADAPP = T DEADC = 0.888991867630301 DEC_OBJ = -57.36334 DETSIG = 15.1895438377184 EQUINOX = 2000.0 EUNIT = 'keV ' EXTNAME = 'JMX1-SRC.-LCR' EXTREL = '11.1 ' EXTVER = 1 E_MAX = 9.87 E_MIN = 3.08 GRPID1 = 1 INSTRUME= 'JMX1 ' ISDCLEVL= 'LCR ' MJDREF = 51544.0 NAME = 'Swift J151857.0-5721' OBTEND = '00009159574123708416' OBTSTART= '00009157266974441472' OFFANGLE= 2.210244 ONTIME = 0 ORIGIN = 'ISDC ' RADECSYS= 'FK5 ' RA_OBJ = 229.7219 REVOL = 2757 SOURCEID= 'Swift J151857.0-' SRCCNT = 0.0716964788276597 SRCCNTE = 0.624533255270425 STAMP = '2024-03-24T17:37:50 lc_pick 3.4.3' SWBOUND = 'OTF ' SWID = '275700500010' SW_TYPE = 'POINTING' TELAPSE = 21.967592594493908 TELESCOP= 'INTEGRAL' TIERABSO= 0.0001220703125 TIERRELA= 0.00527343767287676 TIMEDEL = 0.02314815 TIMEPIXR= 0.5 TIMEREF = 'LOCAL ' TIMESYS = 'TT ' TIMEUNIT= 'd ' TIMVERS = 'OGIP/93-003' TSTART = 8826.342592611436 TSTOP = 8848.31018520593 VIGNAPP = T VIGNET = 0.2994293 TFIRST = 8826.342592611436 TLAST = 8848.31018520593 TTYPE1 = 'TIME ' TFORM1 = 'D ' TTYPE2 = 'RATE ' TFORM2 = 'E ' TTYPE3 = 'ERROR ' TFORM3 = 'E ' TTYPE4 = 'BRATE ' TFORM4 = 'E ' TTYPE5 = 'BERROR ' TFORM5 = 'E ' TTYPE6 = 'BARYTIME' TFORM6 = 'D ' TTYPE7 = 'FRACEXP ' TFORM7 = 'E ' TTYPE8 = 'TIMEDEL ' TFORM8 = 'D ' END @=-UU>/>W@o= J>?& @D9NB|?MeA L>kP>ʫ?& @E/&Btg?C+A%F>N>8?& @E5/B?81'A/>s?c?& @EJ^=B9r-?@a=p;>ә?& @Ee {lBK,?E@=#??& @Em BD?b@&=>?& @F4qFBH ?%ϫ@P=>)6?& @G B ?(DAV>>?& @G!B"5 ?6"At> ?1s?& @H:B͟?!Aee> +>>?& @HP|B@?;6zAi@>)*0? ?& @H&8Bخ?(A]>=aŘ?&  \ No newline at end of file diff --git a/tests/test_lc.py b/tests/test_lc.py new file mode 100644 index 0000000..e5d10df --- /dev/null +++ b/tests/test_lc.py @@ -0,0 +1,20 @@ +import logging +import ogip.lc +import os + +logging.basicConfig(level=logging.DEBUG) + + +def test_read_write(): + files = ["tests/data/FPMA_3.0_7.0.flc", + "tests/data/FPMA_7.0_30.0_sr.lc", + "tests/data/IBIS_lc_Swift_J151857.0-572147_30-50.fits", + "tests/data/JMX1_lc_Swift_J151857.0-572147_3-10.fits" + ] + + for fn in files: + lc = ogip.lc.Rate(fn) + k = fn.rfind('.') + new_fn = fn[0:k] + '_ogip.' + fn[k + 1:] + lc.to_fits(new_fn) + assert (os.path.isfile(new_fn)) diff --git a/tools.ipynb b/tools.ipynb index 5ddf4fe..576bbfb 100644 --- a/tools.ipynb +++ b/tools.ipynb @@ -3,6 +3,21 @@ { "cell_type": "code", "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2x977DF27NhR63M3psTEROyH3NblGCGE6wwZ8JtTD9+6ZPCnn35KREQE3377LV26dKlTwHfF4sWLGTFiRIOcWwjRdBky4Bu5h19QUMCNN97IgAED6N+/P+vWrbPse/nll4mJiSEiIoJjx44BppLBs2fPJjU1lXnz5vHhhx8SFRXFww8/bCmzPHeuacbckiVLGDhwIJGRkSxatMhy3qeeeopevXpxzTXX8P3339fYxmnTpvH+++8Dpm8eixYtqtKugoIC7rrrLuLj44mOjubDDz+s8bytW7dm7ty59OvXjxEjRrB3714SExPp3r27pcpncXEx06dPJyIigujoaD7//HPANLP49ttvp0+fPowfP56ioiLLebdv386gQYOIiYlh0qRJlrILQoj61WTr4QN8vnYl507+UK/n7NC1O9dOm+l0///+9z+uvPJKPvrINMvN+lvI5Zdfzv79+1mxYgVLly7l9ddft+yLiopi8eLFlnrxGRkZHD582FK8y7pssNaacePGsXPnToKCgizlfcvKyoiJibHUc3eVo3Y99dRTDB8+nNWrV5OTk0N8fDwjRowgNzeXu+++22HlyoKCAoYPH86SJUsYP348Cxcu5JNPPuHIkSNMnTqVcePGsXz5cpRSHDx4kGPHjjFq1CjS0tJ45ZVXCAwM5OjRoxw4cICYmBgAfvnlF5588kl27NhBUFAQzz77LM8//zyPPfZYrX5HIUTNDBnwjTzTNiIigr/+9a88/PDDjB07liFDhlj2mUsbx8bG8sEHH9TqvM7KBufl5Tks71sbjtq1fft2Nm/ebMn7FxcXc+rUKfr06eO0TLGfnx9jxphq6EVERODv74+vry8RERFkZGQAsHv3bh544AEAevfuTdeuXUlLS2Pnzp38+c9/BiAyMpLIyEgAvvnmG44cOcLgwYMBU23/QYMG1fp3FELUzJAB39VhmdX1xBtKr1692L9/Px9//DELFy7kuuuus/RGzWV7rUsfu8pZ2eB//vOfbrfZUbu01mzYsIHw8HCXz2Nd3tm6THFdSxSb2zFy5EjeeeedOr1fCOE6Q+bwjezMmTMEBgZyxx13MHfuXPbv31+n89iXWXZWNthZeV93jR49mpdfftlSp/7bb7+tl/MOGTKEt99+G4C0tDROnTpFeHg4Q4cO5T//MRVIPXToEAcOmGp6X3311Xz55ZecOHECMKWN3Fl0RQjhnCF7+EZ28OBB5s6di5eXF76+vrzySt3WcQkNDWXw4MH079+f66+/niVLlnD06FFLOqN169a89dZbxMTEcNtttzFgwAA6dOhgWaXKXY8++igPPfQQkZGRVFRUEBYWxtatWzlz5ozTHL4r7r//fu677z4iIiLw8fFh7dq1+Pv7c9999zF9+nT69OlDnz59LM8h2rdvz9q1a5kyZYplxaknn3ySXr161cvvKYSRZPiUu7+2bUm56b91OI/L5ZEbk1UO/57jx4/b7JPyyMIopDyyC5p7eeRaHPvGK79nm3chJ317uNE4oKTA9F+/IKeH7L3rA8+WR64NKa0ghGhuZgSEMIMQmL7BvRNZbjLOz6PuUg63Sw5fCCFaiCYZ8I2YhhIti/wNiqaoyQX8gIAALly4IP+HEx6jtebChQsEBAR4uilC1Iohc/jVTbzq3LkzWVlZnD9/vvEbJkSlgIAAOnfu7OlmCFErhgz41T209fX1JSwszAOtEkKIpq3JpXSEEELUjQR8IYRoISTgCyFEC2HImbZmSqnzwMlGuFQwYLTVVhqrTfV9nfo4X13PUdv3uXq8q8ddDlRd9qxlkP8PGet8PbXWVRcU0Vq3+B9gpafb4Kk21fd16uN8dT1Hbd/n6vG1OC65sf4+jPYj/x8y1vmcnUNSOib1U4KyfjVWm+r7OvVxvrqeo7bvc/V4I/59GI0RPyP5/5AdQ6d0hGhKlFLJ2kHBKiGMQnr4QtSflZ5ugBDVkR6+EEK0ENLDF0KIFkICvhBCtBAS8IUQooUwZPE0IZoDpdQtwI1AW+ANrfV2z7ZItHTSwxeiFpRSq5VS55RSh+y2j1FKfa+UOqGUmg+gtd6ktb4HmAXc5on2CmFNAr4QtbMWGGO9QSnlDSwHrgf6AlOUUn2tDllYuV8Ij5KAL0QtaK13Atl2m+OBE1rrH7TWJcC7wM3K5Fngv1rr/Y3dViHsSQ5fCPddBWRavc4CEoAHgBFAsFLqd1rrVz3ROCHMJOAL0UC01i8BL3m6HUKYSUpHCPedBrpYve5cuU0IQ5GAL4T79gE9lVJhSik/4HZgs4fbJEQVEvCFqAWl1DvA10C4UipLKTVDa10GzAa2AUeB97TWhz3ZTiEckeJpQgjRQkgPXwghWggJ+EII0UJIwBdCiBZCAr4QQrQQEvCFEKKFkIAvhBAthAR8IYRoISTgCyFECyEBXwghWoj/D3aaO7Pwk0a2AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import numpy as np\n", "import ogip\n", @@ -52,46 +67,42 @@ " assert np.nanstd(np.abs((s - t_s)/s)) < 0.05\n", "\n", "t_rmf.to_fits(\"transformed_rmf.fits\")\n" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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2x977DF27NhR63M3psTEROyH3NblGCGE6wwZ8JtTD9+6ZPCnn35KREQE3377LV26dKlTwHfF4sWLGTFiRIOcWwjRdBky4Bu5h19QUMCNN97IgAED6N+/P+vWrbPse/nll4mJiSEiIoJjx44BppLBs2fPJjU1lXnz5vHhhx8SFRXFww8/bCmzPHeuacbckiVLGDhwIJGRkSxatMhy3qeeeopevXpxzTXX8P3339fYxmnTpvH+++8Dpm8eixYtqtKugoIC7rrrLuLj44mOjubDDz+s8bytW7dm7ty59OvXjxEjRrB3714SExPp3r27pcpncXEx06dPJyIigujoaD7//HPANLP49ttvp0+fPowfP56ioiLLebdv386gQYOIiYlh0qRJlrILQoj61WTr4QN8vnYl507+UK/n7NC1O9dOm+l0///+9z+uvPJKPvrINMvN+lvI5Zdfzv79+1mxYgVLly7l9ddft+yLiopi8eLFlnrxGRkZHD582FK8y7pssNaacePGsXPnToKCgizlfcvKyoiJibHUc3eVo3Y99dRTDB8+nNWrV5OTk0N8fDwjRowgNzeXu+++22HlyoKCAoYPH86SJUsYP348Cxcu5JNPPuHIkSNMnTqVcePGsXz5cpRSHDx4kGPHjjFq1CjS0tJ45ZVXCAwM5OjRoxw4cICYmBgAfvnlF5588kl27NhBUFAQzz77LM8//zyPPfZYrX5HIUTNDBnwjTzTNiIigr/+9a88/PDDjB07liFDhlj2mUsbx8bG8sEHH9TqvM7KBufl5Tks71sbjtq1fft2Nm/ebMn7FxcXc+rUKfr06eO0TLGfnx9jxphq6EVERODv74+vry8RERFkZGQAsHv3bh544AEAevfuTdeuXUlLS2Pnzp38+c9/BiAyMpLIyEgAvvnmG44cOcLgwYMBU23/QYMG1fp3FELUzJAB39VhmdX1xBtKr1692L9/Px9//DELFy7kuuuus/RGzWV7rUsfu8pZ2eB//vOfbrfZUbu01mzYsIHw8HCXz2Nd3tm6THFdSxSb2zFy5EjeeeedOr1fCOE6Q+bwjezMmTMEBgZyxx13MHfuXPbv31+n89iXWXZWNthZeV93jR49mpdfftlSp/7bb7+tl/MOGTKEt99+G4C0tDROnTpFeHg4Q4cO5T//MRVIPXToEAcOmGp6X3311Xz55ZecOHECMKWN3Fl0RQjhnCF7+EZ28OBB5s6di5eXF76+vrzySt3WcQkNDWXw4MH079+f66+/niVLlnD06FFLOqN169a89dZbxMTEcNtttzFgwAA6dOhgWaXKXY8++igPPfQQkZGRVFRUEBYWxtatWzlz5ozTHL4r7r//fu677z4iIiLw8fFh7dq1+Pv7c9999zF9+nT69OlDnz59LM8h2rdvz9q1a5kyZYplxaknn3ySXr161cvvKYSRZPiUu7+2bUm56b91OI/L5ZEbk1UO/57jx4/b7JPyyMIopDyyC5p7eeRaHPvGK79nm3chJ317uNE4oKTA9F+/IKeH7L3rA8+WR64NKa0ghGhuZgSEMIMQmL7BvRNZbjLOz6PuUg63Sw5fCCFaiCYZ8I2YhhIti/wNiqaoyQX8gIAALly4IP+HEx6jtebChQsEBAR4uilC1Iohc/jVTbzq3LkzWVlZnD9/vvEbJkSlgIAAOnfu7OlmCFErhgz41T209fX1JSwszAOtEkKIpq3JpXSEEELUjQR8IYRoISTgCyFEC2HImbZmSqnzwMlGuFQwYLTVVhqrTfV9nfo4X13PUdv3uXq8q8ddDlRd9qxlkP8PGet8PbXWVRcU0Vq3+B9gpafb4Kk21fd16uN8dT1Hbd/n6vG1OC65sf4+jPYj/x8y1vmcnUNSOib1U4KyfjVWm+r7OvVxvrqeo7bvc/V4I/59GI0RPyP5/5AdQ6d0hGhKlFLJ2kHBKiGMQnr4QtSflZ5ugBDVkR6+EEK0ENLDF0KIFkICvhBCtBAS8IUQooUwZPE0IZoDpdQtwI1AW+ANrfV2z7ZItHTSwxeiFpRSq5VS55RSh+y2j1FKfa+UOqGUmg+gtd6ktb4HmAXc5on2CmFNAr4QtbMWGGO9QSnlDSwHrgf6AlOUUn2tDllYuV8Ij5KAL0QtaK13Atl2m+OBE1rrH7TWJcC7wM3K5Fngv1rr/Y3dViHsSQ5fCPddBWRavc4CEoAHgBFAsFLqd1rrVz3ROCHMJOAL0UC01i8BL3m6HUKYSUpHCPedBrpYve5cuU0IQ5GAL4T79gE9lVJhSik/4HZgs4fbJEQVEvCFqAWl1DvA10C4UipLKTVDa10GzAa2AUeB97TWhz3ZTiEckeJpQgjRQkgPXwghWggJ+EII0UJIwBdCiBZCAr4QQrQQEvCFEKKFkIAvhBAthAR8IYRoISTgCyFECyEBXwghWoj/D3aaO7Pwk0a2AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - } - } - ], - "metadata": {} + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import ogip.lc\n", + "lc = ogip.lc.Rate('crab.lc')\n", + "lc.to_fits('crab_ogip.lc')" + ] } ], "metadata": { - "orig_nbformat": 4, + "interpreter": { + "hash": "6c0c14c3bc85a7c6c1cb359b38aedade0f64d7248b8647c7b1bd974c3ac87f4c" + }, + "kernelspec": { + "display_name": "Python 3.8.11 64-bit ('3.8.11': pyenv)", + "name": "python3" + }, "language_info": { - "name": "python", - "version": "3.8.11", - "mimetype": "text/x-python", "codemirror_mode": { "name": "ipython", "version": 3 }, - "pygments_lexer": "ipython3", + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3.8.11 64-bit ('3.8.11': pyenv)" + "pygments_lexer": "ipython3", + "version": "3.8.11" }, - "interpreter": { - "hash": "6c0c14c3bc85a7c6c1cb359b38aedade0f64d7248b8647c7b1bd974c3ac87f4c" - } + "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 -} \ No newline at end of file +}