RmfData#

class jinwu.core.RmfData(path: Path, header: Dict[str, Any], meta: Any, headers_dump: Any, energ_lo: np.ndarray = <factory>, energ_hi: np.ndarray = <factory>, n_grp: Optional[np.ndarray] = None, f_chan: Optional[np.ndarray] = None, n_chan: Optional[np.ndarray] = None, matrix: np.ndarray = <factory>, channel: Optional[np.ndarray] = None, e_min: Optional[np.ndarray] = None, e_max: Optional[np.ndarray] = None, columns: Tuple[str, ...] = ())[source]#

Bases: RmfBase

Concrete RMF data class with local behavior implementation.

Attributes Summary

Methods Summary

get_keyword_ci(key[, default])

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

plot([ax, kind, row, yscale, cmap, title])

rebin(factor)

rebuild_dense()

validate()

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

Attributes Documentation

REQUIRED_COLUMNS_ARF = ['ENERG_LO', 'ENERG_HI', 'SPECRESP']#
REQUIRED_COLUMNS_RMF_MIN = ['ENERG_LO', 'ENERG_HI', 'MATRIX']#
REQUIRED_KEYS_ANY = [['TELESCOP'], ['INSTRUME'], ['DETNAM', 'DETNAME']]#
channel: ndarray | None#
columns: Tuple[str, ...]#
dense_matrix#
e_max: ndarray | None#
e_min: ndarray | None#
energ_hi: ndarray#
energ_lo: ndarray#
f_chan: ndarray | None#
header: Dict[str, Any]#
headers_dump: Any#
kind: ClassVar[Literal['rmf']] = 'rmf'#
matrix: ndarray#
meta: Any#
n_chan: ndarray | None#
n_grp: ndarray | None#
path: Path#
validation#

Methods Documentation

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

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

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

plot(ax: Any | None = None, *, kind: str = 'matrix', row: int = 0, yscale: str = 'linear', cmap: str = 'viridis', title: str | None = None, **kwargs)[source]#
rebin(factor: int) RmfData[source]#
rebuild_dense() ndarray[source]#
validate() ValidationReport[source]#

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