--- title: "Two readings of a position" subtitle: "Historical planetary models, historical star catalogues, and the animations that keep the two readings apart" format: arxivai-typst: keep-typ: true book: false author: - name: Gerd Graßhoff affiliations: - name: Philosophisches Institut department: "" city: Berlin country: Germany - name: Forschungsinstitut des Deutschen Museums city: München country: Germany orcid: 0000-0002-4450-357X email: gerd.grasshoff@hu-berlin.de abstract: | A question about a place in the sky, asked of a historical text, has two answers. The table reading is the longitude a named model produces from its own parameters. The sky reading is the apparent ecliptic longitude of date from the JPL ephemeris DE441 at the same instant. This paper describes a small expert that keeps the two answers side by side. The Almagest model was recomputed from a transcribed parameter file and checked against R. H. van Gent's calculator: on 200 dates and seven bodies the worst difference was far below one arcminute. The same ephemeris, read through Skyfield, agreed with JPL Horizons to 0.035 arcminutes on 50 Julian Dates for the Sun. Over those 200 dates the table reading and the sky reading differ by degrees, and for Mercury the largest difference was 12.03 degrees. Star catalogues from CDS are loaded with the counts printed in their ReadMe files. Charts follow the sky-view convention of d3-celestial and are drawn with D3. Six animations are computed from sourced numbers. Four further animations are gaps, because their parameters have not been read off a page. bibliography: astronomical-expert-bibliography.bib --- # Two readings Many records in early astronomy were computed from the tables then in use. A longitude in such a record is evidence about the table, and only afterwards evidence about the sky. The expert described here therefore answers a position question twice. The table reading is a function of a named model, a body, and an Egyptian date counted from noon on 1 Thoth of year 1 of Nabonassar. The sky reading is the apparent ecliptic longitude of date at the Julian Date that R. H. van Gent's calculator assigns to that day count. The difference is reported with the two longitudes. It is not folded back into either of them. The Julian Date has the form written in his script: the day count, plus 1,448,637, plus the fraction $(22 - (17 + 34/60)/60)/24$. That expression is stored in the parameter file. It was not re-derived from a page of an edition. # Sources and licences Van Gent's pages on the history of astronomy, the calendar, and celestial cartography are mirrored locally and cited by URL and access date [@vangent]. The mirror is a source. It is not redistributed, and his JavaScript is not copied into the library. The Handy Tables, the Toledan Tables, and the Parisian Alfonsine Tables remain gaps. The Alfonsine Tables of Toledo, Tycho's solar theory, his model of Saturn, and Kepler's Martian models are recorded in the companion paper, with a provenance on each value. A digitised copy of the Prutenic Tables is stored and has not been transcribed. The parameter transcription for the Almagest is his. Toomer's translation is the edition one would re-read [@toomer1984]. The bibliographic line used here is the one printed in the Stellarium sky-culture description of the Greek Almagest. The page images in the PDAI collection `greek-astronomy/Ptolemy1984` were not re-read for the numbers in the parameter file, and the file records that gap. The star catalogues are the CDS editions of Ptolemy and Ulugh Beg [@verbunt2012], of Tycho in the editions compared by Verbunt and van Gent [@verbunt2010tycho], and of Hevelius [@verbunt2010hevelius], together with the Hipparcos main catalogue [@esa1997] and the constellation boundaries of Davenhall and Leggett [@davenhall1989]. Each catalogue is stored with the ecliptic longitude and latitude and the magnitude as printed, the epoch named in the ReadMe, the variant rows where the editors published them, and the Hipparcos number the editors printed as a cross-identification. Stellarium sky cultures are kept as separate files with their own licences. The MUL.APIN culture and the Greek Almagest culture are CC BY-ND 4.0 [@hoffmann-mulapin; @schmidt-almagest]. Their paintings are not redrawn. A line in those files is a sequence of Hipparcos numbers. With the full file loaded, that line list can be drawn as published. @fig-bear is the Small She-Bear from the Greek Almagest culture. The sequence of stars was not changed. The sky charts follow the coordinate convention of d3-celestial [@frohn2015]: in sky view, north is up and east is to the left. The drawing itself uses D3 version 7. The BSD-3 notice and the D3 notice are kept with the code. DE441 is the ephemeris of Park, Folkner, Williams, and Boggs [@park2021]. The kernel used here is part 1, 1,651,119,104 bytes. Positions are read with Skyfield 1.55. A separate bibliographic record for Skyfield was not checked. # The model registry One interface returns a longitude, a latitude, and the construction points the animation draws: the deferent centre, the equant, and the epicycle centre. Each model has a parameter file. A number in that file cites a locus, or the file says that the locus was not checked. An empty parameter leaves the model pending. No value is filled in to make a figure. | Model | Bodies | Parameters | Checked against | Status | |---|---|---|---|---| | Almagest | 7 bodies | van Gent | 200 dates | transcribed | | Handy Tables | | unread | | gap | | Prutenic | | digitised copy stored | | not transcribed | | Tychonic | | braheOO-02 and Carman 2020 | | partial, in the companion paper | | Rudolphine | | KGW 10 | | partial, tables not yet trusted | | Kepler, 1609–1611 | Mars | Carman 2026a | 35 entries | partial | | ACT, Systems A and B | Moon | Neugebauer 1975, unread | | gap | | Toledan Tables | | unread | | gap | | Eudoxan spheres | | equal radii | page not checked | reconstruction | The Almagest comparison used his calculator with the equation of time switched off, and the same choice in the reimplementation. On 200 dates from Nabonassar year 1, seven bodies, 1400 longitudes, the worst difference was $6.8 \times 10^{-12}$ arcminutes. The limit set in advance was one arcminute. The sky reading was checked separately. Fifty Julian Dates inside the span of the kernel were sent to JPL Horizons for the geocentric Sun, observer ecliptic longitude of date, and computed locally at the same UT1 instant. The worst difference was 0.035 arcminutes. A comparison by calendar date, made earlier, was several degrees off before 1582, because Horizons treats those dates as Julian. The gate does not mix the two calendars. On the 200 Egyptian dates, the table reading and the sky reading differ by degrees. The largest difference was 8.02° for the Sun, 8.76° for the Moon, 12.03° for Mercury, 10.73° for Venus, 8.87° for Mars, 4.92° for Jupiter, and 7.30° for Saturn. Mercury's difference is the one van Gent's introduction leads one to expect, and it is here a measured maximum on this set of dates, not a quotation. Inner planets take their mean longitude from the mean Sun. Using the true solar longitude instead shifts Mercury and Venus by the solar equation, about two and a half degrees at the epoch, on every date. That error was found against the calculator and removed. The outer planets did not show it. # Catalogues The loaded counts match the ReadMe files: Ptolemy 1028 stars, Ulugh Beg 1018, the 1627 edition of Tycho 1007 with 82 variant rows, Hevelius 1564. Ulugh Beg's zodiacal sign is zero-based in the editors' note, and the loader follows that note. Latitude is positive to the north, as the formula notes state. The boundary file for equinox 1875 contributes 1565 records [@davenhall1989]. Hipparcos cross-identifications printed by Verbunt and van Gent are stored with the historical rows. Catalogue I/239 is loaded at the ReadMe count, 118218 records [@esa1997]. Two hundred and sixty-three records leave the decimal right ascension blank. Those places are taken from the sexagesimal columns of the same record. A short gold dash in @fig-corona runs from each Ptolemy place to the Hipparcos place of the same star, reduced to the apparent ecliptic of 1 January 137 TT, with the proper motion published in I/239. Each catalogue row is also written as a set of statements: membership in a constellation, a location, a magnitude, and a sameness with a Hipparcos number when the editors printed one. The statements use the predicates already defined for the normalisation model. They do not add a second structure for stars. # Charts A chart request is a JSON document: projection, sky view or globe view, stars, lines, and bodies. The same document is the contract for the drawing program and for the HTTP call that asks for a chart. Sky view reflects the horizontal axis, so east lies to the left when north is up. Globe view does not. An extremal boundary is not stroked. A membership line is dashed. A culture line, when the Hipparcos positions exist, is drawn in a second ink and labelled with the culture's name. A body may be marked as a table reading or a sky reading, and the two marks differ. The request for @fig-corona is `requests/corona.json` in the expert package. The stars are the eight entries of Corona Borealis in the Ptolemy table of Verbunt and van Gent, seq 111 to 118, at the ecliptic coordinates printed there. The dashed line is a membership statement among three of them. A closed extremal path is present in the request and is not drawn. The colophon names the view, the projection, that omission, and a hash of the request. Two runs of the same request produce the same file. ![Corona Borealis in the Ptolemy catalogue. The dark dashed stroke is a membership line. The short gold dashes run to the Hipparcos places at 1 January 137 TT. An extremal path in the same request is not drawn.](figures/corona.pdf){#fig-corona width=78%} ![The Small She-Bear in the Greek Almagest sky culture. The line is the published Hipparcos sequence, drawn in equatorial coordinates.](figures/she-bear.pdf){#fig-bear width=70%} Print output is a PDF from the same SVG, at 300 dots per inch. The figures in this paper are those PDFs. # Animations An animation is a sequence of frames bound to a locus. A quotation is shown only after it has been checked against the text. None of the quotations aimed at below were checked against a page image in this run, so none are printed. The frames that could be computed from the parameter file and the catalogues were computed. The others say what is missing. ::: {layout-ncol=2} ![Mars on Egyptian day 0. Filled mark: Almagest longitude 357.48°. Open mark: DE441 longitude 355.16°.](figures/mars-day0.pdf){#fig-mars0} ![The same construction on Egyptian day 425. Table longitude 228.85°, sky longitude 227.67°.](figures/mars-day425.pdf){#fig-mars425} ::: The Mars sequence covers 780 Egyptian days. The equant sequence holds the date fixed and adds the Earth, the deferent, the equant ray, and the epicycle one stage at a time (@fig-equant). Both sequences are table readings of the Almagest parameters. The sky mark on the Mars frames is the DE441 longitude. The books are Almagest IX–XI. The sentences were not checked, and the caption says so. ![The equant construction for Mars at Egyptian day 200, after all four stages. Table longitude 129.73°.](figures/equant.pdf){#fig-equant width=70%} Jupiter and Saturn are drawn from the same model at Nabonassar years 2340 through 2351. The identification of year 2350 with 1603 is the arithmetic $1603 + 747$. It was not checked against a page of *De stella nova*. Both marks in that animation are table readings. One star of Corona Borealis, Ptolemy seq 111, longitude 194.67° in the catalogue, is carried forward by the Almagest precession rate stored in the parameter file, one degree in 36525 days (@fig-precession). The open mark is Hipparcos 76267 at 196.09°, the apparent ecliptic of 1 January 137 TT. It stays at the catalogue epoch. The filled mark is the catalogue longitude plus the Almagest rate. The two readings of the boundary of Corona Borealis discussed by Grasshoff and Hoffmann and by Gysembergh, Williams, and Zingg stay two readings [@grasshoff2024; @gysembergh2025]. Extremal stars are not drawn as a rectangle. No sentence from either paper is copied here. ![Catalogue longitude of Corona Borealis seq 111, carried 6.5° by the Almagest rate. The open mark is Hipparcos 76267 at the catalogue epoch.](figures/precession.pdf){#fig-precession width=70%} Sirius is Ptolemy seq 818 in Canis Maior, Hipparcos 32349, ecliptic longitude 77.67° in that table. The animation gives the solar longitude from the Almagest model and the elongation from that star. A heliacal rising also depends on the horizon and on a latitude. Those are not computed (@fig-sirius). The hippopede is the curve of the modern two-sphere reconstruction, drawn with equal radii (@fig-hippopede). Neugebauer's discussion is named in the parameter file. No page of it was checked, and the caption says that the radii are not a measured parameter of Eudoxus. ::: {layout-ncol=2} ![Solar elongation from the catalogue longitude of Sirius. The horizon is not part of the frame.](figures/sirius.pdf){#fig-sirius} ![The hippopede with equal radii, labelled as a reconstruction.](figures/hippopede.pdf){#fig-hippopede} ::: Four named animations remain gaps. Copernicus waits on a reading of *De revolutionibus*. The Rudolphine frame waits on a trusted reading of KGW 10. Tycho's nova of 1572 waits on a sourced position. The Babylonian lunar step functions wait on the zone boundaries in Neugebauer. A gap frame prints that reason and draws no substitute curve. # Five observations, as annotations The companion paper on calculation tools gives the record format. The five plates below are the annotations: the report, the stated place on a short stretch of the ecliptic, and the Almagest derivation at Duke's Julian day. On the first of them the model lies 3.3 arcminutes from the stated longitude of 81;00, and DE441 lies 33.4 arcminutes from it. The same paper carries one entry of the 1609 ephemerides and the admission for Tycho's Saturn, where no opposition longitude was read. ![Mars t1. Stated longitude 81;00. The model is 3.3 arcminutes west of it. DE441 is 33.4 arcminutes east of it.](figures/mars-t1.pdf){#fig-t1 width=78%} ![Mars t2. Stated longitude 148;50. The model is 5.8 arcminutes west of it. DE441 is 91.6 arcminutes east of it.](figures/mars-t2.pdf){#fig-t2 width=78%} ![Mars t3. Stated longitude 242;34. The model is 3.8 arcminutes west of it. DE441 is 29.8 arcminutes east of it.](figures/mars-t3.pdf){#fig-t3 width=78%} ![Mars t4. Stated longitude 241;36. The model is 2.6 arcminutes west of it. DE441 is 34.1 arcminutes east of it.](figures/mars-t4.pdf){#fig-t4 width=78%} ![Mars t5. Stated longitude 212;15. The model is 4.8 arcminutes east of it. DE441 is 21.6 arcminutes east of it.](figures/mars-t5.pdf){#fig-t5 width=78%} Each animation is written as SVG frames, a screen PNG, a PDF, PNG files at 300 and 600 dots per inch, an MP4, a WebM, and a frame strip. A single HTML page holds a scrubber. The clock is D3's timer, and the same page can be stepped by hand. # Limits The Almagest parameters are a transcription whose primary check is still open. The agreement with van Gent's calculator shows that the reimplementation follows his transcription. It does not show that the transcription follows Toomer's pages. The sky gate covers the Sun at 50 instants. It does not by itself certify every planet at every date. The planet sky readings use the same kernel, the same time scale, and the same ecliptic of date. Mars, Jupiter, and Saturn are taken at the barycentre, because part 1 of DE441 does not carry a separate body for them. Delta T is not introduced as a separate series. Both sides of the Horizons gate are UT1. A few hours of Delta T move the Sun by arcminutes, which is why the instants have to be the same ones. Pending models stay pending. The boundary controversy is left as two readings. Culture paintings under a no-derivatives licence are not redrawn. The line lists are drawn as published.