Module Ephemeral.Vector_table

Specifying and parsing JPL vector tables

type vtable_entry = {
  1. time : float;
    (*

    Time of entry w.r.t. epoch

    *)
  2. pos : Common.vec3;
    (*

    Position vector

    *)
  3. vel : Common.vec3;
    (*

    Velocity vector

    *)
  4. lt : float;
  5. rt : float;
    (*

    Distance from coordinate center

    *)
  6. rr : float;
    (*

    Radial velocity

    *)
}

Vector Table Entry

val string_of_vtable_entry : vtable_entry -> string

String representation of vtable_entry

type body = {
  1. name : string;
  2. id : int;
}

Celestial body

val string_of_body : body -> string

String representation of body

type vtable = {
  1. center_body : body;
    (*

    Body at center of coordinate system

    *)
  2. target_body : body;
    (*

    Tracked body

    *)
  3. entries : vtable_entry list;
    (*

    Position, velocity data over time

    *)
}

Vector Table

val string_of_vtable : vtable -> string

String representation of vtable

val time_span : vtable -> float * float

Min and max time tracked

val align : vtable list -> vtable list

Align a list of vtables to their common overlapping time window. Entries outside the window are dropped. Returns an empty list if there is no overlap.

val common_center : vtable list -> body

Get the common center body from a list of vtables, or throw an error