PhaData#

class jinwu.core.PhaData(path: Path, header: Dict[str, Any], meta: Any, headers_dump: Any, channels: np.ndarray = <factory>, counts: np.ndarray = <factory>, rate: Optional[np.ndarray] = None, stat_err: Optional[np.ndarray] = None, exposure: float = 0.0, backscal: Optional[float] = None, areascal: Optional[float] = None, respfile: Optional[str] = None, ancrfile: Optional[str] = None, quality: Optional[np.ndarray] = None, grouping: Optional[np.ndarray] = None, ebounds: Optional[Tuple[np.ndarray, np.ndarray, np.ndarray]] = None, raw_spectrum_columns: Optional[Dict[str, np.ndarray]] = None, columns: Tuple[str, ...] = ())[source]#

Bases: PhaBase

Concrete PHA data class with local behavior implementation.

Attributes Summary

Methods Summary

get_keyword_ci(key[, default])

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

group_by_min_counts(min_counts)

grppha(*[, min_counts, groupfile, rebin, ...])

plot(**kwargs)

rebin(*[, factor, min_counts])

slice(*[, emin, emax, ch_lo, ch_hi])

validate()

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

Attributes Documentation

OPTIONAL_KEYS = ['FILTER', 'EXPOSURE', 'BACKSCAL', 'AREASCAL', 'RESPFILE', 'ANCRFILE', 'CORRFILE', 'CORRSCAL']#
OPTIONAL_RATE_COLUMNS = ['COUNTS', 'RATE']#
REQUIRED_COLUMNS = ['CHANNEL']#
REQUIRED_KEYS = ['TELESCOP', 'INSTRUME', 'CHANTYPE']#
ancrfile: str | None#
areascal: float | None#
backscal: float | None#
channels: ndarray#
columns: Tuple[str, ...]#
count_rate#
counts: ndarray#
ebounds: Tuple[ndarray, ndarray, ndarray] | None#
exposure: float#
grouping: ndarray | None#
header: Dict[str, Any]#
headers_dump: Any#
kind: ClassVar[Literal['pha']] = 'pha'#
meta: Any#
path: Path#
quality: ndarray | None#
rate: ndarray | None#
raw_spectrum_columns: Dict[str, ndarray] | None#
respfile: str | None#
stat_err: ndarray | None#
validation#

Methods Documentation

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

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

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

group_by_min_counts(min_counts: float) ndarray[source]#
grppha(*, min_counts: float | None = None, groupfile: str | None = None, rebin: bool = False, outfile: str | None = None, overwrite: bool = False) PhaData[source]#
plot(**kwargs)[source]#
rebin(*, factor: int | None = None, min_counts: float | None = None) PhaData[source]#
slice(*, emin: float | None = None, emax: float | None = None, ch_lo: int | None = None, ch_hi: int | None = None) PhaData[source]#
validate() ValidationReport[source]#

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