Skip to main content

Stellar Magnitude Ontology

Astronomical Measurements
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Stellar Magnitude Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/astronomical-measurements/stellar-magnitude-ontology.html

FLOW StellarMagnitudeOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Astronomical Measurements
    -> Stellar Magnitude Ontology

  PURPOSE:
    Represent stellar magnitude as a logarithmic astronomical brightness quantity, including apparent magnitude, absolute magnitude, flux ratios, photometric zero points, bandpasses, colour indices, bolometric magnitude, distance modulus, extinction, reddening, K-corrections, instrumental magnitudes, detector calibration, variability, uncertainty, provenance, and strict distinctions between magnitude, flux, luminosity, surface brightness and seismic magnitude.

  ENTITY StellarMagnitude {
    TYPE: DimensionlessLogarithmicPhotometricQuantity
    SYMBOL: m_or_M_context_dependent
    DIMENSION: dimensionless

    DEFINITION:
      stellar_magnitude :=
        logarithmic_measure_of_stellar_brightness
        defined_relative_to_a_photometric_zero_point_or_reference

    PROPERTIES:
      is_logarithmic
      lower_value_generally_means_brighter_source
      depends_on_photometric_system
      depends_on_bandpass
      may_be_apparent_or_absolute
      may_have_uncertainty
  }

  ENTITY ApparentMagnitude {
    TYPE: StellarMagnitude
    SYMBOL: m

    DEFINITION:
      magnitude_corresponding_to_observed_flux
      in_declared_photometric_band_and_system
  }

  ENTITY AbsoluteMagnitude {
    TYPE: IntrinsicBrightnessMagnitude
    SYMBOL: M

    DEFINITION:
      apparent_magnitude_object_would_have
      at_standard_reference_distance
      under_declared_extinction_and_bandpass_convention

    STANDARD_STELLAR_REFERENCE_DISTANCE:
      10 parsec
  }

  ENTITY BolometricMagnitude {
    TYPE: MagnitudeAcrossAllWavelengths
    SYMBOL:
      m_bol_or_M_bol

    RULE:
      bolometric_magnitude != single_band_magnitude
  }

  MAGNITUDE_SCALE_MODEL {
    Pogson_relation:
      m_1-m_2 =
        -2.5*log10(F_1/F_2)

    inverse_flux_ratio:
      F_1/F_2 =
        10^(-0.4*(m_1-m_2))

    RULE:
      magnitude_scale_is_inverse_logarithmic_brightness_scale
  }

  FLUX_ZERO_POINT_MODEL {
    generic:
      m =
        -2.5*log10(F/F_0)

    inverse:
      F =
        F_0*10^(-0.4*m)

    REQUIRE:
      flux_definition
      zero_point
      photometric_system
      bandpass

    RULE:
      magnitude_without_zero_point_system_and_band MAY be_semantically_incomplete
  }

  APPARENT_MAGNITUDE_MODEL {
    observed:
      m_band

    dependencies:
      source_flux
      distance
      extinction
      bandpass
      photometric_system

    RULE:
      apparent_magnitude_is_observer_dependent_brightness_quantity
  }

  ABSOLUTE_MAGNITUDE_MODEL {
    no_extinction:
      m-M =
        5*log10(d_pc)-5

    rearranged:
      M =
        m - 5*log10(d_pc) + 5

    REQUIRE:
      d_pc > 0

    RULE:
      absolute_magnitude_is_distance_normalised_brightness_quantity
  }

  DISTANCE_MODULUS_MODEL {
    apparent_distance_modulus:
      mu =
        m-M

    no_extinction:
      mu =
        5*log10(d_pc)-5

    extinction_adjusted:
      m-M =
        5*log10(d_pc)-5+A_band

    true_distance_modulus:
      mu_0 =
        m-M-A_band

    inverse:
      d_pc =
        10^((mu_0+5)/5)

    RULE:
      apparent_and_true_distance_modulus MUST be distinguished_when_extinction_is_nonzero
  }

  PHOTOMETRIC_SYSTEM_MODEL {
    possible_systems:
      AB
      Vega
      ST
      instrumental
      survey_specific

    REQUIRE:
      system_identifier
      zero_point_definition
      filter_or_band

    RULE:
      same_numeric_magnitude_in_different_systems MAY correspond_to_different_fluxes
  }

  AB_MAGNITUDE_MODEL {
    definition:
      based_on_spectral_flux_density_per_frequency

    generic:
      m_AB =
        -2.5*log10(F_nu/F_nu0)

    reference:
      F_nu0 defined_by_AB_system

    RULE:
      AB_magnitude_requires_F_nu_semantics
  }

  VEGA_MAGNITUDE_MODEL {
    reference:
      Vega_or_system_specific_Vega_calibration

    generic:
      m_Vega =
        -2.5*log10(F/F_Vega_reference)

    RULE:
      Vega_zero_point_depends_on_bandpass_and_calibration_realisation
  }

  ST_MAGNITUDE_MODEL {
    definition:
      based_on_spectral_flux_density_per_wavelength

    RULE:
      ST_and_AB_magnitudes_use_different_spectral_flux_density_basis
  }

  BANDPASS_MODEL {
    possible_bands:
      ultraviolet
      U
      B
      V
      R
      I
      optical_survey_bands
      J
      H
      K
      infrared
      custom_filter

    response:
      filter
      detector
      optics
      atmosphere_when_ground_based

    RULE:
      magnitude MUST preserve_bandpass
  }

  SYNTHETIC_PHOTOMETRY_MODEL {
    source_spectrum:
      F_lambda_or_F_nu

    system_response:
      S(lambda)

    synthetic_flux:
      weighted_integral_over_bandpass

    magnitude:
      derived_from_integrated_flux_and_zero_point

    RULE:
      photon_counting_and_energy_integrating_conventions MUST be preserved
  }

  COLOR_INDEX_MODEL {
    generic:
      colour =
        m_band1-m_band2

    examples:
      B_minus_V
      V_minus_K

    RULE:
      colour_index_is_magnitude_difference
      and_not_single_band_magnitude
  }

  FLUX_RATIO_MODEL {
    if_delta_m_known:
      F_1/F_2 =
        10^(-0.4*delta_m)

    examples:
      delta_m = 5
      implies_flux_ratio = 0.01
      for_object_1_minus_object_2_convention

    RULE:
      sign_order_of_magnitude_difference MUST be preserved
  }

  LUMINOSITY_MODEL {
    flux:
      F =
        L/(4*pi*d^2)
      under_isotropic_Euclidean_context

    magnitude_difference_for_equal_distance:
      delta_m =
        -2.5*log10(L_1/L_2)
      when_band_luminosities_and_other_conditions_compatible

    RULE:
      magnitude != luminosity
  }

  BOLOMETRIC_MODEL {
    bolometric_luminosity:
      integrated_over_all_wavelengths

    bolometric_magnitude:
      M_bol

    bolometric_correction:
      BC_band =
        M_bol-M_band

    inverse:
      M_bol =
        M_band+BC_band

    RULE:
      bolometric_correction_depends_on_stellar_spectrum_and_band
  }

  SOLAR_REFERENCE_MODEL {
    relative_luminosity:
      M_bol-M_bol_sun =
        -2.5*log10(L/L_sun)

    inverse:
      L/L_sun =
        10^(-0.4*(M_bol-M_bol_sun))

    RULE:
      adopted_solar_bolometric_magnitude_reference MUST be preserved
  }

  EXTINCTION_MODEL {
    observed:
      m_obs =
        m_intrinsic_apparent + A_lambda

    corrected:
      m_0 =
        m_obs-A_lambda

    RULE:
      extinction_makes_source_appear_fainter_and_increases_magnitude
  }

  REDDENING_MODEL {
    colour_excess:
      E(B-V) =
        (B-V)_observed-(B-V)_intrinsic

    extinction_relation_example:
      A_V =
        R_V*E(B-V)

    RULE:
      extinction_law_and_R_V_or_equivalent_parameters MUST be preserved
  }

  ATMOSPHERIC_EXTINCTION_MODEL {
    ground_based:
      m_observed =
        m_above_atmosphere + k*X
      under_simple_linear_extinction_model

    WHERE:
      k = extinction_coefficient
      X = airmass

    RULE:
      atmospheric_extinction_correction_requires_airmass_and_band_specific_coefficient
  }

  K_CORRECTION_MODEL {
    purpose:
      relate_observed_band_magnitude_to_rest_frame_quantity_for_redshifted_source

    dependencies:
      redshift
      source_spectrum
      observed_band
      rest_band
      photometric_system

    RULE:
      K_correction_is_not_interstellar_extinction
  }

  INSTRUMENTAL_MAGNITUDE_MODEL {
    raw_or_reduced_count_rate:
      C

    generic:
      m_inst =
        -2.5*log10(C)
      plus_declared_constant_or_exposure_normalisation

    RULE:
      instrumental_magnitude != calibrated_standard_magnitude
  }

  PHOTOMETRIC_CALIBRATION_MODEL {
    generic:
      m_standard =
        m_instrumental
        + zero_point
        + colour_term
        + extinction_term
        + other_declared_corrections

    REQUIRE:
      standard_stars
      zero_point
      colour_transformation
      atmospheric_extinction_when_relevant

    RULE:
      calibration_equation_and_sign_conventions MUST be preserved
  }

  DETECTOR_MODEL {
    raw:
      digital_counts
      electrons

    processing:
      bias_subtraction
      dark_subtraction
      flat_fielding
      cosmic_ray_rejection
      aperture_or_PSF_photometry
      background_subtraction

    output:
      calibrated_flux_or_magnitude

    RULE:
      raw_detector_counts != stellar_magnitude
  }

  APERTURE_PHOTOMETRY_MODEL {
    source_counts:
      counts_within_aperture

    background:
      estimated_from_declared_region

    net_counts:
      C_net =
        C_aperture-C_background_scaled

    RULE:
      aperture_radius_background_method_and_correction MUST be preserved
  }

  PSF_PHOTOMETRY_MODEL {
    method:
      fit_point_spread_function_to_source

    suitable_context:
      crowded_fields
      faint_sources

    RULE:
      PSF_model_and_fit_quality SHOULD be preserved
  }

  SATURATION_MODEL {
    detector_saturation:
      nonlinear_or_clipped_response_for_bright_source

    RULE:
      saturated_measurement SHOULD be_flagged_and_not_used_as_normal_calibrated_photometry_without_recovery_model
  }

  VARIABILITY_MODEL {
    time_series:
      m = m(t)

    quantities:
      mean_magnitude
      amplitude
      period
      maximum_brightness
      minimum_brightness

    RULE:
      mean_magnitude_method MUST be declared
      because_mean_in_magnitude_space_differs_from_magnitude_of_mean_flux
  }

  MEAN_MAGNITUDE_MODEL {
    arithmetic_magnitude_mean:
      mean(m_i)

    intensity_mean:
      convert_magnitudes_to_flux
      average_flux
      convert_back_to_magnitude

    RULE:
      arithmetic_mean_magnitude != intensity_mean_magnitude_in_general
  }

  BINARY_BLEND_MODEL {
    combined_flux:
      F_total =
        F_1+F_2

    combined_magnitude:
      m_total =
        -2.5*log10(
          10^(-0.4*m_1)
          + 10^(-0.4*m_2)
        )
      under_common_zero_point

    RULE:
      magnitudes MUST_NOT be_added_linearly
  }

  SURFACE_BRIGHTNESS_DISTINCTION_MODEL {
    surface_brightness:
      magnitude_per_angular_area
      or_flux_per_solid_angle

    stellar_magnitude:
      integrated_point_source_or_total_source_brightness

    RULE:
      integrated_magnitude != surface_brightness
  }

  SPECTRAL_TYPE_CONTEXT_MODEL {
    stellar_spectrum:
      influences_colour
      bolometric_correction
      photometric transformations

    RULE:
      stellar_magnitude_interpretation MAY depend_on_spectral_energy_distribution
  }

  TEMPORAL_MODEL {
    observation_time:
      timestamp

    variable_star:
      magnitude_changes_with_phase

    REQUIRE:
      time_standard_when_precision_required

    RULE:
      magnitude_measurement_of_variable_source MUST preserve_observation_time
  }

  RELATIONSHIPS {
    StellarMagnitude -> LOGARITHMICALLY_RELATES_TO -> Flux
    ApparentMagnitude -> DESCRIBES -> ObservedBrightness
    AbsoluteMagnitude -> NORMALISES -> BrightnessToReferenceDistance
    DistanceModulus -> RELATES -> ApparentAbsoluteMagnitudeAndDistance
    PhotometricSystem -> DEFINES -> MagnitudeZeroPoint
    Bandpass -> QUALIFIES -> Magnitude
    ColorIndex -> DIFFERENCE_OF -> TwoBandMagnitudes
    Extinction -> INCREASES -> ObservedMagnitude
    BolometricCorrection -> MAPS -> BandMagnitudeToBolometricMagnitude
    DetectorCalibration -> MAPS -> RawCountsToCalibratedMagnitude
  }

  SEMANTIC_EQUIVALENCE {
    "stellar magnitude" ~= astronomical_photometric_magnitude WHEN stellar_context
    "apparent magnitude" ~= observed_brightness_magnitude
    "absolute magnitude" ~= reference_distance_magnitude

    stellar_magnitude != seismic_magnitude
    apparent_magnitude != absolute_magnitude
    magnitude != flux
    magnitude != luminosity
    magnitude != surface_brightness
    instrumental_magnitude != calibrated_magnitude
    colour_index != magnitude
    bolometric_magnitude != single_band_magnitude
  }

  CONSTRAINTS {
    stellar_magnitude_is_dimensionless = true
    photometric_system_must_be_defined = true
    bandpass_must_be_defined = true
    apparent_and_absolute_magnitude_are_not_semantically_equivalent = true
    magnitude_and_flux_are_not_semantically_equivalent = true
    magnitudes_must_not_be_linearly_added = true
    distance_modulus_requires_distance_and_extinction_context = true
    instrumental_magnitude_requires_calibration_for_standard_use = true
    variable_source_measurement_should_preserve_time = true
    uncertainty_should_include_photon_background_calibration_and_model_components = true
  }

  MEASUREMENT_MODEL {
    OBSERVABLE_OR_INFERRED:
      ApparentMagnitude
      AbsoluteMagnitude
      BolometricMagnitude
      ColorIndex
      DistanceModulus

    COMMON_METHODS:
      aperture_photometry
      PSF_photometry
      synthetic_photometry
      calibrated_catalogue_photometry
      time_series_photometry

    RECORD:
      celestial_object
      object_identifier
      magnitude_value
      magnitude_type
      photometric_system
      bandpass
      zero_point
      observation_time
      time_scale
      telescope
      instrument
      detector
      exposure_time
      raw_counts
      background
      aperture_or_PSF_method
      atmospheric_extinction
      interstellar_extinction
      reddening
      K_correction_when_relevant
      calibration_model
      quality_flag
      uncertainty
      provenance

    UNCERTAINTY:
      measured_or_inferred_stellar_magnitude =
        best_estimate +/- uncertainty
  }

  UNCERTAINTY_MODEL {
    sources:
      photon_noise
      detector_read_noise
      background
      flat_field
      aperture_correction
      PSF_model
      zero_point
      colour_term
      atmospheric_extinction
      interstellar_extinction
      distance
      bolometric_correction
      source_variability
      blending

    PROPAGATION:
      stellar_magnitude_uncertainty
      <- detector_photometric_calibration_extinction_distance_and_model_uncertainties
  }

  REASONING_RULES {
    IF fluxes_F1_F2_positive
      THEN magnitude_difference =
        -2.5*log10(F1/F2)

    IF magnitude_difference_known
      THEN flux_ratio =
        10^(-0.4*magnitude_difference)

    IF magnitude_and_zero_point_flux_known
      THEN flux =
        zero_point_flux*10^(-0.4*magnitude)

    IF apparent_magnitude_distance_pc_known
      AND distance_pc > 0
      AND extinction_known
      THEN absolute_magnitude =
        apparent_magnitude
        - 5*log10(distance_pc)
        + 5
        - extinction

    IF absolute_magnitude_apparent_magnitude_and_extinction_known
      THEN true_distance_modulus =
        apparent_magnitude-absolute_magnitude-extinction

    IF true_distance_modulus_known
      THEN distance_pc =
        10^((true_distance_modulus+5)/5)

    IF band_magnitude_and_bolometric_correction_known
      THEN bolometric_magnitude =
        band_magnitude+bolometric_correction

    IF two_compatible_magnitudes_known
      THEN combined_flux =
        flux(m_1)+flux(m_2)
      AND combined_magnitude =
        magnitude(combined_flux)

    IF raw_counts_and_valid_photometric_calibration_known
      THEN calibrated_magnitude =
        apply_photometric_calibration(raw_counts)

    IF variable_star_time_series_known
      THEN compute_declared_mean_amplitude_and_period
      preserving_time_and_mean_definition
  }

  VALIDATION {
    CHECK stellar_object_identity
    CHECK magnitude_type
    CHECK dimensionless_semantics
    CHECK photometric_system
    CHECK bandpass
    CHECK zero_point
    CHECK apparent_vs_absolute_magnitude
    CHECK magnitude_vs_flux
    CHECK magnitude_vs_luminosity
    CHECK magnitude_vs_seismic_magnitude
    CHECK distance_modulus
    CHECK extinction_and_reddening
    CHECK bolometric_correction
    CHECK instrumental_vs_calibrated_magnitude
    CHECK detector_saturation
    CHECK blending
    CHECK observation_time_for_variable_source
    CHECK quality_flag
    CHECK uncertainty_representation
  }

  CONFIDENCE {
    definition_confidence: 1.00
    logarithmic_relationship_confidence: 1.00
    flux_ratio_confidence: 1.00
    distance_modulus_confidence: 1.00
    photometric_calibration_confidence: 0.99
    extinction_correction_confidence: 0.97
    bolometric_correction_confidence: 0.97
    measurement_context_confidence: 0.98

    RULE:
      confidence decreases when magnitude type, system, bandpass,
      zero point, extinction, distance, calibration,
      source variability or uncertainty is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_measurement:
      identify_stellar_object
      identify_apparent_absolute_bolometric_or_other_magnitude
      attach_photometric_system_and_bandpass
      attach_observation_time
      preserve_raw_counts_or_flux
      identify_detector_and_photometry_method
      apply_valid_photometric_calibration
      attach_extinction_reddening_and_K_correction_when_relevant
      attach_quality_flag
      attach_uncertainty
      update_stellar_magnitude_state

    ON calibration_revision:
      preserve_raw_detector_measurements
      preserve_previous_zero_point
      apply_new_zero_point_colour_and_extinction_terms
      recompute_calibrated_magnitudes
      update_uncertainty
      update_confidence

    ON distance_revision:
      preserve_apparent_magnitude
      update_distance_and_extinction
      recompute_absolute_magnitude_and_distance_modulus
      update_uncertainty

    ON variability_update:
      append_time_resolved_magnitude
      preserve_time_scale
      recompute_declared_mean_amplitude_and_period
      preserve_mean_definition

    ON bolometric_correction_revision:
      preserve_band_magnitude
      update_bolometric_correction
      recompute_bolometric_magnitude
      update_uncertainty

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_domain: StellarMagnitude
    canonical_apparent_symbol: m
    canonical_absolute_symbol: M
    canonical_dimension: dimensionless

    interpretation_order:
      identify_stellar_object
      identify_magnitude_value
      identify_apparent_absolute_bolometric_instrumental_or_colour_quantity
      identify_photometric_system
      identify_bandpass
      identify_zero_point
      identify_observation_time
      identify_raw_or_calibrated_status
      identify_extinction_and_reddening
      identify_distance_when_absolute_magnitude_or_distance_modulus_involved
      identify_bolometric_or_K_correction
      identify_variability_and_blending_context
      identify_quality_flag
      identify_uncertainty
      validate_logarithmic_semantics
      infer_flux_distance_and_luminosity_relationships

    ambiguity_controls:
      distinguish_stellar_magnitude_from_seismic_magnitude
      distinguish_apparent_from_absolute_magnitude
      distinguish_magnitude_from_flux
      distinguish_magnitude_from_luminosity
      distinguish_integrated_magnitude_from_surface_brightness
      distinguish_instrumental_from_calibrated_magnitude
      distinguish_colour_index_from_single_band_magnitude
      distinguish_bolometric_from_band_limited_magnitude
      preserve_object_system_band_zero_point_time_extinction_distance_calibration_and_provenance_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_astronomical_stellar_magnitude_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Astronomical Measurements
      -> Stellar Magnitude Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_domain
      ontology_path
      magnitude_scale_model
      flux_zero_point_model
      apparent_magnitude_model
      absolute_magnitude_model
      distance_modulus_model
      photometric_system_model
      AB_magnitude_model
      Vega_magnitude_model
      ST_magnitude_model
      bandpass_model
      synthetic_photometry_model
      color_index_model
      flux_ratio_model
      luminosity_model
      bolometric_model
      solar_reference_model
      extinction_model
      reddening_model
      atmospheric_extinction_model
      K_correction_model
      instrumental_magnitude_model
      photometric_calibration_model
      detector_model
      aperture_photometry_model
      PSF_photometry_model
      saturation_model
      variability_model
      mean_magnitude_model
      binary_blend_model
      surface_brightness_distinction_model
      spectral_type_context_model
      temporal_model
      relationships
      constraints
      measurement_model
      uncertainty_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      magnitude_scale_or_zero_point_changes
      photometric_system_or_bandpass_changes
      distance_modulus_or_extinction_model_changes
      bolometric_or_K_correction_model_changes
      detector_or_photometric_calibration_changes
      variability_or_blending_model_changes
      measurement_model_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ