flowchart LR vg["van Gent mirror, cited source"] --> models["model registry"] cds["CDS catalogues"] --> cat["catalogue database"] eph["DE441 and UT1"] --> api["astronomical expert, port 5142"] models --> api cat --> api api --> js["sky charts, D3 version 7"] js --> anim["animations"]
Table reading and sky reading
A position question is answered twice. The table reading is what a named historical model gives for that date. The sky reading is what DE441 gives for the same instant. The difference is kept beside the two numbers. It is evidence about the text, because many ancient records were computed from the tables then current.
The service listens on 127.0.0.1:5142. A position is model_position. The pair of readings is table_vs_sky. Catalogue rows are catalogue_star and catalogue_compare. Charts and animations are render_map and render_animation. The same seven names are the tools of the MCP interface. render_map and render_animation are invoked over HTTP, because they write files.
The Almagest model is a reimplementation from the sexagesimal parameters in params/almagest.yaml. Those parameters are R. H. van Gent’s transcription. His JavaScript is not part of this library. It is run, headless, only to produce the comparison fixtures. The pages of Toomer’s translation in the PDAI collection greek-astronomy/Ptolemy1984 were not re-read for this transcription, and the parameter file says so.
Models whose parameters have not been read off a page are pending. A pending model raises an error. It does not borrow a number from another model.