jwspecabund.result

Abundance result containers.

Dataclasses holding the output of direct T_e, forward model, and strong-line abundance calculations, including optional MCMC posterior arrays.

Classes

AbundanceResult(method, OH, OH_err[, NO, ...])

Container for a chemical abundance measurement.

class jwspecabund.result.AbundanceResult(method, OH, OH_err, NO=None, NO_err=None, CO=None, CO_err=None, Te_high=None, Te_high_err=None, Te_low=None, Te_low_err=None, ne=None, Av=None, Av_err=None, Av_posterior=None, ionic=None, OH_posterior=None, NO_posterior=None, CO_posterior=None, ratios_used=None, chi2=None, SO=None, SO_err=None, NeO=None, NeO_err=None, ArO=None, ArO_err=None, logU=None, logU_err=None, ne_low=None, ne_mid=None, ne_high=None, icf_method=None, NO_icf_name=None, lya_f_esc=None, lya_f_esc_err=None, lya_f_esc_posterior=None, lya_f_esc_details=None, excluded_lines=None, ionic_upper_limits=None, ionic_ul_details=None, NO_tiers=None, icf_values=None, failures=None, diagnostics=None, alt_results=None, _forward_result=None)[source]

Bases: object

Container for a chemical abundance measurement.

Parameters:
  • method (str) – "direct", "forward", or "strong_line".

  • OH (float) – 12 + log(O/H).

  • OH_err (float or tuple of float) – Symmetric error or (lo, hi) 68 % CI half-widths.

  • NO (float or None) – log(N/O), if nitrogen lines available.

  • NO_err (float or tuple of float or None) – Error on log(N/O).

  • CO (float or None) – log(C/O), if UV lines present.

  • CO_err (float or tuple of float or None) – Error on log(C/O).

  • Te_high (float or None) – T_e(O++) in K (direct method only).

  • Te_low (float or None) – T_e(O+/N+) in K (direct method only).

  • ne (float or None) – Electron density in cm^-3 (direct method only).

  • Av (float or None) – Dust attenuation A_V.

  • ionic (dict or None) – Ionic abundance dict, e.g. {"O+/H+": val, "O++/H+": val, ...}.

  • OH_posterior (np.ndarray or None) – Full posterior samples of 12+log(O/H) (MCMC input).

  • NO_posterior (np.ndarray or None) – Full posterior samples of log(N/O).

  • CO_posterior (np.ndarray or None) – Full posterior samples of log(C/O).

  • ratios_used (list of str or None) – Diagnostic ratios used (strong-line method).

  • chi2 (float or None) – Goodness-of-fit chi-squared (strong-line method).

  • SO (float or None) – log(S/O) if [SII] and [SIII] available.

  • NeO (float or None) – log(Ne/O) if [NeIII] available.

  • ArO (float or None) – log(Ar/O) if [ArIII] available.

  • excluded_lines (list of str or None) – Line names excluded by the per-line SNR filter.

  • failures (dict or None) – Reasons why specific abundance ratios could not be computed, e.g. {"N/O": "no nitrogen ions detected"}.

  • Te_high_err (float | tuple[float, float] | None)

  • Te_low_err (float | tuple[float, float] | None)

  • Av_err (float | None)

  • Av_posterior (ndarray | None)

  • SO_err (float | tuple[float, float] | None)

  • NeO_err (float | tuple[float, float] | None)

  • ArO_err (float | tuple[float, float] | None)

  • logU (float | None)

  • logU_err (float | tuple[float, float] | None)

  • ne_low (float | None)

  • ne_mid (float | None)

  • ne_high (float | None)

  • icf_method (str | None)

  • NO_icf_name (str | None)

  • lya_f_esc (float | None)

  • lya_f_esc_err (float | tuple[float, float] | None)

  • lya_f_esc_posterior (ndarray | None)

  • lya_f_esc_details (dict | None)

  • ionic_upper_limits (dict[str, float] | None)

  • ionic_ul_details (dict[str, dict] | None)

  • NO_tiers (dict[str, float] | None)

  • icf_values (dict[str, dict] | None)

  • diagnostics (dict[str, str] | None)

  • alt_results (dict[str, AbundanceResult] | None)

  • _forward_result (dict[str, Any] | None)

ArO: float | None = None
ArO_err: float | tuple[float, float] | None = None
Av: float | None = None
Av_err: float | None = None
Av_posterior: ndarray | None = None
CO: float | None = None
CO_err: float | tuple[float, float] | None = None
CO_posterior: ndarray | None = None
NO: float | None = None
NO_err: float | tuple[float, float] | None = None
NO_icf_name: str | None = None
NO_posterior: ndarray | None = None
NO_tiers: dict[str, float] | None = None
NeO: float | None = None
NeO_err: float | tuple[float, float] | None = None
OH: float
OH_err: float | tuple[float, float]
OH_posterior: ndarray | None = None
SO: float | None = None
SO_err: float | tuple[float, float] | None = None
Te_high: float | None = None
Te_high_err: float | tuple[float, float] | None = None
Te_low: float | None = None
Te_low_err: float | tuple[float, float] | None = None
alt_results: dict[str, AbundanceResult] | None = None
chi2: float | None = None
diagnostics: dict[str, str] | None = None
excluded_lines: list[str] | None = None
failures: dict[str, str] | None = None
icf_method: str | None = None
icf_values: dict[str, dict] | None = None
ionic: dict[str, float] | None = None
ionic_ul_details: dict[str, dict] | None = None
ionic_upper_limits: dict[str, float] | None = None
logU: float | None = None
logU_err: float | tuple[float, float] | None = None
lya_f_esc: float | None = None
lya_f_esc_details: dict | None = None
lya_f_esc_err: float | tuple[float, float] | None = None
lya_f_esc_posterior: ndarray | None = None
method: str
ne: float | None = None
ne_high: float | None = None
ne_low: float | None = None
ne_mid: float | None = None
ratios_used: list[str] | None = None
summary()[source]

Return a human-readable summary string.

Returns:

Multi-line summary of the abundance measurement, including a diagnostics section explaining how each physical quantity was derived.

Return type:

str