LightcurveData#

class jinwu.core.LightcurveData(path: Path, header: Dict[str, Any], meta: Any, headers_dump: Any, time: np.ndarray | None = None, time_raw: np.ndarray | None = None, time_rel: np.ndarray | None = None, value: np.ndarray | None = None, timezero: float = 0.0, timezero_obj: Time | None = None, dt: np.ndarray | float | None = None, bin_lo: np.ndarray | None = None, bin_hi: np.ndarray | None = None, bin_width: np.ndarray | None = None, binning: Literal['uniform', 'variable', 'unknown'] = 'unknown', tstart: float | None = None, tseg: float | None = None, error: np.ndarray | None = None, is_rate: bool = False, counts: np.ndarray | None = None, rate: np.ndarray | None = None, counts_err: np.ndarray | None = None, rate_err: np.ndarray | None = None, err_dist: Literal['poisson', 'gauss'] | None = None, gti_start: np.ndarray | None = None, gti_stop: np.ndarray | None = None, quality: np.ndarray | None = None, fracexp: np.ndarray | None = None, backscal: np.ndarray | float | None = None, areascal: np.ndarray | float | None = None, telescop: str | None = None, timesys: str | None = None, mjdref: float | None = None, exposure: float | None = None, bin_exposure: np.ndarray | None = None, region: RegionArea | None = None, columns: Tuple[str, ...] = (), ratio: float | None = None)[source]#

Bases: LightcurveDataBase

Concrete lightcurve data class with local behavior implementation.

Attributes Summary

Methods Summary

apply_gti([inplace])

apply_mask(mask[, inplace, filtered_attrs])

extract_gti(hdul)

Extension point: parse GTI from an opened HDUList and return list of (start, stop) tuples.

get_keyword_ci(key[, default])

大小写不敏感地从 header 中读取关键字(若 header 为 dict).

get_time_object([index])

join(other[, skip_checks])

plot(**kwargs)

rebin(binsize[, method, align_ref, empty_bin])

slice([tmin, tmax])

sort([inplace])

split_by_gti([min_points])

truncate([tmin, tmax])

validate()

通用层:仅检查路径与 header 存在性。子类会扩展。

Attributes Documentation

CRITICAL_KEYS = ['TIMESYS', 'TIMEUNIT']#
OPTIONAL_KEYS = ['OBJECT', 'OBS_ID', 'MJDREF', 'MJDREFI', 'MJDREFF', 'TIMEZERO', 'TREFPOS', 'DATE-OBS']#
REQUIRED_COLUMNS_ANY = [['TIME']]#
REQUIRED_KEYS = ['TELESCOP', 'INSTRUME', 'TIMESYS', 'TIMEUNIT']#
absolute_time#
areascal: ndarray | float | None#
backscal: ndarray | float | None#
bin_centers#
bin_exposure: ndarray | None#
bin_hi: ndarray | None#
bin_lo: ndarray | None#
bin_width: ndarray | None#
binning: Literal['uniform', 'variable', 'unknown']#
columns: Tuple[str, ...]#
counts: ndarray | None#
counts_err: ndarray | None#
dt: ndarray | float | None#
err_dist: Literal['poisson', 'gauss'] | None#
error: ndarray | None#
exposure: float | None#
fracexp: ndarray | None#
gti#
gti_start: ndarray | None#
gti_stop: ndarray | None#
header: Dict[str, Any]#
headers_dump: Any#
is_rate: bool#
kind: ClassVar[Literal['lc']] = 'lc'#
mean_counts#
mean_rate#
meta: Any#
mjdref: float | None#
n#
path: Path#
quality: ndarray | None#
rate: ndarray | None#
rate_err: ndarray | None#
ratio: float | None#
region: RegionArea | None#
telescop: str | None#
time: ndarray | None#
time_raw: ndarray | None#
time_rel: ndarray | None#
timesys: str | None#
timezero: float#
timezero_obj: Time | None#
total_counts#
tseg: float | None#
tstart: float | None#
validation#
value: ndarray | None#

Methods Documentation

apply_gti(inplace: bool = False) LightcurveData[source]#
apply_mask(mask: ndarray, inplace: bool = False, filtered_attrs: list[str] | None = None) LightcurveData[source]#
extract_gti(hdul: Any) list | None#

Extension point: parse GTI from an opened HDUList and return list of (start, stop) tuples.

Default implementation searches for an extension named ‘GTI’ (case-insensitive) and, if present, returns a list of (START, STOP) pairs. Readers should call this to populate event objects’ GTI field.

get_keyword_ci(key: str, default: Any | None = None) Any#

大小写不敏感地从 header 中读取关键字(若 header 为 dict).

返回关键字值或提供的 default。便于统一处理 FITS 关键字的大小写差异。

get_time_object(index: int | None = None) Any | None[source]#
join(other: LightcurveData, skip_checks: bool = False) LightcurveData[source]#
plot(**kwargs)[source]#
rebin(binsize: float, method: Literal['auto', 'sum', 'mean'] = 'auto', *, align_ref: float | None = None, empty_bin: Literal['zero', 'nan'] = 'zero') LightcurveData[source]#
slice(tmin: float | Any | None = None, tmax: float | Any | None = None) LightcurveData[source]#
sort(inplace: bool = False) LightcurveData[source]#
split_by_gti(min_points: int = 1) list[LightcurveData][source]#
truncate(tmin: float | None = None, tmax: float | None = None) LightcurveData[source]#
validate() ValidationReport[source]#

通用层:仅检查路径与 header 存在性。子类会扩展。