I/O Utilities¶
Serialization of NLSQ and MCMC results to JSON, NPZ, and diagnostic
output formats. The heterodyne.optimization.cmc.io module
provides additional shard-level CMC I/O; see CMC (Bayesian).
JSON Utilities¶
JSON-safe serialization helpers for JAX arrays, NumPy scalars, and custom result types.
JSON serialization utilities for JAX arrays and numpy types.
- heterodyne.io.json_utils.json_safe(obj)[source]
Convert object to JSON-serializable form.
Handles: - JAX arrays -> lists - numpy arrays -> lists - numpy scalars -> Python scalars - complex numbers -> {“real”: …, “imag”: …} dicts - Path objects -> strings - datetime -> ISO format strings - Nested dicts/lists recursively
- heterodyne.io.json_utils.json_serializer(obj)[source]
Serialize object to JSON string with pretty formatting.
- heterodyne.io.json_utils.load_json(path)[source]
Load JSON file.
NLSQ Writers¶
Writers for NLSQ optimization results.
- heterodyne.io.nlsq_writers.save_nlsq_json_files(result, output_dir, prefix='nlsq')[source]
Save NLSQ results to JSON files.
Creates: - {prefix}_parameters.json: Fitted parameter values and uncertainties - {prefix}_metadata.json: Fit statistics and convergence info
- heterodyne.io.nlsq_writers.save_nlsq_npz_file(result, output_path, include_residuals=True, include_jacobian=False, c2_exp=None)[source]
Save NLSQ results to compressed NPZ file.
NPZ format is efficient for large arrays (correlation matrices, residuals).
- Parameters:
result (
NLSQResult) – NLSQ fitting resultinclude_residuals (
bool) – Whether to include residual arrayinclude_jacobian (
bool) – Whether to include Jacobian matrix (large)c2_exp (
ndarray|None) – Experimental correlation data used to computeresiduals_normalized = residuals / (0.05 * c2_exp). Saved alongside raw residuals when provided.
- Return type:
- Returns:
Path to saved file
- heterodyne.io.nlsq_writers.load_nlsq_npz_file(path)[source]
Load NLSQResult from an NPZ file saved by
save_nlsq_npz_file.- Parameters:
- Return type:
NLSQResult- Returns:
Reconstructed NLSQResult with available fields.
- Raises:
FileNotFoundError – If path does not exist.
MCMC Writers¶
Writers for MCMC/CMC analysis results.
- heterodyne.io.mcmc_writers.save_mcmc_results(result, output_dir, prefix='mcmc')[source]
Save MCMC/CMC results to files.
Creates: - {prefix}_summary.json: Parameter summaries with credible intervals - {prefix}_diagnostics.json: Convergence diagnostics (R-hat, ESS) - {prefix}_samples.npz: Full posterior samples (compressed)
- heterodyne.io.mcmc_writers.save_mcmc_diagnostics(result, output_path, r_hat_threshold=1.1, min_bfmi=0.3)[source]
Save MCMC convergence diagnostics.