{
  "schema": "EQUATION_FUNCTION_SOURCE_MAP_V1",
  "module_sha256": "af4c3056a61716d48c5eb8eec3f1abb67be7dee123d78c6bbc7c6f6cc37322ca",
  "rows": [
    {
      "equation_id": "D01",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "photon_energy",
      "line": 51,
      "end_line": 54,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "module constants / h,c",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "wavelength_m [m]",
      "outputs_and_units": "photon energy [J]",
      "sources": [
        {
          "id": "VERIFICATION-SI-BIPM",
          "title": "BIPM SI defining constants",
          "url": "https://www.bipm.org/en/measurement-units/si-defining-constants",
          "locators": [
            "Defining constant / Numerical value / Unit table, rows c,h,e,k; fixed exact values statement"
          ],
          "access": "Official page inspected22October2026 during verification; no new measured instrument data."
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D02",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "circular_angles",
      "line": 56,
      "end_line": 59,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "etendue and count_tests loops",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "half-angle [rad]",
      "outputs_and_units": "ordinary and projected solid angle [sr]",
      "sources": [
        {
          "id": "DO-OPT-ETENDUE1985",
          "title": "Focal plane optics in far-infrared and submillimeter astronomy",
          "url": "https://ntrs.nasa.gov/api/citations/19860004735/downloads/19860004735.pdf",
          "locators": [
            "printedpp 5-7; equation 1; section 3"
          ],
          "access": "open NASA technicalreport"
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D03",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "square_angles",
      "line": 61,
      "end_line": 68,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "new independent square-field control; original36rows are circular",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "diagonal half-angle [rad]",
      "outputs_and_units": "ordinary/projected square solid angle [sr]",
      "sources": [
        {
          "id": "DO-ELEC-MMIA-ARCH",
          "title": "The Modular Multispectral Imaging Array (MMIA) of the ASIM payload",
          "url": "https://backend.orbit.dtu.dk/ws/files/175725338/The_Modular_Multi.pdf",
          "locators": [
            "section 3.3, printed pp.9-11 and Table 5; section 4.1 p.12"
          ],
          "access": "Primary published author-hosted full manuscript."
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D04",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "counts_from_received_fluence",
      "line": 73,
      "end_line": 75,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "count_tests loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "received photon fluence [ph/m2], area[m2],eta[1],incidence[rad]",
      "outputs_and_units": "detected mean count [1]",
      "sources": [
        {
          "id": "VERIFICATION-SI-BIPM",
          "title": "BIPM SI defining constants",
          "url": "https://www.bipm.org/en/measurement-units/si-defining-constants",
          "locators": [
            "Defining constant / Numerical value / Unit table, rows c,h,e,k; fixed exact values statement"
          ],
          "access": "Official page inspected22October2026 during verification; no new measured instrument data."
        }
      ],
      "related_functions": [
        {
          "function": "aperture_area",
          "line": 70,
          "end_line": 71
        }
      ]
    },
    {
      "equation_id": "D05",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "continuum_rate",
      "line": 77,
      "end_line": 81,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "count_tests loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "radiance[W/m2/sr/nm], band[nm],area[m2],half-field[rad],eta,wavelength[m]",
      "outputs_and_units": "primary detected rate[1/s]",
      "sources": [
        {
          "id": "DO-OPT-ETENDUE1985",
          "title": "Focal plane optics in far-infrared and submillimeter astronomy",
          "url": "https://ntrs.nasa.gov/api/citations/19860004735/downloads/19860004735.pdf",
          "locators": [
            "printedpp 5-7; equation 1; section 3"
          ],
          "access": "open NASA technicalreport"
        }
      ],
      "related_functions": [
        {
          "function": "photon_energy",
          "line": 51,
          "end_line": 54
        },
        {
          "function": "circular_angles",
          "line": 56,
          "end_line": 59
        }
      ]
    },
    {
      "equation_id": "D06",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "etendue_bounds",
      "line": 83,
      "end_line": 89,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "etendue loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "diameter[m],field/filter half-cones[rad]",
      "outputs_and_units": "G[m2sr],areas[m2],diameters[m]",
      "sources": [
        {
          "id": "DO-OPT-ETENDUE1985",
          "title": "Focal plane optics in far-infrared and submillimeter astronomy",
          "url": "https://ntrs.nasa.gov/api/citations/19860004735/downloads/19860004735.pdf",
          "locators": [
            "printedpp 5-7; equation 1; section 3"
          ],
          "access": "open NASA technicalreport"
        },
        {
          "id": "DO-ELEC-MMIA-ARCH",
          "title": "The Modular Multispectral Imaging Array (MMIA) of the ASIM payload",
          "url": "https://backend.orbit.dtu.dk/ws/files/175725338/The_Modular_Multi.pdf",
          "locators": [
            "section 3.3, printed pp.9-11 and Table 5; section 4.1 p.12"
          ],
          "access": "Primary published author-hosted full manuscript."
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D07",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "shifted_center",
      "line": 91,
      "end_line": 93,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "filters loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "wavelength[m],angle[rad],assumed n_eff",
      "outputs_and_units": "conditional centre[m]",
      "sources": [
        {
          "id": "BG057",
          "title": "Standard-air wavelength convention and refractivity arithmetic",
          "url": "https://emtoolbox.nist.gov/Wavelength/Documentation.asp",
          "locators": [
            "NIST refractive-index-of-air/wavelength documentation; standard-air coordinate conversion, not a physical filter-vacuum shift."
          ],
          "access": "Official NIST documentation sections IV, VI, VII and Jones 1981Eq 1/introduction printedp 27 inspected throughbrowser. Wholevolume notdownloaded/read."
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D08",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "gaussian_overlap",
      "line": 98,
      "end_line": 101,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "filters loop / quadrature",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "source/filter sigma[m],centre offset[m]",
      "outputs_and_units": "capture fraction[1]",
      "sources": [
        {
          "id": "own-explicit-Gaussian-derivation",
          "type": "own derivation fully displayed in methods/design_and_diagnostics.md",
          "url": null
        }
      ],
      "related_functions": [
        {
          "function": "sigma_from_fwhm",
          "line": 95,
          "end_line": 96
        },
        {
          "function": "gaussian_overlap_integral",
          "line": 103,
          "end_line": 106
        }
      ]
    },
    {
      "equation_id": "D09",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "gaussian_equivalent_band",
      "line": 108,
      "end_line": 110,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "filters loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "filter sigma[m]",
      "outputs_and_units": "spectral equivalent width[m]",
      "sources": [
        {
          "id": "own-explicit-Gaussian-derivation",
          "type": "own derivation fully displayed in methods/design_and_diagnostics.md",
          "url": null
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D10",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "electrical_enbw_first_order",
      "line": 112,
      "end_line": 114,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "new analytical estimator-width control, not an original table column",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "corner[Hz] or exposure[s] for companion boxcar_enbw",
      "outputs_and_units": "one-sided electrical ENBW[Hz]",
      "sources": [
        {
          "id": "own-explicit-PSD-derivation",
          "type": "own derivation fully displayed in methods/design_and_diagnostics.md",
          "url": null
        },
        {
          "id": "DO-ELEC-SAMPLING-MT002",
          "title": "What the Nyquist criterion means to your sampled data system design",
          "url": "https://www.analog.com/media/en/training-seminars/tutorials/MT-002.pdf",
          "locators": [
            "pp.1, 4-8, Figures 1, 4-7; baseband sampling and antialias filtering"
          ],
          "access": "Official Analog Devices tutorial by Walt Kester; full 12-page PDF, Rev.A 10/08."
        }
      ],
      "related_functions": [
        {
          "function": "boxcar_enbw",
          "line": 116,
          "end_line": 118
        }
      ]
    },
    {
      "equation_id": "D11",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "blocking_od",
      "line": 120,
      "end_line": 122,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "blocking loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "unblocked detector-weighted ratio[1],allowed leak[1]",
      "outputs_and_units": "uniform minimum OD[1]",
      "sources": [
        {
          "id": "own-explicit-leak-integral-bound",
          "type": "own derivation fully displayed in methods/design_and_diagnostics.md",
          "url": null
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D12",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "dark_nep",
      "line": 124,
      "end_line": 126,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "nep loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "wavelength[m],eta[1],assumed primary dark[1/s],F[1]",
      "outputs_and_units": "entrance NEP[W/sqrtHz]",
      "sources": [
        {
          "id": "own-explicit-shot-PSD-derivation",
          "type": "own derivation fully displayed in methods/design_and_diagnostics.md",
          "url": null
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D13",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "hp_droop_timeconstant",
      "line": 128,
      "end_line": 131,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "droop loop",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "plateau[s],allowed fractional droop[1]",
      "outputs_and_units": "tau_min[s],fc_max[Hz]",
      "sources": [
        {
          "id": "own-single-pole-step-derivation",
          "type": "own derivation fully displayed in methods/design_and_diagnostics.md",
          "url": null
        }
      ],
      "related_functions": []
    },
    {
      "equation_id": "D14",
      "method_document": "methods/design_and_diagnostics.md",
      "module": "modules/design_review.py",
      "function": "ramp_bin_average",
      "line": 133,
      "end_line": 139,
      "original_file": "reference/design/calculate_design_scenarios.py",
      "original_function_or_block": "integrate_ramp/sample_rise",
      "original_sha256": "99c13e936a89a11bbca8db09c6330e2ff49a1601891982e2b67b72f7f342f8f5",
      "inputs_and_SI_units": "bin endpoints/onset/full ramp[s]",
      "outputs_and_units": "sample average[1],sampled_rise[s]",
      "sources": [
        {
          "id": "DO-ELEC-SAMPLING-MT002",
          "title": "What the Nyquist criterion means to your sampled data system design",
          "url": "https://www.analog.com/media/en/training-seminars/tutorials/MT-002.pdf",
          "locators": [
            "pp.1, 4-8, Figures 1, 4-7; baseband sampling and antialias filtering"
          ],
          "access": "Official Analog Devices tutorial by Walt Kester; full 12-page PDF, Rev.A 10/08."
        }
      ],
      "related_functions": [
        {
          "function": "sampled_rise",
          "line": 141,
          "end_line": 150
        }
      ]
    }
  ],
  "scope": "Own equations plus source locators; cross-check agreement is not physical mission validation."
}