Event-conditioned comparison methodology#

This chapter describes the implemented point-event/Pareto method and the narrower exploratory browser projection. The canonical implementation is in Python: pairing.py, protocols.py, and screening.py. The Lab’s explicitly exploratory analysis follows the same core interval and minimization definitions but is not a canonical compilation receipt.

1. Define the reference interval#

Let the nominal reference time be \(t_0\), with uncertainty bounds \(u_-\) and \(u_+\). The event interval is

\[E = [t_0-u_-,\ t_0+u_+].\]

For an acquisition with start \(s\) and end \(e\), the temporal role is:

\[\operatorname{PRE} \iff e < t_0-u_-,\qquad \operatorname{POST} \iff s > t_0+u_+.\]

An acquisition touching or intersecting the uncertainty interval is not strictly PRE or POST. It is excluded from this pair construction as event-time overlap. A missing start time also prevents assignment. When the source supplies no acquisition end, the point-time behavior is explicit; an invalid supplied end must not be treated as a trustworthy interval.

The protocol window is checked against acquisition start. An otherwise PRE or POST observation outside the configured window is excluded separately.

The Lab uses a symmetric uncertainty input; the Python event model can represent different before and after bounds.

2. Normalize and identify observations#

Observation identity is source-derived. Identical duplicate rows can be deduplicated, while conflicting rows for the same durable identity are a scientific ambiguity—not permission to keep whichever arrived first.

The canonical pipeline preserves raw-response identity and deterministic normalized ordering. The Lab separately retains the metadata-response bytes and its exploratory projection. Do not confuse a Lab projection digest with a canonical Python model digest.

3. Construct the candidate population#

Let \(P\) be the strictly PRE set and \(Q\) the strictly POST set. Candidate construction is

\[C = P \times Q,\qquad |C| = |P|\,|Q|.\]

This is a temporal pairing operation. It does not establish common ground coverage, registration, photometric comparability, or suitability for a particular downstream scientific inference.

The canonical compiler’s pair identity binds event, protocol, source-row identities, and metrics. The Lab’s local pair ID identifies a pair within an exploratory result; it is not substituted for canonical content identity.

4. Calculate explicit metrics#

For PRE member \(p\) and POST member \(q\):

Metric

Definition

Canonical unit

Incidence mismatch

$

i_p-i_q

Emission mismatch

$

e_p-e_q

Phase mismatch

$

\phi_p-\phi_q

Worst resolution

\(\max(r_p,r_q)\) when both units/values are established

Metres per pixel

PRE temporal distance

\(t_0-s_p\)

Seconds

POST temporal distance

\(s_q-t_0\)

Seconds

Temporal distances use the nominal reference time and acquisition starts. The Lab displays those two distances in days. A positive constant unit conversion preserves order, but that fact does not certify the whole browser implementation as equivalent to a canonical Python compilation.

Unknown metadata is not imputed. A pair lacking a value required by an active objective is excluded from that screening variant. Missing an inactive objective does not by itself exclude it.

5. Apply a declared objective set#

The retained Python protocol defines:

Variant

Active minimized objectives

V1 — angles

Δ incidence, Δ emission, Δ phase

V2 — angles + resolution

V1 plus worst resolution

V3 — angles + time

V1 plus PRE and POST temporal distance

V4 — full available

Angles, worst resolution, PRE and POST temporal distance

The exploratory Lab supports angle and time objectives. Its ODE resolution-unit interpretation remains unestablished, so it does not offer resolution screening or claim to execute the full V2/V4 method on discovered rows.

6. Interpret Pareto nondominance#

For minimization vectors \(a,b\in\mathbb{R}^d\), \(a\) strictly dominates \(b\) when

\[\left(\forall j,\ a_j\le b_j\right)\land \left(\exists k,\ a_k<b_k\right).\]

The frontier consists of eligible candidates not strictly dominated by another eligible candidate. Exact ties survive. No weighted sum or hidden composite score is used.

Changing the active objective set can alter both metadata eligibility and the dominance relation. Changing plot axes changes neither; it only projects the result for inspection.

For a dominated Lab pair, an actual included frontier pair is retained as a witness. The witness’s objective vector makes the relation inspectable. It is not a synthetic explanation or a nearest-neighbour quality estimate.

7. Keep computation bounds visible#

The Python protocol has an explicit pair cap, and the screener has a comparison budget. The Lab imposes smaller interactive limits. Exhausting an exact-computation budget raises a failure rather than returning an approximate set labelled exact.

A scientific population, an explicitly included exploratory subset, and a displayed table/plot projection are separate objects. A frontier is always relative to the population and metadata eligibility actually examined.

8. Carry interpretation beyond screening#

Screening reduces a comparison space. It does not perform image registration, calibrated photometry, change detection, or causal inference. A researcher must still assess the source imagery and supply the appropriate processing and evidence for stronger claims.

The sequence remains:

candidate population → explicit screening → source inspection → further scientific work → reviewable claim

The historical Chang’e 6 frontier counts are retained results under their historical basis, not a new execution of this chapter from missing rows. See Chang’e 6: a retained historical case.