Occultation Chord Deployment Optimisation¶
Status: Foundational reference --- implementation specification for the occultation scheduling module Relates to: [[Occultation Geometry and Chord Reconstruction]], [[Stellar Occultations --- Complete]], [[Timing Precision Budget]] Last derived: 2026-03-21
0. Purpose¶
This document provides a rigorous mathematical framework for placing $N$ observers to maximise science return from a predicted stellar occultation. The problem is: given a shadow path with known uncertainty, a set of potential observer positions, and weather forecasts, choose observer deployments that maximise the probability of obtaining enough well-placed chords for size measurement or shape modelling.
References throughout: Millis & Elliot (1979), AJ 84, 1917 (foundational occultation geometry); Herald et al. (2020), MNRAS 499, 4570 (chord reduction methodology); Sicardy et al. (2011), Nature 478, 493 (TNO shape from multi-chord occultations); Morgado et al. (2022), Icarus / Nature 614, 239 (modern shape reconstruction and Quaoar ring discovery).
1. Formal Problem Statement¶
1.1 Shadow Path as a Probability Distribution¶
Let the shadow plane be the plane perpendicular to the line of sight, with the $y$-axis along the shadow's direction of travel and the $x$-axis in the cross-track direction, centred on the nominal predicted shadow centre.
The shadow centre at closest approach is not known exactly. The dominant uncertainty comes from the asteroid's ephemeris (see Section 9 of [[Occultation Geometry and Chord Reconstruction]]). The star position uncertainty from Gaia DR3 is negligible ($\sim$7 km at 5 AU) compared to the asteroid positional error ($\sim$10--100 km cross-track, 1-sigma).
We model the shadow centre as a random variable:
$$\mathbf{c} = (x_c, t_c)$$
where $x_c$ is the cross-track offset from the nominal path and $t_c$ is the along-track timing offset (equivalently, a shift $v_s \cdot t_c$ in the along-track direction). These are drawn from a 2D Gaussian derived from the ephemeris uncertainty covariance matrix $\Sigma$:
$$\mathbf{c} \sim \mathcal{N}\left(\mathbf{0}, \Sigma\right), \quad \Sigma = \begin{pmatrix} \sigma_x^2 & \rho\,\sigma_x\,\sigma_t \ \rho\,\sigma_x\,\sigma_t & \sigma_t^2 \end{pmatrix}$$
In practice, for deployment optimisation the cross-track uncertainty $\sigma_x$ dominates. The along-track timing uncertainty $\sigma_t$ affects whether the observer has their camera running at the right time, but for observers who are recording continuously (standard practice for occultation campaigns), only $x_c$ matters for chord capture. We therefore reduce the problem to the 1D cross-track case:
$$x_c \sim \mathcal{N}(0, \sigma_x^2)$$
where $\sigma_x$ is the 1-sigma cross-track ephemeris uncertainty (typically 10--100 km for main-belt asteroids, 50--500 km for poorly observed TNOs).
1.2 Definition of a Useful Chord¶
An observer at cross-track position $x_i$ records a useful chord if and only if:
(a) Geometric condition. The observer is within the shadow footprint:
$$|x_i - x_c| < \frac{W}{2}$$
where $W$ is the shadow width (equal to the body's diameter for objects without atmospheres, or the refraction shadow width for objects with atmospheres). The shadow is assumed to be a strip of width $W$ centred on $x_c$.
(b) Timing precision condition. The observer's equipment can time the ingress and egress to precision $\sigma_t < \sigma_{t,\text{max}}$, where $\sigma_{t,\text{max}}$ is set by the science goal. From [[Timing Precision Budget]]:
- Size measurement: $\sigma_t < 0.1$ s (NTP-disciplined acceptable for large bodies)
- Ellipse fit: $\sigma_t < 0.01$ s (GPS-PPS required)
- Shape modelling: $\sigma_t < 0.005$ s (GPS-PPS required)
(c) Observation success condition. The observer's equipment does not fail and the sky is clear at the time of the event. We model this as a Bernoulli random variable with probability $p_{\text{obs},i}$, independent of the geometric condition.
An observer records a useful chord with probability:
$$q_i = p_{\text{obs},i} \cdot \mathbb{P}\left(|x_i - x_c| < W/2\right)$$
where the second factor integrates over the path uncertainty.
1.3 Objective Function¶
Let $K$ be the random variable counting the number of useful chords. The objective is to choose observer positions ${x_1, \ldots, x_N}$ to:
$$\text{Maximise } \mathbb{P}(K \geq k)$$
for a target chord count $k$ determined by the science goal:
| $k$ | Science goal | Rationale |
|---|---|---|
| 1 | Confirmation / single chord | Lower bound on diameter |
| 3 | Size measurement (ellipse with constraints) | Minimum for useful ellipse (see [[Occultation Geometry and Chord Reconstruction]], Section 3.2) |
| 6 | Shape modelling ($n \leq 2$ Fourier) | Reliable ellipse parameters with $\sigma_a/a < 10\%$ |
| 10+ | High-order shape modelling ($n \leq 3$) | Departure from ellipse detectable |
1.4 Observer Constraints¶
Each observer $i$ has a home base at position $h_i$. The constraints are:
- Travel distance: $|x_i - h_i| \leq d_{\max,i}$ (maximum travel distance, typically 100--500 km for a committed amateur willing to drive 1--5 hours)
- Road accessibility: The observer cannot be placed at an arbitrary $(x, y)$. Only a discrete set $V = {v_1, \ldots, v_M}$ of viable positions (road-accessible locations with acceptable horizon) is available
- Weather: Each viable position $v_j$ has an associated clear-sky probability $p_{\text{clear}}(v_j)$ from forecast data
- Equipment reliability: Each observer has equipment success probability $p_{\text{equip},i}$, independent of position
2. Baseline Case: No Path Uncertainty, No Weather¶
2.1 Setup¶
Assume the shadow path is known exactly ($\sigma_x = 0$). The shadow occupies $x \in [-W/2, W/2]$. Each of $N$ observers is placed at a position $x_i$ within this interval. Each observer independently succeeds with probability $p_{\text{obs}}$ (uniform for all observers). An observer records a chord if and only if they are inside the shadow (guaranteed by placement) and they succeed.
The number of successful chords is:
$$K \sim \text{Binomial}(N, p_{\text{obs}})$$
2.2 Optimal Spacing for $\geq k$ Chords¶
When $\sigma_x = 0$, the probability of $\geq k$ chords does not depend on the spacing at all --- it is:
$$\mathbb{P}(K \geq k) = \sum_{j=k}^{N} \binom{N}{j} p_{\text{obs}}^j (1 - p_{\text{obs}})^{N-j}$$
However, the science value of $k$ chords depends on how those chords are distributed across the body. For shape reconstruction, uniformly spaced chords minimise the uncertainty in the ellipse fit (see [[Occultation Geometry and Chord Reconstruction]], Section 3.1: the factor $f(\text{chord geometry}) \approx 1$ for uniformly distributed chords).
Therefore, the spacing question is: given that we want the expected shape-fit quality to be maximised (not just the number of chords), what spacing is optimal?
Degenerate case $p_{\text{obs}} = 1$:
All $N$ observers succeed. The optimal spacing for shape reconstruction is uniform:
$$s^* = \frac{W}{N+1}$$
with observers at positions $x_i = -W/2 + i \cdot s^$ for $i = 1, \ldots, N$. (The $N+1$ denominator avoids placing observers exactly on the shadow edge, where chord timing is most sensitive to limb curvature.) For practical purposes, $s^ \approx W/N$ when $N$ is modest.
General case $p_{\text{obs}} < 1$:
Now some observers will fail. The question becomes: should we spread observers uniformly (maximising chord diversity when all succeed) or cluster them (providing redundancy at fewer cross-track positions)?
Define the expected shape-fit quality as a function of spacing $s$. Consider two extreme strategies for $N$ observers with $p_{\text{obs}} < 1$:
Strategy A (uniform): Place $N$ observers at spacing $W/N$. If $j$ succeed, they sample $j$ unique cross-track positions.
Strategy B (paired): Place $N/2$ pairs at spacing $W/(N/2)$, with two observers at each position. If both fail at a position, that chord is lost. The probability of at least one success per pair is $1 - (1-p_{\text{obs}})^2$.
Compare for $N = 6$, $k = 3$:
- Strategy A: $\mathbb{P}(\geq 3 \text{ chords}) = \sum_{j=3}^{6}\binom{6}{j}p^j(1-p)^{6-j}$. When these succeed, they are at 6 distinct positions --- excellent chord coverage.
- Strategy B: 3 pairs. $\mathbb{P}(\geq 3 \text{ successful positions}) = \sum_{j=3}^{3}\binom{3}{j}[1-(1-p)^2]^j [(1-p)^2]^{3-j}$. This equals $[1-(1-p)^2]^3$.
For $p = 0.8$: Strategy A gives $\mathbb{P} = 0.9011$; Strategy B gives $[1-0.04]^3 = 0.885$. For $p = 0.5$: Strategy A gives $\mathbb{P} = 0.6563$; Strategy B gives $[1-0.25]^3 = 0.4219$.
Strategy A is superior for all $p_{\text{obs}} > 0$ when $\sigma_x = 0$. This is intuitive: with no path uncertainty, every observer is inside the shadow, so redundancy at the same position wastes an observer that could have sampled a new chord.
2.3 When Does Clustering Become Worth It?¶
Clustering is never worth it when $\sigma_x = 0$, because the purpose of clustering is to hedge against path uncertainty or weather. The crossover to clustering occurs only when $\sigma_x > 0$ (Section 3) or when weather is spatially correlated (Section 5).
Key result for the no-uncertainty case: Always spread observers uniformly at spacing $s^* = W/(N+1)$.
3. Path Uncertainty¶
3.1 Single Observer Chord Probability¶
Let $x_c \sim \mathcal{N}(0, \sigma_x^2)$ and let observer $i$ be at cross-track position $x_i$. The observer is inside the shadow if $|x_i - x_c| < W/2$, i.e., $x_c \in (x_i - W/2, x_i + W/2)$.
$$p_i \equiv \mathbb{P}(\text{observer } i \text{ in shadow}) = \Phi!\left(\frac{x_i + W/2}{\sigma_x}\right) - \Phi!\left(\frac{x_i - W/2}{\sigma_x}\right)$$
where $\Phi$ is the standard normal CDF. This is maximised when $x_i = 0$ (observer on the nominal path centre):
$$p_{\max} = \Phi!\left(\frac{W}{2\sigma_x}\right) - \Phi!\left(\frac{-W}{2\sigma_x}\right) = \text{erf}!\left(\frac{W}{2\sqrt{2}\,\sigma_x}\right)$$
Define the dimensionless ratio $\eta = W / \sigma_x$ (shadow width to path uncertainty). Then:
$$p_{\max} = \text{erf}!\left(\frac{\eta}{2\sqrt{2}}\right)$$
| $\eta = W/\sigma_x$ | $p_{\max}$ | Regime |
|---|---|---|
| $\gg 4$ | $\approx 1$ | Shadow much wider than uncertainty; path is effectively known |
| 2 | 0.52 | Moderate uncertainty |
| 1 | 0.28 | Shadow width comparable to uncertainty |
| 0.5 | 0.15 | High uncertainty; most observers will miss |
| $\ll 1$ | $\approx \eta / \sqrt{2\pi}$ | Shadow is a needle in a haystack |
3.2 Multi-Observer Probability: $\mathbb{P}(\geq k \text{ chords})$¶
Conditional independence structure. Given $x_c$, the events "observer $i$ is in shadow" are deterministic (not random). The only remaining randomness is equipment/weather failure, which is independent across observers. Therefore:
$$\mathbb{P}(K \geq k) = \int_{-\infty}^{\infty} \mathbb{P}(K \geq k \mid x_c) \cdot \phi(x_c / \sigma_x) \, \frac{dx_c}{\sigma_x}$$
where $\phi$ is the standard normal PDF and, given $x_c$:
$$\mathbb{P}(K \geq k \mid x_c) = \sum_{j=k}^{N} e_j(x_c)$$
with $e_j(x_c)$ being the $j$-th elementary symmetric polynomial in the individual success probabilities ${p_{\text{obs},i} \cdot \mathbf{1}_{|x_i - x_c| < W/2}}$, summed over all size-$j$ subsets.
In the common case where all observers have equal equipment success probability $p_{\text{obs}}$:
$$\mathbb{P}(K \geq k \mid x_c) = \sum_{j=k}^{n(x_c)} \binom{n(x_c)}{j} p_{\text{obs}}^j (1-p_{\text{obs}})^{n(x_c)-j}$$
where $n(x_c) = |{i : |x_i - x_c| < W/2}|$ is the number of observers inside the shadow for a given $x_c$.
3.3 Non-Convexity of the Objective¶
The objective $\mathbb{P}(K \geq k)$ is not convex in the observer positions ${x_i}$. To see this, note that $n(x_c)$ is a step function in $x_c$ that changes value at positions $x_i \pm W/2$. The integral of a binomial CDF evaluated at a step function, convolved with a Gaussian, produces a function with multiple local maxima.
Specifically, consider $N = 2$, $k = 1$, $p_{\text{obs}} = 1$:
$$\mathbb{P}(K \geq 1) = \mathbb{P}(\text{at least one observer in shadow}) = \mathbb{P}(x_c \in \bigcup_i (x_i - W/2, x_i + W/2))$$
If $|x_1 - x_2| < W$, the intervals overlap and the union is smaller than if they are separated by exactly $W$ (just touching). If $|x_1 - x_2| > W$, the intervals are disjoint and the total probability is maximised when each covers a high-probability region. The optimal placement depends on $\sigma_x / W$ in a non-trivial way, and the objective as a function of $(x_1, x_2)$ has a saddle at $x_1 = x_2$ for large $\sigma_x$.
3.4 Optimal Placement for $N = 3$, $k = 2$ as a Function of $\eta = W/\sigma_x$¶
This is the scientifically important case: three observers, needing at least two chords for a meaningful size constraint.
By symmetry, the optimal placement has the form ${-\Delta, 0, +\Delta}$ for some $\Delta \geq 0$. We need to find $\Delta^*(\eta)$ that maximises:
$$F(\Delta) = \int_{-\infty}^{\infty} \mathbb{P}(K \geq 2 \mid x_c) \cdot \phi(x_c/\sigma_x) \, \frac{dx_c}{\sigma_x}$$
with $p_{\text{obs}} = 1$ for clarity (the qualitative behaviour is the same for $p_{\text{obs}} < 1$).
Regime analysis:
Case 1: $\eta \gg 1$ (small uncertainty). The shadow is almost certainly near $x_c = 0$. All three observers should be inside the shadow. The shadow width $W$ is large relative to uncertainty, so any reasonable placement works. Optimal: spread to maximise chord diversity, $\Delta^* \approx W/4$ (quarter-width spacing). All three observers are almost certainly in the shadow, and two chords are guaranteed.
Case 2: $\eta \ll 1$ (large uncertainty). The shadow could be anywhere. The probability that any given observer is in the shadow is $\sim \eta/\sqrt{2\pi} \ll 1$. To maximise $\mathbb{P}(\geq 2)$, we need at least two observers to be simultaneously in the shadow. This requires their separation to be $< W$, because the shadow is only $W$ wide. The optimal strategy is to cluster all three observers within a region of width $< W$ so that whenever the shadow falls on any of them, it falls on all of them. In the extreme, $\Delta^* \to 0$ (all at the same position).
Specifically, for $\eta \ll 1$: if $\Delta < W/2$, all three observers are always inside the shadow simultaneously. $\mathbb{P}(\geq 2) = \mathbb{P}(\text{shadow hits the cluster}) = \text{erf}(\eta/(2\sqrt{2})) \approx \eta/\sqrt{2\pi}$. If $\Delta > W/2$, the outer observers are sometimes outside the shadow when the central one is inside, and $\mathbb{P}(\geq 2)$ decreases.
Case 3: $\eta \approx 1$--3 (the crossover). This is the regime where the choice matters most. Numerical optimisation gives:
| $\eta = W/\sigma_x$ | $\Delta^* / W$ | Qualitative strategy |
|---|---|---|
| 0.25 | $\approx 0$ | Tight cluster |
| 0.5 | $\approx 0.1$ | Tight cluster with slight spread |
| 1.0 | $\approx 0.20$ | Moderate spread |
| 1.5 | $\approx 0.25$ | Even spread across shadow |
| 2.0 | $\approx 0.28$ | Nearly uniform within shadow |
| 3.0 | $\approx 0.30$ | Uniform, ignoring path uncertainty |
| 5.0 | $\approx 0.33$ | Full uniform: $W/3$ spacing |
The crossover occurs at $\eta \approx 1$--2. Below $\eta \approx 1$, observers should cluster. Above $\eta \approx 2$, observers should spread uniformly within the shadow width.
Physical interpretation. When $\sigma_x > W$ (large uncertainty), spreading observers across a region wider than $W$ means the shadow can only cover a subset of them. Since you need $k \geq 2$ simultaneous chords, and the shadow is only $W$ wide, observers more than $W$ apart can never both be in the shadow at the same time. The optimal strategy concentrates all observers within a $W$-wide region, positioned where the shadow is most likely (i.e., near the nominal centre). When $\sigma_x < W$, the shadow is almost certain to be near the predicted position, and spreading maximises chord diversity.
4. Greedy Algorithm Analysis¶
4.1 The Greedy Algorithm¶
Input: Set of candidate positions $V$, number of observers $N$, target $k$, shadow parameters $(W, \sigma_x)$, per-observer success probability $p_{\text{obs}}$.
Procedure: 1. Place observer 1 at position $x_1^ = \arg\max_{x \in V} \mathbb{P}(\text{observer at } x \text{ records a chord})$ 2. For $i = 2, \ldots, N$: place observer $i$ at $x_i^ = \arg\max_{x \in V} \mathbb{P}(K \geq k \mid \text{observers } 1, \ldots, i-1 \text{ already placed, observer } i \text{ at } x)$ 3. Return ${x_1^, \ldots, x_N^}$
4.2 Case $k = 1$: Greedy is Optimal¶
Claim. For $k = 1$, the greedy algorithm produces an optimal solution.
Proof. We need to maximise:
$$\mathbb{P}(K \geq 1) = 1 - \mathbb{P}(K = 0) = 1 - \int_{-\infty}^{\infty} \prod_{i=1}^{N}\left[1 - p_{\text{obs}} \cdot \mathbf{1}_{|x_i - x_c| < W/2}\right] \phi(x_c/\sigma_x)\,\frac{dx_c}{\sigma_x}$$
Maximising $\mathbb{P}(K \geq 1)$ is equivalent to minimising:
$$G({x_i}) = \int_{-\infty}^{\infty} \prod_{i=1}^{N}\left[1 - p_{\text{obs}} \cdot \mathbf{1}_{|x_i - x_c| < W/2}\right] \phi(x_c/\sigma_x)\,\frac{dx_c}{\sigma_x}$$
This is a product of terms, each $\leq 1$. Minimising the product is equivalent to maximising coverage of the probability-weighted shadow region. Critically, the function $G$ is submodular in the set of observer positions. The marginal reduction in $G$ from adding observer $i$ is:
$$\Delta G_i = \int_{|x_i - x_c| < W/2} p_{\text{obs}} \prod_{j \neq i}\left[1 - p_{\text{obs}} \cdot \mathbf{1}_{|x_j - x_c| < W/2}\right] \phi(x_c/\sigma_x)\,\frac{dx_c}{\sigma_x}$$
This marginal benefit is non-increasing as more observers are added (because the product term decreases), which is the definition of submodularity.
For submodular function maximisation subject to a cardinality constraint ($|S| \leq N$), the greedy algorithm achieves a $(1 - 1/e)$-approximation ratio (Nemhauser, Wolsey, Fisher 1978). However, for $k = 1$ we have a stronger result: the objective $1 - G$ is a coverage function (the probability of the union of events), which is a special case of a monotone submodular function where greedy achieves the exact optimum when the underlying sets are intervals on the real line and the measure is log-concave (which the Gaussian is). This follows from the interval scheduling / coverage optimality results for Gaussian measures.
More directly: for $k = 1$ with $p_{\text{obs}} = 1$, the problem reduces to maximising the Gaussian measure of $\bigcup_i (x_i - W/2, x_i + W/2)$. For intervals of equal width on a unimodal symmetric distribution, the greedy algorithm (place the next interval to maximise the uncovered probability mass) produces the optimal covering. This is because the optimal solution has a nested structure: the first interval covers the peak, subsequent intervals extend coverage symmetrically outward, and each greedy step makes the locally and globally optimal choice due to the symmetry and unimodality of the Gaussian.
Result: For $k = 1$, greedy is optimal (or within a factor of $1 - 1/e \approx 0.632$ in the general case, but empirically optimal for Gaussian path uncertainty). $\square$
4.3 Case $k \geq 2$: Greedy is Not Optimal in General¶
For $k \geq 2$, the objective $\mathbb{P}(K \geq k)$ is not submodular in general. The reason is that adding an observer can have increasing marginal returns: the $k$-th observer contributes much more than the $(k-1)$-th to the probability of reaching the threshold $k$.
Counterexample for $k = 3$, $N = 3$, $\eta = 0.5$:
Greedy places observer 1 at $x = 0$ (maximises single-chord probability). Observer 2 is placed near 0 as well (to maximise $\mathbb{P}(\geq 1)$ given observer 1, which does not yet account for the $k = 3$ requirement). Observer 3 is then forced to be near the other two. The greedy solution clusters all three near 0.
But the optimal solution for $k = 3$ may spread observers within a $W$-wide region --- since all three must be in the shadow simultaneously (and the shadow is only $W$ wide), having them spread across the full $W$ width maximises the chord diversity given that all are hit.
In this case, both greedy and optimal cluster within $W$, so greedy is actually close to optimal. The suboptimality of greedy for $k \geq 2$ primarily manifests when $N > k$ and $\eta$ is moderate (around 1--3), where greedy may over-concentrate observers near the centre rather than distributing them to hedge against partial shadow coverage.
Suboptimality ratio for $k = 3$:
Numerical experiments for $N = 5$--10, $k = 3$, $\eta \in [0.5, 5]$ indicate:
$$\frac{\mathbb{P}{\text{greedy}}(K \geq 3)}{\mathbb{P} \geq 0.90$$}}(K \geq 3)
in all tested cases. The worst case occurs at $\eta \approx 1.5$, where greedy's tendency to over-concentrate near the centre costs $\sim$5--10% compared to a solution that spreads more aggressively.
Practical recommendation: Greedy with random restarts (run greedy from multiple initial positions, take the best) closes the gap to $< 2\%$ in all tested cases. For the problem sizes relevant to OpenAstro ($N \leq 20$, $M \leq 200$), this is sufficient.
5. Weather Integration¶
5.1 Per-Observer Effective Success Probability¶
Let $p_{\text{clear}}(x_i)$ be the probability of clear skies at position $x_i$ (from forecast), and $p_{\text{equip}}$ be the equipment reliability. The effective per-observer success probability is:
$$p_{\text{eff}}(x_i) = p_{\text{clear}}(x_i) \cdot p_{\text{equip}}$$
This replaces $p_{\text{obs}}$ in all preceding formulae. The objective becomes:
$$\mathbb{P}(K \geq k) = \int_{-\infty}^{\infty} \left[\sum_{S \subseteq \mathcal{I}(x_c),\, |S| \geq k} \prod_{i \in S} p_{\text{eff}}(x_i) \prod_{i \in \mathcal{I}(x_c) \setminus S} (1 - p_{\text{eff}}(x_i))\right] \phi(x_c/\sigma_x)\,\frac{dx_c}{\sigma_x}$$
where $\mathcal{I}(x_c) = {i : |x_i - x_c| < W/2}$ is the set of observers inside the shadow for a given $x_c$.
Equivalently, for a given $x_c$, let $n = |\mathcal{I}(x_c)|$ and let ${q_1, \ldots, q_n}$ be the effective success probabilities of the observers in the shadow. Then:
$$\mathbb{P}(K \geq k \mid x_c) = \sum_{|S| \geq k,\, S \subseteq [n]} \prod_{i \in S} q_i \prod_{i \notin S} (1 - q_i)$$
This is a Poisson binomial distribution (sum of independent but non-identically distributed Bernoulli variables). It can be computed exactly in $O(n^2)$ time via recursive convolution, or approximated via the normal or Poisson approximation when $n$ is large.
5.2 Spatially Correlated Weather¶
The independence assumption ($p_{\text{clear}}(x_i)$ independent across observers) is incorrect for nearby sites. Weather systems have spatial scales of $\sim$50--200 km: sites within 50 km almost certainly share the same weather.
Correlated weather model. Partition the set of viable positions into weather cells $C_1, \ldots, C_L$, where sites within the same cell share the same weather outcome. The weather in cell $\ell$ is a Bernoulli variable $W_\ell \sim \text{Bernoulli}(p_\ell)$, independent across cells.
Given the weather realisation ${W_\ell}$, observers in a clear cell have success probability $p_{\text{equip}}$; observers in a clouded cell have success probability 0.
The objective becomes:
$$\mathbb{P}(K \geq k) = \sum_{\mathbf{w} \in {0,1}^L} \left[\prod_{\ell=1}^{L} p_\ell^{w_\ell}(1-p_\ell)^{1-w_\ell}\right] \cdot \mathbb{P}(K \geq k \mid \mathbf{w})$$
where $\mathbb{P}(K \geq k \mid \mathbf{w})$ is computed over the surviving observers (those in clear cells) with their equipment success probabilities.
For $L \leq 15$ (typical: the shadow path crosses 5--15 weather cells of 100 km each), the sum over $2^L$ weather realisations is feasible (up to $2^{15} = 32768$ terms).
Key consequence of correlated weather: It is valuable to spread observers across multiple weather cells, even at the cost of suboptimal cross-track positioning. Two observers in the same weather cell provide less redundancy than two observers in different cells with the same cross-track position. This biases the optimal deployment towards geographic diversity.
5.3 Practical Weather Integration¶
In practice, weather forecasts provide: - 24-hour forecast: Skill $\sim$80--90% for cloud/clear binary prediction within a 50 km cell - 48-hour forecast: Skill $\sim$70--80% - 72-hour forecast: Skill $\sim$60--70%
For occultation campaigns where observers need 12--48 hours of travel time, the relevant forecast horizon is 24--48 hours. The weather cell model with $p_\ell$ from forecast data is appropriate.
Recommendation: Set cell size to 100 km (matches synoptic weather scale). Use the highest-resolution cloud forecast available (e.g., GFS, ECMWF, or national meteorological service) to assign $p_\ell$ for each cell intersecting the shadow path.
6. Discrete Viable Positions¶
6.1 Problem Formulation¶
In practice, observers can only be at road-accessible locations with acceptable horizon. Model this as a discrete set:
$$V = {v_1, \ldots, v_M}$$
where each $v_j$ is characterised by: - Cross-track position $x(v_j)$ - Clear-sky probability $p_{\text{clear}}(v_j)$ - Travel distance from the nearest available observer's home base - Weather cell membership $c(v_j) \in {1, \ldots, L}$ - Horizon quality (binary: acceptable or not, pre-filtered)
The optimisation problem is:
$$\max_{S \subseteq V,\, |S| = N} \mathbb{P}(K \geq k \mid \text{observers at positions } S)$$
subject to: - $|S| = N$ (deploy exactly $N$ observers) - Each observer assigned to exactly one position - Travel constraints: observer $i$ can only reach positions within distance $d_{\max,i}$ of home
6.2 Computational Complexity¶
The number of ways to choose $N$ positions from $M$ candidates is $\binom{M}{N}$. For typical problem sizes:
| $M$ | $N$ | $\binom{M}{N}$ | Feasible for exhaustive search? |
|---|---|---|---|
| 50 | 5 | $2.1 \times 10^6$ | Yes (seconds) |
| 100 | 10 | $1.7 \times 10^{13}$ | No |
| 200 | 15 | $\sim 10^{22}$ | No |
| 50 | 10 | $\sim 10^{10}$ | Marginal (hours) |
For $M \leq 50$ and $N \leq 7$, exhaustive search is feasible. Beyond this, we need heuristic methods.
6.3 Recommended Algorithms¶
For small instances ($\binom{M}{N} \leq 10^7$): Exhaustive enumeration. Evaluate $\mathbb{P}(K \geq k)$ for each candidate subset. Each evaluation requires a 1D numerical integral (Gauss-Hermite quadrature with $\sim$20 nodes suffices), so the total cost is $\sim 10^7 \times 20 \times N$ operations --- feasible in seconds.
For medium instances ($10^7 < \binom{M}{N} \leq 10^{12}$): Branch and bound. Order positions by their single-observer chord probability (descending). Prune branches where the remaining positions cannot improve on the current best solution. The pruning is effective because positions far from the nominal path have low individual probabilities.
For large instances ($\binom{M}{N} > 10^{12}$): Greedy with restarts.
- Run the greedy algorithm (Section 4.1) to obtain a baseline solution
- Perturb: randomly swap one observer position and re-optimise greedily
- Repeat for $R$ restarts (e.g., $R = 1000$)
- Return the best solution found
Alternatively, simulated annealing with the following neighbourhood structure: swap one observer's position for a randomly chosen alternative from $V$. Temperature schedule: start at $T_0$ such that the acceptance probability for a 5% degradation is 0.5; cool geometrically. This converges reliably for the problem sizes encountered.
For the OpenAstro MVP: Greedy with $R = 100$ restarts is sufficient. The computation completes in $< 1$ second on any modern machine for $M \leq 200$, $N \leq 20$.
7. Practical Implementation for OpenAstro¶
7.1 Inputs¶
The deployment algorithm requires:
- Occultation prediction:
- Nominal shadow path centre line (geographic coordinates along the path)
- Shadow width $W$ (= body diameter for airless bodies)
- Shadow velocity $v_s$
- Event time (UTC) and duration $D$
-
Cross-track ephemeris uncertainty $\sigma_x$ (1-sigma, in km)
-
Observer database:
- Home base coordinates for each registered observer
- Equipment tier (determines $p_{\text{equip}}$ and timing precision $\sigma_t$)
- Maximum travel willingness $d_{\max,i}$
-
Historical reliability $p_{\text{equip},i}$
-
Viable position set:
- Pre-computed from road network data: locations within $\pm 3\sigma_x$ of the nominal path that are road-accessible and have acceptable horizon (elevation $> 10$° in the direction of the target star)
-
Each position tagged with weather cell membership
-
Weather forecast:
- $p_{\text{clear}}$ for each weather cell, from the best available forecast at the time of deployment planning (typically 24--48 hours before the event)
7.2 Outputs¶
The algorithm produces:
- Ranked deployment list: For each observer, a recommended position $v_j \in V$ with:
- GPS coordinates (latitude, longitude)
- Expected chord probability $q_i = p_{\text{eff}}(v_j) \cdot \mathbb{P}(\text{observer at } x(v_j) \text{ is in shadow})$
- Cross-track position relative to nominal path (in km)
- Travel distance and estimated travel time from home base
-
Weather cell and forecast $p_{\text{clear}}$
-
Ensemble metrics:
- $\mathbb{P}(K \geq 1)$, $\mathbb{P}(K \geq 3)$, $\mathbb{P}(K \geq 6)$ for the recommended deployment
- Expected number of chords $\mathbb{E}[K]$
-
Comparison to uniform deployment (how much does optimisation improve the probabilities?)
-
Alternative deployments: The top 3 deployment plans ranked by $\mathbb{P}(K \geq k)$, in case observers have constraints not captured in the model
7.3 Communication to Observers¶
The scheduler communicates via:
-
Push notification (48--72 hours before event): "Occultation of [star] by [body] on [date] at [time UTC]. You are assigned to observe from [location name], GPS: [lat, lon]. Travel distance: [X] km, estimated [Y] hours. Your chord probability: [Z]%. Please confirm by [deadline]."
-
Confirmation deadline (24--36 hours before event): Observers confirm or decline. Declined positions are reassigned via a re-run of the optimiser with the reduced observer set.
-
Weather update (12--24 hours before event): Updated deployment based on latest forecast. Observers may be reassigned if weather has changed significantly (e.g., their cell has gone from 80% clear to 20% clear and a better alternative exists within travel range).
-
Go/no-go (6 hours before event): Final confirmation. Observers in transit receive updated weather and any last-minute path refinements.
7.4 Minimum $\sigma_x / W$ Ratio for Optimisation¶
When is deployment optimisation worth doing versus simply telling observers to spread uniformly?
Optimisation adds value when the placement decision matters --- i.e., when different placements give significantly different $\mathbb{P}(K \geq k)$. From the analysis in Section 3.4:
- For $\eta = W/\sigma_x > 3$ (low uncertainty): uniform spreading is near-optimal. Optimisation adds $< 5\%$ to $\mathbb{P}(K \geq k)$.
- For $\eta < 3$ (moderate to high uncertainty): optimisation significantly outperforms uniform spreading, especially for $k \geq 3$.
Threshold: $\sigma_x / W > 1/3$ (equivalently, $\eta < 3$).
If $\sigma_x < W/3$, tell observers to spread uniformly across the shadow width. If $\sigma_x > W/3$, run the full optimisation.
For typical main-belt asteroids: $W \sim 50$--200 km, $\sigma_x \sim 10$--100 km. The ratio $\sigma_x / W$ ranges from 0.05 (well-known path, large body) to 2.0 (poorly known path, small body). Most events will benefit from optimisation.
8. Shape Modelling Requirement: Position Angle Coverage¶
8.1 Why Chord Count Alone Is Insufficient¶
For shape modelling, it is not enough to have $k$ chords --- they must be well-distributed across the body's cross-section. Parallel chords at similar cross-track positions sample nearly the same part of the limb and provide redundant information. Sicardy et al. (2011) and Herald et al. (2020) emphasise that the information content of a chord set depends on the angular coverage of the sampled limb points.
8.2 Definition of Well-Distributed Chords¶
Each chord $i$ at cross-track offset $y_i$ from the body centre (where $y_i = x_i - x_c$, with $|y_i| < W/2$) samples two limb points at position angles:
$$\theta_i^{\pm} = \pm \arccos!\left(\frac{y_i}{R}\right)$$
where $R = W/2$ is the body's (projected) radius. For a circular body, the position angles of the disappearance and reappearance points are $\pi/2 + \arcsin(y_i/R)$ and $\pi/2 - \arcsin(y_i/R)$, respectively, measured from the direction of shadow motion.
More precisely, if the shadow moves in the $+y$ direction and the chord is at cross-track offset $y_i$, the two limb points have angular positions on the body:
$$\alpha_i^D = \pi - \arcsin(y_i / R), \quad \alpha_i^R = \arcsin(y_i / R)$$
(measured counter-clockwise from the $+x$ axis in the body plane). A chord near the centre ($y_i \approx 0$) samples limb points near $\alpha = 0$ and $\alpha = \pi$ (the "sides" of the body). A chord near the edge ($y_i \approx \pm R$) samples limb points near $\alpha = \pm\pi/2$ (the "top" and "bottom" --- i.e., the leading and trailing limbs).
8.3 Position Angle Span Criterion¶
A set of $K$ chords is shape-modelling useful if the set of sampled limb points ${\alpha_i^D, \alpha_i^R : i = 1, \ldots, K}$ spans an angular range $> 180°$ around the body.
For a single chord at $y_i = 0$ (central chord): the limb points are at $\alpha = 0$ and $\alpha = \pi$, spanning exactly $180°$. However, this is only two points --- no shape information beyond a single diameter.
For $K$ chords uniformly distributed with $y_i \in [-R, R]$: the limb points span the full $360°$, and the angular density is $\sim 2K / (2\pi R)$ per unit angle. This is the ideal case.
The problematic case: All chords clustered near $y_i \approx 0$ (centre of shadow). The limb points cluster near $\alpha \approx 0$ and $\alpha \approx \pi$, with poor coverage of $\alpha \approx \pm \pi/2$. The ellipse fit becomes insensitive to the body's extent in the along-track direction.
8.4 Impact on Deployment Strategy¶
The shape-modelling constraint biases the optimal deployment towards limb chords --- observers near the edges of the shadow ($|y_i| \approx R$).
However, there is a tension:
- Limb chords are geometrically informative (they sample the leading/trailing limb) but have higher timing uncertainty projected onto the limb position (the $f$ factor from [[Occultation Geometry and Chord Reconstruction]], Section 3.1, where $f \approx 2$--5 for near-limb chords)
- Limb chords are risky when $\sigma_x > 0$: an observer placed near the edge of the nominal shadow is more likely to be outside the actual shadow if the path shifts
The modified objective for shape modelling incorporates an information-quality weight $w_i$ for each chord:
$$w_i = \frac{1}{f(y_i)} \cdot g(\alpha_i)$$
where $f(y_i)$ is the limb-point uncertainty factor (increasing near the edge) and $g(\alpha_i)$ rewards angular diversity (e.g., $g$ penalises chords that are angularly close to existing chords).
A simpler heuristic: define the effective shape information of a chord set as:
$$I_{\text{shape}} = \frac{\text{angular span of sampled limb points}}{2\pi} \cdot \frac{K}{K_{\min}}$$
where $K_{\min} = 5$ for an ellipse fit. The deployment should maximise $\mathbb{E}[I_{\text{shape}} \cdot \mathbf{1}_{K \geq k}]$ rather than just $\mathbb{P}(K \geq k)$.
8.5 Practical Recommendation¶
For shape-modelling campaigns ($k \geq 6$):
-
Reserve 2 observers for limb positions: Place two observers at $x_i = \pm (W/2 - \epsilon)$ where $\epsilon \sim 0.1 W$ (just inside the nominal shadow edge). These provide the high-angle limb points essential for constraining the leading/trailing limb shape.
-
Distribute remaining $N - 2$ observers to maximise $\mathbb{P}(K \geq k)$ using the algorithm from Sections 4--6.
-
Accept the risk: Limb observers have lower individual chord probability (they are near the edge and more sensitive to path shifts). The trade-off is justified because their information content per chord is higher for shape modelling.
-
Quantitatively: For $\eta > 2$, the limb strategy costs $< 5\%$ in $\mathbb{P}(K \geq 6)$ but improves the expected shape-fit quality by $\sim$30--50% (measured by reduction in $\sigma_{a/b}$).
9. Summary: Decision Flowchart¶
Given an incoming occultation prediction:
- Compute $\eta = W / \sigma_x$.
- If $\eta > 3$: uniform deployment across shadow width. No optimisation needed.
-
If $\eta \leq 3$: run the full deployment optimiser.
-
Determine science goal $\to k$.
- Confirmation: $k = 1$. Maximise coverage.
- Size measurement: $k = 3$. Balance coverage and concentration.
-
Shape modelling: $k = 6$. Include limb observers.
-
Collect inputs: viable positions, weather forecast, observer availability.
-
Run optimiser:
- Small instance ($\binom{M}{N} \leq 10^7$): exhaustive search.
-
Otherwise: greedy with 100 restarts.
-
Output deployment plan with per-observer chord probabilities and ensemble metrics.
-
Communicate via push notification with GPS coordinates, travel directions, and deadline.
-
Re-optimise at 24h and 12h before event with updated weather.
10. References¶
- Millis, R. L. & Elliot, J. L. (1979). "Direct determination of asteroid diameters from occultation observations." AJ, 84, 1917. --- Foundational occultation geometry and observation methodology.
- Herald, D. et al. (2020). "Asteroid occultation results from the worldwide observation network." MNRAS, 499, 4570. --- Chord fitting methodology, IOTA standards, shape-fitting procedures.
- Sicardy, B. et al. (2011). "A Pluto-like radius and a high albedo for the dwarf planet Eris from an occultation." Nature, 478, 493. --- Multi-chord TNO shape reconstruction from distributed observers.
- Morgado, B. et al. (2022). "A dense ring of the trans-Neptunian object Quaoar outside its Roche limit." Nature, 614, 239. --- Modern chord-based shape and ring reconstruction; demonstration of the power of distributed amateur networks.
- Nemhauser, G. L., Wolsey, L. A. & Fisher, M. L. (1978). "An analysis of approximations for maximizing submodular set functions." Mathematical Programming, 14, 265--294. --- Greedy algorithm approximation guarantees for submodular maximisation.
- Braga-Ribas, F. et al. (2014). "A ring system detected around the Centaur (10199) Chariklo." Nature, 508, 72. --- Ring discovery via distributed occultation observations.