CLI¶
Command-line interface entry points, analysis commands, configuration generation, XLA flag setup, optimization orchestration, and data pipeline management.
Entry Points¶
The following commands are registered as console scripts:
Command |
Short alias |
Purpose |
|---|---|---|
|
|
Main analysis (NLSQ/CMC) |
|
|
Config generation/validation |
|
|
XLA device configuration |
|
|
Shell completion setup |
|
|
Remove shell completion files |
|
|
System validation |
|
— |
Plot experimental data (skip optimization) |
|
— |
Plot simulated C2 heatmaps from config parameters |
Plotting Commands¶
hexp and hsim are standalone plotting entry points that bypass
optimization entirely:
# Inspect experimental data for quality checking
hexp --config config.yaml
# Preview simulated C2 heatmaps with custom scaling
hsim --config config.yaml --contrast 0.3 --offset-sim 1.0
These are equivalent to passing --plot-experimental-data or
--plot-simulated-data to the main heterodyne command.
Main Module¶
Main entry point for heterodyne CLI.
- heterodyne.cli.main.main(argv=None)[source]
Main entry point for heterodyne CLI.
- heterodyne.cli.main.main_hexp()[source]
Entry point for
hexp— plot experimental data.- Return type:
Commands¶
Command dispatch for heterodyne CLI.
- heterodyne.cli.commands.dispatch_command(args)[source]
Dispatch to appropriate analysis command.
Supports
--plot-only(skip optimisation, generate plots from existing results) and--simulate-only(skip optimisation, save simulated data from the configured model).
Config Generator¶
Configuration file generator for heterodyne analysis.
- heterodyne.cli.config_generator.get_template_path()[source]
Get path to master template file.
- Return type:
- Returns:
Path to template YAML
- heterodyne.cli.config_generator.generate_config(output_path, data_path=None, q=None, dt=None, time_length=None, overwrite=False, mode='full')[source]
Generate configuration file from template.
- heterodyne.cli.config_generator.main()[source]
CLI entry point for config generator.
- Return type:
- heterodyne.cli.config_generator.interactive_builder()[source]
Build a configuration dict interactively via sequential prompts.
- heterodyne.cli.config_generator.validate_config(path)[source]
Validate an existing YAML configuration file.
Loads the file, runs schema validation via
validate_config_schema(), and attempts to load it intoConfigManagerto catch structural issues.
XLA Configuration¶
XLA configuration for JAX on CPU.
- heterodyne.cli.xla_config.configure_xla(num_threads=None, disable_jit=False, enable_x64=True)[source]
Configure XLA/JAX environment variables for CPU execution.
MUST be called before importing JAX.
- heterodyne.cli.xla_config.get_cpu_info()[source]
Get CPU information for configuration.
- heterodyne.cli.xla_config.auto_configure()[source]
Automatically configure XLA based on system resources.
Optimization Runner¶
Optimization execution for heterodyne CLI.
Manages NLSQ and CMC fitting runs, including warm-start resolution.
- heterodyne.cli.optimization_runner.run_nlsq(model, c2_data, phi_angles, config_manager, args, output_dir, summary=None, data_phi_angles=None)[source]
Run NLSQ analysis for all phi angles.
- Parameters:
model (
HeterodyneModel) – Configured HeterodyneModel.c2_data (
ndarray) – Correlation data (2D or 3D).config_manager (
ConfigManager) – Configuration manager.args (
Namespace) – CLI arguments.output_dir (
Path) – Output directory for results.summary (
AnalysisSummaryLogger|None) – Optional summary logger for phase tracking.
- Return type:
list[NLSQResult]- Returns:
List of NLSQResult objects, one per phi angle.
- heterodyne.cli.optimization_runner.run_cmc(model, c2_data, phi_angles, config_manager, args, output_dir, nlsq_results=None, summary=None, data_phi_angles=None)[source]
Run CMC Bayesian analysis for all phi angles.
- Parameters:
model (
HeterodyneModel) – Configured HeterodyneModel.c2_data (
ndarray) – Correlation data.config_manager (
ConfigManager) – Configuration manager.args (
Namespace) – CLI arguments.output_dir (
Path) – Output directory.nlsq_results (
list[NLSQResult] |None) – Optional NLSQ results for warm-starting.summary (
AnalysisSummaryLogger|None) – Optional summary logger for phase tracking.
- Return type:
CMCResult- Returns:
Joint multi-phi
CMCResult(homodyne parity). Reflects ONE NUTS inference across all phi angles with shared 14 physics params and per-angle scaling inmean_contrast/std_contrast/mean_offset/std_offsetarrays of lengthn_phi.
- heterodyne.cli.optimization_runner.resolve_nlsq_warmstart(args, output_dir)[source]
Attempt to load previously saved NLSQ results for warm-starting CMC.
Data Pipeline¶
Data loading and validation pipeline for heterodyne CLI.
- heterodyne.cli.data_pipeline.load_and_validate_data(config_manager)[source]
Load and validate XPCS experimental data.
- Parameters:
config_manager (
ConfigManager) – Configuration with data file path.- Return type:
XPCSData- Returns:
Validated XPCSData object.
- Raises:
ValueError – If data validation fails with errors.
- heterodyne.cli.data_pipeline.resolve_phi_angles(args, config_manager, data_phi_angles=None)[source]
Determine phi angles from CLI args or configuration.
Priority: CLI –phi > config scattering.phi_angles > phi_filtering > default [0.0].
- Parameters:
args (
Namespace) – Parsed CLI arguments (may have .phi attribute).config_manager (
ConfigManager) – Configuration manager.data_phi_angles (
ndarray|None) – Actual phi angles present in the loaded data (for phi_filtering). When provided, phi_filtering.target_ranges is applied against these angles instead of falling back to [0.0].
- Return type:
- Returns:
List of phi angles in degrees.
- heterodyne.cli.data_pipeline.prepare_cmc_data(data, phi_angles)[source]
Prepare data for CMC analysis.
Extracts and organizes correlation data for each phi angle.