closestApproachfunction
When two bodies come closest in a span, and how close: the span is scanned in coarse steps (the fastest body goes round forty times in the step, at most two days), then the smallest minimum is narrowed to about a second of time by golden-section search. If the separation only falls or only rises through the span, the end that is smaller is returned and atEdge says so. With by: "sky" the separation is the angle in the sky of the observer and a minimum may be an occultation, the angle falling through 0; with by: "space" it is the distance between the centres.
The result carries uncertaintyArcseconds (or uncertaintyKm) for the separation, from the accuracy guide's limits, and uncertaintySeconds for the moment: that error over how fast the pair moves past each other.
Import it
import { closestApproach } from "@johnmorrisdotca/wakusei-planets/nearest";
Definition
function closestApproach(a: BodyId, b: BodyId, options: ApproachOptions): Approach
Parameters
| Name | Type | Description |
|---|---|---|
a | BodyId | One body. |
b | BodyId | The other. |
options | ApproachOptions |
|
Returns
Approach
The moment, the separation, and the accuracy to expect.
Examples
import { closestApproach } from "@johnmorrisdotca/wakusei-planets/nearest";
const great = closestApproach("jupiter", "saturn", { from: Date.UTC(2020, 11, 1), to: Date.UTC(2021, 0, 1) });
console.log(great.time.toISOString(), great.angle?.toFixed(3), "degrees");2020-12-21T18:25:35.939Z 0.102 degreesWhat it prints (run when this page was built)