Chapter 5 — Sampling Plan & Synchronization
I. Purpose & Scope
- Standardize the sampling matrix, sampling rate/exposure/dwell/cadence, and time-sync chain (GNSS/PTP/NTP) to ensure timebase consistency, sufficient path sampling, and traceable timing.
- Applicable to timing / imaging / spectral / mixed modes; zero-order paraxial, small-angle, slowly varying medium within coherence windows T_coh/L_coh/B_coh where |∇ n_eff|·L_coh ≪ 1.
II. Prerequisites & Inputs
- Sampling matrix: define coverage over {time × channel × position}; mark missing values as null and record reasons in quality.flags.
- Timebase reference: prefer GNSS 1PPS + 10 MHz, fallback PTP → NTP; record clock_state ∈ {locked, holdover, free}.
- Explicit path: if T_arr / Phi is involved, show gamma(ell) and d ell in text; in data/metadata record delta_form ∈ {general, factored}.
- Bands & windowing: lambda_ref, k_ref=2π/λ_ref, window ∈ {rect|hann|blackman}.
- Threshold set: f_s (sampling rate), Δell_max, τ_calib, |δt_abs|, |Δτ_ch|, σ_y(τ) (Allan deviation).
III. Procedure
- Generate the sampling plan
- Set f_s, t_exp (exposure/dwell), cadence; satisfy Nyquist: f_s ≥ 2 f_max.
- Path step constraint: Δell ≤ ( c_ref / f_s ) / max(n_eff); phase sampling bound: Δt ≤ λ_ref / ( 2 c_ref ).
- Stratification & balance
Stratify by batch/device/sky-region; enforce per-stratum minimum size and balance (e.g., positive/negative, bright/dim fields). - Sync lock & monitoring
- Prefer GNSS 1PPS lock; record δt_abs, Δτ_ch, σ_y(τ); on loss, auto-fallback PTP → NTP.
- Heartbeat: log clock_state and threshold decisions every Δt_beat.
- Adaptive coherence (optional)
Adjust T_coh/L_coh/B_coh using |∇ n_eff|, SNR, and σ_y; segment the path if needed. - Data writes & audit
Log sampling to audit.jsonl (timestamps, random seeds, fallback events, input hashes); lock see[]/references[]/version in manifest.yaml.
IV. Quality Gates & Stop Criteria
- G1 | Schema: sampling & sync fields present; matrix indices consistent.
- G2 | Citations: see[]/references[] follow “volume + version + anchor (P/S/M/I)”, anchor coverage ≥ 90%.
- G3 | Path–measure: len(gamma_ell)=len(d_ell)=len(n_eff)≥2 and synchronized.
- G4 | Dimensional closure: T_arr = ( ∫ ( n_eff / c_ref ) d ell ) has unit s; Phi has unit rad; p_dim=1.0.
- G5 | Calibration freshness: |ts_start − calib.timestamp| ≤ τ_calib.
- G6 | Noise residuals: Q_res within admissible band; provide second-order surrogate for robust pipelines.
- G8 | Uniqueness: unique record_id, non-duplicated checksum.sha256.
- Stop: if clock_state != locked beyond grace, or |δt_abs|/|Δτ_ch| exceed thresholds, or f_s < 2 f_max, or Δell > Δell_max, or p_dim < 1 → tag [Restricted] and fallback/reject.
V. Outputs & Exports
- Data: observations.parquet (with {time, channel, position} and key observations), paths.parquet (gamma_ell[]/d_ell[]/n_eff[]).
- Reports: check_dim_report.json, quality_report.json, audit.jsonl (including sync fallbacks and threshold events).
- Manifests: manifest.yaml (version, see[], references[], checksum), schema.json.
VI. Citations & Versioning
- Fixed syntax: See "<Volume> vX.Y" <Chapter> <Anchor>; prioritize P/S/M/I anchors.
- Normative anchors: EFT.WP.Metrology.TimeBase v1.0, EFT.WP.Metrology.Sync v1.0, EFT.WP.Metrology.Instrument v1.0, EFT.WP.Metrology.PathCorrection v1.0, EFT.WP.Core.Equations v1.1:S20-1/S21-2, EFT.WP.Core.Metrology v1.0:check_dim.
- Public releases cite v1.* only; if citing v0.*, mark “draft / non-committal”.
VII. Checklist
- {time × channel × position} sampling matrix fully covered; missing points marked with reasons.
- f_s ≥ 2 f_max; Δell ≤ ( c_ref / f_s ) / max(n_eff); Δt ≤ λ_ref / (2 c_ref).
- GNSS 1PPS locked or orderly fallback applied; δt_abs/Δτ_ch/σ_y within thresholds.
- Coherence windows T_coh/L_coh/B_coh satisfy |∇ n_eff|·L_coh ≪ 1; segment/adapt if required.
- Text/data consistent: explicit gamma(ell), d ell; delta_form recorded; p_dim = 1.0.
- manifest.yaml / schema.json / check_dim_report.json / quality_report.json / audit.jsonl ready; citations compliant, version locked.