firecrown.fctools.measurement_compatibility

Tool for analyzing measurement compatibility in Firecrown.

This tool provides insights into which measurement pairs are compatible for real-space and harmonic-space two-point correlation functions. Useful for understanding test fixture parameterization and debugging measurement combination issues.

Physical Examples:

Compatible: Galaxy counts × CMB convergence (galaxy-CMB lensing) Compatible: Galaxy shear × Galaxy counts (galaxy-galaxy lensing) Incompatible: ξ₊ × ξ₋ (different correlation function components) Incompatible: E-mode shear in real space (harmonic-space only)

Attributes

app

Classes

Space

Enum for space types.

Functions

discover_measurements_by_space()

Discover all measurements that support real/harmonic space.

generate_compatible_pairs(measurements, compatibility_func)

Generate all valid measurement pairs for a given compatibility function.

print_measurements_by_space(console, ...[, verbose])

Print measurements categorized by space support.

print_compatible_pairs(console, space_name, pairs[, ...])

Print compatible measurement pairs for a given space.

print_efficiency_gains(console, real_measurements, ...)

Print efficiency improvements from using compatible pairs.

print_summary_stats(console, real_measurements, ...)

Print summary statistics.

main([verbose, space, stats_only])

Analyze measurement compatibility for Firecrown two-point functions.

Module Contents

class firecrown.fctools.measurement_compatibility.Space[source]

Bases: str, enum.Enum

Inheritance diagram of firecrown.fctools.measurement_compatibility.Space

Enum for space types.

REAL = 'real'
HARMONIC = 'harmonic'
BOTH = 'both'
firecrown.fctools.measurement_compatibility.discover_measurements_by_space()[source]

Discover all measurements that support real/harmonic space.

Returns:

Tuple of (real_measurements, harmonic_measurements)

Return type:

tuple[list[firecrown.metadata_types.Measurement], list[firecrown.metadata_types.Measurement]]

firecrown.fctools.measurement_compatibility.generate_compatible_pairs(measurements, compatibility_func)[source]

Generate all valid measurement pairs for a given compatibility function.

Args:

measurements: List of measurements to test combinations of compatibility_func: Function to test compatibility

Returns:

List of valid (measurement1, measurement2) tuples

Parameters:
  • measurements (list[firecrown.metadata_types.Measurement])

  • compatibility_func (collections.abc.Callable[[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement], bool])

Return type:

list[tuple[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement]]

firecrown.fctools.measurement_compatibility.print_measurements_by_space(console, real_measurements, harmonic_measurements, verbose=False)[source]

Print measurements categorized by space support.

Parameters:
  • console (rich.console.Console)

  • real_measurements (list[firecrown.metadata_types.Measurement])

  • harmonic_measurements (list[firecrown.metadata_types.Measurement])

  • verbose (bool)

Return type:

None

firecrown.fctools.measurement_compatibility.print_compatible_pairs(console, space_name, pairs, verbose=False)[source]

Print compatible measurement pairs for a given space.

Parameters:
  • console (rich.console.Console)

  • space_name (str)

  • pairs (list[tuple[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement]])

  • verbose (bool)

Return type:

None

firecrown.fctools.measurement_compatibility.print_efficiency_gains(console, real_measurements, real_pairs, harmonic_pairs)[source]

Print efficiency improvements from using compatible pairs.

Parameters:
  • console (rich.console.Console)

  • real_measurements (list[firecrown.metadata_types.Measurement])

  • real_pairs (list[tuple[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement]])

  • harmonic_pairs (list[tuple[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement]])

Return type:

None

firecrown.fctools.measurement_compatibility.print_summary_stats(console, real_measurements, harmonic_measurements, real_pairs, harmonic_pairs)[source]

Print summary statistics.

Parameters:
  • console (rich.console.Console)

  • real_measurements (list[firecrown.metadata_types.Measurement])

  • harmonic_measurements (list[firecrown.metadata_types.Measurement])

  • real_pairs (list[tuple[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement]])

  • harmonic_pairs (list[tuple[firecrown.metadata_types.Measurement, firecrown.metadata_types.Measurement]])

Return type:

None

firecrown.fctools.measurement_compatibility.app
firecrown.fctools.measurement_compatibility.main(verbose=typer.Option(False, '--verbose', '-v', help='Show detailed list of measurements and pairs'), space=typer.Option(Space.BOTH, '--space', case_sensitive=False, help='Which space to analyze'), stats_only=typer.Option(False, '--stats-only', help='Show only summary statistics'))[source]

Analyze measurement compatibility for Firecrown two-point functions.

This tool discovers all measurement types and analyzes which combinations are compatible for real-space and harmonic-space two-point correlation functions. It shows efficiency improvements from using pre-filtered measurement pairs instead of runtime compatibility checks.

Compatible correlations include:

✅ Galaxy counts × Galaxy counts (galaxy clustering) ✅ Galaxy shear × Galaxy shear (cosmic shear) ✅ Galaxy counts × Galaxy shear (galaxy-galaxy lensing) ✅ CMB convergence × Galaxy counts (galaxy-CMB lensing) ✅ Cluster counts × Galaxy counts (cluster-galaxy correlation)

Incompatible combinations:

❌ ξ₊ × ξ₋ (different shear correlation components) ❌ SHEAR_T × SHEAR_T (T-mode auto-correlation not measured) ❌ E-mode shear in real space (harmonic-space only)

Examples:

python -m firecrown.fctools.measurement_compatibility –verbose python -m firecrown.fctools.measurement_compatibility –space real python -m firecrown.fctools.measurement_compatibility –stats-only

Parameters:
  • verbose (bool)

  • space (Space)

  • stats_only (bool)

Return type:

None