ARCKEEP v0.1 home engine how it works how to use uncertainty status

How ARCKEEP works

What ARCKEEP does with a series of telescope frames of an asteroid: how it finds where the frames point, which moment each position belongs to, how it follows the asteroid from frame to frame, how it predicts and identifies a known asteroid, and what it writes for the Minor Planet Center.

The page is written to be read two ways. The main text assumes first-year engineering: Newton's laws, vectors and basic statistics. The boxed notes marked "for researchers" give the exact method, its assumptions and its limits, so a specialist can judge it without reading the code. To learn the buttons rather than the method, read how to use ARCKEEP.

ARCKEEP is a proof of concept built by first-year space technology students at LTU and coded with AI agents. Every stage carries a status word. working means the capability runs in the website today for the inputs named. tested means it exists and has passed a recorded check, but the website does not use it yet. planned means it does not exist yet.

StageWhat it doesStatus
1. LoadReads FITS frames, their headers and the stars and objects in themworking
2. Image to skyMatches the stars to the Gaia catalogue and turns any pixel into a sky positionworking
3. TimeDecides which moment each position belongs toworking
4. TargetFinds the asteroid in each frame by its shapeworking
5. TrackChecks that the positions form one smoothly moving objectworking
6. PredictionComputes where a known asteroid should be, from a given site at a given timeworking
7. IdentificationSearches every known near-Earth asteroid for one that matches the track, and checks a named object against its orbitworking
8. ADES exportWrites the confirmed positions in the format the Minor Planet Center acceptsworking
8a. ADES inputReads positions someone has already measured and compares them with an orbittested
9. UncertaintyStates how far each reported position could be from the truthplanned
  1. Reading the frames
  2. From an image to a sky position
  3. Which moment a position belongs to
  4. Finding the asteroid in each frame
  5. Following one moving object
  6. Predicting a known asteroid
  7. Which asteroid is this?
  8. Reporting: the ADES file
  9. How sure is a position? (summary)
  10. Where your data goes
  11. What ARCKEEP does not claim
  12. Glossary
  13. Credits and sources

1 Reading the frames working

A telescope frame arrives as a FITS file: a grid of pixel brightness values plus a header of text cards that say when, where and how it was taken. ARCKEEP reads the file in your browser. From the header it takes the observation time (DATE-OBS), the exposure length, the observing site's MPC code, the filter, and the telescope's rough pointing and pixel scale.

It then estimates the sky background across the frame and finds up to 200 sources: the stars and anything else brighter than the background. For each source it measures a centroid (the centre of the blob), its brightness and its shape.

Frames from a telescope that tracks the asteroid show the stars as short parallel trails. ARCKEEP recognises that, measures each trail's midpoint, and also runs a line filter that finds faint trails too weak to extract. Those faint ones are marked as leads for inspection only; they never enter the solve.

for researchers

Primary 2D HDU only. Background and noise from a 32-pixel tile estimate; extraction and Gaussian-weighted windowed centroids from the vendored AstroSolve, following the SExtractor principle (Bertin and Arnouts 1996). For trailed stars a streak spread function fit refines each trail midpoint on the original pixels, after Astreaks (Sharma et al. 2023); both the windowed and the refined centroids are solved and the solution with more matches, then lower RMS, is kept and named in the terminal. The pixels shown on screen are a display stretch; every measurement uses the original array values. The optional noise reduction is display only too: a Gaussian whose sigma is the frame's median source FWHM over 2.355, applied as three running box averages per axis. On 20 frames of 2026 HN1 it raised the asteroid's peak from 3.3 to 5.8 times the local background scatter.

2 From an image to a sky position working

Science needs directions on the sky, given as right ascension (RA) and declination (Dec): the sky's longitude and latitude. ARCKEEP matches the pattern of stars in the frame against the Gaia star catalogue and fits the mapping between pixel coordinates and sky coordinates. That mapping is the plate solution, also called the WCS. Once it exists, any pixel, including the asteroid's, converts to RA and Dec.

The reference stars come from ESA's Gaia mission, the most precise star map there is. ARCKEEP built its own index of every Gaia star down to magnitude 17, 157,731,259 stars, and keeps it on Cloudflare storage. For each frame the browser asks only for a small circle of sky around the header's pointing, and only as deep as the frame needs: about twice as many stars as the frame shows. Fainter stars than the frame records would only slow the search and add false matches.

The first attempt uses only the catalogue stars that can lie on the frame. If it fails, ARCKEEP tries once more with the whole circle at full depth. Solving runs in background workers, so the page stays usable while a hard frame is searched.

for researchers

Gaia DR3 positions and proper motions, propagated from epoch 2016.0 to the observation epoch. The index is built by tools/build-star-index.mjs from the ESA Gaia Archive, read by exact HEALPix source_id ranges and checked chunk by chunk against COUNT(*). It holds four magnitude levels (to G 12, 14, 16 and 17) in declination bands, served by byte range through /api/catalogue; the request asks for twice the detected sources scaled by the cone's area over the frame's, rounded up to a power of two so a sequence's frames share one request. The first solve sees catalogue stars within 1.3 half-diagonals of the pointing hint; in a sparse field the padded cone's brightest stars can all lie off the frame. Against live ESA queries, eight test cones (RA wrap-around, both poles, band edges, the galactic plane) returned the same 3,900 stars star for star (2026-10-19). The J75 test field uses a bundled Gaia extract instead.

The fit is a Gaia-referenced tangent-plane solution with optional SIP distortion (Shupe et al. 2005), computed by the vendored AstroEquip solver, whose pattern matching follows Astrometry.net (Lang et al. 2010). The fit RMS reported with each solution is the scatter of the reference stars about the fit. It is not the uncertainty of the asteroid's position (section 9).

3 Which moment a position belongs to working

An asteroid moves during the exposure, so a position is only meaningful together with the moment it belongs to: normally the middle of the exposure. FITS headers record a time, but do not say whether it marks the start or the middle. Guessing wrong puts the position half an exposure late, which for a fast asteroid is several arcseconds along its path.

ARCKEEP reads DATE-OBS as UTC and, by default, adds half the exposure to get the midpoint. A site moves to the mid-exposure list only when ARCKEEP's positions of known asteroids, compared with their MPC orbits, show that its DATE-OBS already marks the middle. Tautenburg (033) is the only such site so far. The Info view says which rule was applied to each frame, and says so when it is the unverified default.

for researchers

Evidence from scripts/orbit-check.mjs: seven 19 s Tautenburg frames of 2019 FL1 missed the orbit by 7.698 arcsec along the track at the midpoint tag, and the positions belong at DATE-OBS minus 0.18 ± 0.08 s; three 15 s frames of 2024 YR4 belong at DATE-OBS plus 0.30 ± 0.06 s. A late clock would have predicted different offsets for the two exposure lengths, so the second case rules it out. One function, exposureStartMs, applies the rule everywhere a midpoint is used: measurement, Plot and Verify, path checks and ADES. Other sites are unchecked.

4 Finding the asteroid in each frame working

In most frames the asteroid is the one source with a different shape. If the telescope followed the stars, the stars are round and a moving asteroid makes a streak. If the telescope followed the asteroid, the stars are streaks and the asteroid is round. ARCKEEP compares every source with the frame's typical shape and marks a target candidate only when exactly one source has the opposite shape. With none, or several, it leaves the choice to the track (section 5) or to you.

A long faint trail that the source finder breaks into pieces is still recognised as one line, with its ends and midpoint measured on the original pixels. A candidate is a candidate: shape alone never proves which object it is.

for researchers

Shape is the axis ratio of each source's second moments, saturated cores excluded. A field is round when at least 70% of usable sources have an axis ratio of 1.6 or less; a streak candidate then needs a ratio of at least 2 and a length at least three times the typical source. A field is trailed when at least 70% of sources align within 40 degrees of a common direction; a candidate is then a round source of the typical width. A streak whose half length reaches the frame edge is excluded, because its midpoint is biased. A manual pick snaps to the nearest source of the expected shape and stays a user-selected candidate.

A whole series of frames can find what one frame cannot. Before solving, ARCKEEP can line the frames up on their stars and subtract what stays still: stars, galaxies and the sky's glow. What is left is sorted by how it moves. A spot that stays on the same pixel of the camera is a hot pixel. A long streak in one frame is a satellite or aircraft. An object that moves in a straight line at a steady speed across many frames is the candidate, and it becomes the target in each frame where it is detected. Its position is always measured on that frame's own pixels, never on the combined image.

for researchers

Offered once per sequence of at least eight frames when at least 70% of frames have round stars, before any solve. Registration is the median shift of the matched extracted stars (up to 200 a frame) against the middle frame, translation only. The template is the median of 31 evenly spaced registered frames, built in row bands in the background workers; bright-star cores (above 30 times the template noise) are masked. Each frame minus the template is searched at 4 sigma of the smoothed difference image's measured noise. Detections recurring on one detector pixel in four or more frames are defects, on one sky position star residue; an unlinked detection with a second-moment major axis over 4 pixels and an axis ratio above 3 is reported as a satellite or aircraft. A track pairs early and late detections, needs support in at least 30% of frames, and is refitted by least squares. Only one track is accepted; with several, none is marked. Each supporting detection is re-centroided on the original pixels with a 3-pixel window and a 6 to 10 pixel annulus, and dropped if that moves it more than 2 pixels. On 145 frames of 2026 HN1 from site 204 the 81 marked positions lie a median 0.70 arcsec from JPL Horizons through the header WCS without SIP, which is consistency, not astrometric accuracy. Untested on asteroid-tracked frames, rotating fields, or fewer frames (docs/SOLVER.md).

5 Following one moving object working

An asteroid moves against the stars, so each frame in a series shows it in a slightly different place. ARCKEEP orders the frames by the middle of each exposure, converts each candidate to a sky position, and fits a straight line in time through those positions, separately in the two sky directions. Over minutes to an hour, an asteroid's path is very nearly a straight line at constant speed.

Each point's distance from the line is its O-C: observed minus computed. A point far from the line, or a frame where several candidates fit, is flagged. You must confirm or fix every flagged frame before the sequence can be confirmed. Plot and Verify shows the track as an animation, as motion on the sky, as position against time and as residuals, with a table of every frame.

The straight line fails for objects passing close to Earth. Their path curves within the hour, partly because the telescope itself is carried around by Earth's rotation. With five or more frames ARCKEEP also fits a curve and warns when the bend is significant. The lasting check is against the predicted path (sections 6 and 7).

for researchers

Ordinary least squares per axis on tangent-plane offsets in arcseconds. A frame is flagged when its O-C exceeds the larger of 2 arcsec and four times the median residual, or when more than one candidate lies near the track. The fitted rate is shown with its standard error and the per-axis scatter, labelled as fit properties. The curvature warning needs a quadratic term of at least 4 sigma that bends the track by at least 0.2 arcsec over the span; both limits are uncalibrated review heuristics. From site J75 a one-hour straight-line fit to JPL positions of 2026 RG15 misses by 0.701 arcsec 24 hours before its 95,590 km pass and by 44.930 arcsec 12 hours before; for 2026 PC6, 6.510 arcsec 12 hours before (scripts/orbit-check.mjs). A straight line absorbs any error shared by every frame, such as a constant clock offset, so a good fit tests internal consistency only, never accuracy or identity.

6 Predicting where a known asteroid is working

ARCKEEP computes, in your browser, where a catalogued asteroid should appear from your site at each frame's time. It is used three ways: to check a named object against its orbit, to search for which known object is in the frames, and to draw a candidate's path on a frame (section 7).

6.1 An orbit is six numbers at a moment

To know where an asteroid will be, you need where it is and how it is moving at one instant: a position vector (x, y, z) and a velocity vector (vx, vy, vz) relative to the Sun. With those six numbers and the forces acting on it, Newton's second law gives its position at any other time. The Minor Planet Center (MPC) publishes these six numbers, with their uncertainties, for every catalogued asteroid. Together they are the state vector.

6.2 The Sun alone gives an exact answer

If the Sun were the only body pulling, the asteroid would follow a fixed ellipse forever. That is the two-body problem, and it has an exact solution: Kepler's equation says where on the ellipse the asteroid is at any time. No step-by-step simulation is needed, and no error builds up.

6.3 The planets add nudges

The planets pull too: mostly Jupiter, and Earth for objects passing close. Their pull slowly bends and reshapes the ellipse. The method handles this in short time steps:

  1. Coast along the exact Sun-only ellipse for a short step.
  2. Give the velocity a small kick equal to the planets' pull over that step.
  3. Repeat.
coast on the exact ellipse kick from the planets o --------------------------> o ^ | o --------------------------> o ^ | o ----> ...

It is like a car on cruise control along a curved road, with small steering corrections now and then. Close to Earth, where Earth's pull changes quickly, the steps are made much shorter. The planets' positions come from JPL's DE440 ephemeris, stored with the website for 2010 to 2040.

6.4 Why not just integrate x, y and z?

You could integrate the six numbers directly with a standard numerical method. The worry is that tiny rounding errors accumulate step after step, and the orbit slowly drifts.

Under the Sun alone, the size, shape and tilt of the orbit never change; only the asteroid's position along it does. Orbital elements (semi-major axis, eccentricity, inclination and so on) describe exactly those fixed properties, so the coasting step changes one number and holds the rest fixed. Nothing can drift during the coast.

The planets, however, really do change the orbit. So the method coasts exactly on the current orbit and lets the planetary kicks move it to the next one. It does not force the asteroid back onto the orbit it started on, because that would delete real physics.

for researchers

Wisdom-Holman style kick-drift-kick splitting for a heliocentric test particle (src/orbit.js). The drift is an exact Kepler step in universal variables, solved by Laguerre-Conway iteration (Conway 1986), because Newton's method diverged for one NEA over a long drift; hyperbolic orbits are handled. The kick includes direct and indirect planetary terms with the Moon separate from Earth, the solar 1PN relativistic term, Earth's J2 near Earth, and the Yarkovsky transverse acceleration A2 where the MPC orbit fits one (Farnocchia et al. 2013). The step shrinks with geocentric distance near close approaches. Planets come from a DE440 Chebyshev extract for 2010 to 2040 (2.27 MB); outside it the reader refuses rather than extrapolating.

Why this method. The variable step near Earth gives up the symplectic property, so what remains is an exact Kepler step and a second-order kick. For the days to months that matter for follow-up, the field's usual choice is a high-order adaptive integrator such as IAS15, used by REBOUND and ASSIST. We chose splitting because it is the smallest correct method we could write without a dependency, and kept it because it meets its validation targets. Its weak point is the very small steps it needs near Earth, which is where IAS15 is strongest; IAS15 is the fallback if speed or passes closer than 20,000 km require it.

Validation against JPL Horizons (scripts/orbit-check.mjs, run by make check): over one year from J75, started from JPL's state, 2024 YR4 stays within 0.00381 arcsec and Apophis within 0.00877; started from the MPC orbit, 0.0374 and 0.0107. Through 2026 PC6's 21,918 km pass the position stays within 0.0306 km and 0.193 arcsec; without Earth's J2 it would be 80 km off. DE440 planet positions from the extract agree with the Horizons tables to 0.00254 km. TDB minus TT, UT1 minus UTC and polar motion are not modelled; they explain PC6's 0.19 arcsec at closest approach.

On terms: in the canonical phase space of the Kepler problem the whole space is a single symplectic leaf, and leaves of constant angular momentum appear only after reducing by rotations. What the method relies on is narrower: orbital elements act as action-angle coordinates for the two-body flow, so the drift is exact. One rounding trap lies in the clock, not the state: a Julian Date near 2.46 million stored as a 64-bit float resolves only about 40 microseconds, so the integrator accumulates elapsed time from zero and adds the epoch only when looking up planet positions.

6.5 From a position in space to a position on the sky

The prediction gives the asteroid's position relative to the Sun. The telescope sees a direction. To convert:

  1. Work out where the telescope is: Earth's position, plus the site's position on the rotating, slowly wobbling Earth.
  2. Subtract the telescope's position from the asteroid's position.
  3. Correct for light travel time. You see the asteroid where it was when the light left it, seconds to minutes earlier for a nearby asteroid.
  4. Convert the resulting direction to RA and Dec.
for researchers

Site from MPC parallax constants (a copy of the MPC observatory code list ships with the website), rotated by apparent sidereal time, nutation and precession to J2000, then into the ecliptic frame of the MPC state. Iterated light-time and no aberration, matching the astrometric positions ADES reports. UTC converts to TT through the leap seconds since 2010 (IERS Bulletin C).

7 Which known asteroid is this? working

A confirmed track says where an object was, how fast it moved and in which direction, from a known site at known times. ARCKEEP uses that three ways, all in Plot and Verify or the frame's Info view.

7.1 Automatic identification

When Plot and Verify opens, ARCKEEP searches every near-Earth asteroid the MPC lists, about 42,800 of them, in two steps:

  1. Sieve. A fast Sun-only calculation for every object, keeping only those that could be near the frames. In the recorded test cases, 58 to 115 of 42,465 orbits survived.
  2. Gate. The full calculation of section 6 for each survivor, at every frame's time, compared with the measured positions: both where the object is and how it moves.

Comparing motion as well as position matters. Two asteroids can sit at the same spot by chance, but rarely with the same motion too. It works like matching a speed-camera photo to a reported car: location, heading and speed must all agree. If exactly one object passes, ARCKEEP checks it against its full-precision orbit (7.2). If several pass, it lists them and lets you choose; it never picks between them. If none passes, it says what was not searched.

The search has limits. It covers near-Earth asteroids only, and only frames within 200 days of the date the MPC's orbit file refers to. Older archive frames, such as the 2019 examples in the guide, are reported as out of reach, and MPChecker is the way to find candidates for them.

for researchers

Data: the MPC's NEA.txt, one MPCORB line per NEA, served whole by /api/nea and cached for a day (42,830 orbits on 2026-10-19). The sieve margin is 0.5 degree for orbit uncertainty plus the Sun-only coast's heliocentric error over the object's distance; the error terms are the largest measured over 42,776 NEAs at 50 to 200 days from the epoch, times 1.5, with a separate term and an Earth-and-Moon coast for objects whose Sun-only path passes within 0.03 au of Earth (data/sieve-error.json; margins cover 1.518, 1.501 and 1.511 times the measured maxima). A gate match lies within 30 arcsec and drifts by at most 1 arcsec/min or a tenth of the measured rate; both are review heuristics. On real MPC tracklets against the whole file (data/identify-cases.json): (3200) Phaethon from T08 matches alone among 58 kept; 2026 TY1, 0.025 au from Earth, matches alone among 115 kept although its Sun-only coast lands 2 degrees off; Phaethon's positions moved 1 degree match nothing. Only NEAs are searched; MPChecker (or Project Pluto's astcheck, whose idea the sieve follows) covers the rest.

7.2 Check against a named object's orbit

Type a designation and ARCKEEP fetches that object's orbit from the MPC, predicts its position at every frame time, and reports how far the measured positions sit from it: along the direction of motion and across it. It then gives one of three answers: consistent; the time tags look off, when every position is shifted along the motion by the same amount; or the orbit is too uncertain to judge. Positions that do not match block the sequence.

The along-track shift is the clock check. A shift that is the same in every frame, divided by the asteroid's speed on the sky, is a time error. This is how ARCKEEP found Tautenburg's time convention (section 3).

for researchers

Orbit from the MPC Orbits API (get-orb: Cartesian state with covariance and non-gravitational terms), fetched through /api/orbit; it needs a JSON body on a GET request, which fetch refuses, so the server sends it over a raw TLS socket. Falls back to the object's NEA.txt line, whose five-decimal elements cost about 0.020 arcsec per unit of r over delta. Time tags are blamed only when the orbit's U is 3 or less, its epoch is within ten years and the along-track shift exceeds 1 arcsec, three standard errors and three times the rounding error; otherwise the orbit, not the clock, is in doubt. 2019 FL1 at its correct time tags: consistent, offset -0.18 s (limit 1.3 s); under the old midpoint rule, flagged at -9.68 s. 2024 YR4: consistent at 0.30 s (limit 5.0 s), flagged at -7.20 s under the old rule (scripts/orbit-check.mjs).

7.3 Compare paths on one frame

In a frame's Info view, paste up to 12 designations (from MPChecker, for example) and ARCKEEP draws each one's predicted path across the frame, minute by minute around the exposure, and says which paths cross it. Position alone does not identify a source; the path tells you where to look.

for researchers

Each candidate's orbit comes through /api/orbit and is propagated in the browser to every minute around the exposure (predictPath). The path is nominal: no prediction uncertainty is drawn yet. For 2019 FL1 from 033 the predicted path passes within 0.567 arcsec of ARCKEEP's positions (scripts/orbit-check.mjs).

8 Reporting: the ADES file working

The MPC collects asteroid positions from observers worldwide in a format called ADES. Once a sequence is confirmed, ARCKEEP writes one ADES file for it, recording for each frame the time, position, observing site, catalogue, exposure and plate-fit evidence, plus the submitter, observers, measurers and telescope, filled from the FITS header where it names them. By default it writes five evenly spaced positions, because the MPC asks for three to five per object per night. It never sends the file anywhere; you review it, copy or download it, and submit it yourself.

ADES has optional fields for the uncertainty of each position. ARCKEEP leaves them out on purpose. It has no calibrated way to fill them yet, and an invented uncertainty is worse than none, because the MPC would weight the measurement by it. Section 9 describes how that changes.

for researchers

ADES 2022 PSV, one observing session of one object per file. With more than five confirmed frames, five evenly spaced rows are written unless the user asks for another number of at least two (MPC Guide to Minor Body Astrometry). Export is blocked when the metadata names several objects or sites, the span exceeds one session, times are missing, or no common track fits. The uncertainty fields rmsRA, rmsDec and rmsCorr are omitted by rule; plate-fit RMS goes in rmsFit and is not used as a proxy. ARCKEEP checks required structure and measurement consistency only. Whether a file is accepted is the MPC's decision and is not claimed here.

8a Starting from an ADES file tested

An ADES file already holds what the identification compares: time, RA, Dec and site for each observation. ARCKEEP has a reader for ADES files and can compare every observation with an orbit. The website cannot load an ADES file yet.

for researchers

src/ades.js reads ADES PSV and XML in plain JavaScript; observedMinusComputed reduces the observations against an MPC orbit, space-based ones from their own position. On MPC's 512 observations of 2024 YR4 all reduce, with mean O-C 0.0118 arcsec in RA cos Dec and 0.0249 in Dec and RMS 0.176 and 0.223; JWST's 20 observations reach 0.0179 RMS. Where observers gave rmsRA and rmsDec, O-C divided by the stated value has an RMS of 1.468 and 1.409: their stated uncertainties are on average about 1.4 times too small (scripts/orbit-check.mjs).

9 Uncertainty: how sure is a position? planned

ARCKEEP reports no position uncertainty today (section 8). Two different uncertainties matter, and both are needed:

For a well-known asteroid the prediction is far more precise than any measurement, so measuring known asteroids calibrates ARCKEEP's own error bars. The first pieces exist: the track's per-axis scatter and rate error (section 5) and the known-object check (section 7.2). Only after calibration will ARCKEEP report uncertainties.

Read the full explanation on the uncertainty page.

10 Where your data goes

Your FITS files never leave your browser. They are read, solved and measured on your own computer, and remembered in your browser's own storage so that leaving the page loses nothing. Removing a frame or closing a workspace deletes it there too.

ARCKEEP's server receives only what it needs to fetch reference data:

RequestWhat is sentWhat comes back
Star catalogueA sky position, a radius and a star countGaia stars in that circle
OrbitAn asteroid designationIts MPC orbit
Near-Earth asteroid listNothingThe MPC's list of NEA orbits
Sky viewer and telescope simulatorA solved frame's centre and framing, in the link to AstroEquip; the preview image passes only between your own browser tabsThe interactive sky map

The status page shows whether each outside service is answering. When one is down, the engine's terminal names it and what it affects, so a failed solve is not mistaken for a bad frame.

for researchers

Routes are Cloudflare Pages Functions in src/api.mjs, rate limited per visitor through a Durable Object. The MPC is reached only through data.minorplanetcenter.net, because minorplanetcenter.net and cgi.minorplanetcenter.net time out from Cloudflare (HTTP 522, measured 2026-10-19). The status probes are the smallest request that proves each service works, cached for a minute.

11 What ARCKEEP does not claim

12 Glossary

RA, DecRight ascension and declination: longitude and latitude on the sky
Arcsecond (″)1/3600 of a degree
FITSThe standard file format for astronomical images: pixels plus a text header
DATE-OBSThe FITS header card holding the observation time
Plate solution, WCSThe fitted mapping from pixel coordinates to sky coordinates
CentroidThe measured centre of a star or asteroid image
Magnitude (G)Brightness on Gaia's scale; larger numbers are fainter
O-CObserved minus computed: a measurement's difference from a model
TrackThe line through one object's positions in a sequence of frames
NEANear-Earth asteroid: one whose closest approach to the Sun is within 1.3 au
MPC site codeThe three-character code of an observatory, such as 033 for Tautenburg
State vectorPosition and velocity at one instant: six numbers
Two-body problemMotion under one central body only; solvable exactly
Orbital elementsSix numbers describing an ellipse and the position on it
EphemerisA table or model of where bodies are over time; DE440 is JPL's for the planets
CovarianceThe variances of several quantities plus how they vary together; drawn as an error ellipse
QuadratureCombining independent errors as the square root of the sum of their squares
ADESThe MPC's data format for submitting observations

13 Credits and sources

ARCKEEP stands on published methods, open data and other people's software. This section credits what each stage uses. The full register, with exact code locations and the reason each source is in or out of the product, is the repository's docs/REFERENCES.md.

Used in ARCKEEP today

CreditWhat ARCKEEP uses it forHow
AstroEquip and its AstroSolve plate solverPlate solving, the sky viewer and the telescope simulatorVendored, pinned copy
ESA Gaia, Data Release 3, via the ESA Gaia ArchiveEvery reference star: positions and proper motions in ARCKEEP's own indexData source
Sharma et al. 2023, AstreaksTrail-aware background, streak model and mid-exposure trail positionsMethod adapted in our own code
Lang et al. 2010, Astrometry.netFour-star pattern fingerprints behind the solver; an independent comparison routeMethod adapted; comparison
Bertin and Arnouts 1996, SExtractorThe windowed-centroid principle behind the solver's star centroidsMethod adapted
Shupe et al. 2005, SIP conventionOptical distortion terms in the plate solutionImplemented
Wisdom and Holman 1991, Symplectic maps for the N-body problemThe coast-and-kick orbit propagatorMethod adapted
Conway 1986, Laguerre's method for Kepler's equationSolving the exact coast step reliablyMethod adapted
Farnocchia et al. 2013, Yarkovsky effectThe non-gravitational force where an MPC orbit includes itMethod adapted
Park et al. 2021, JPL DE440Planet, Moon and Sun positions for 2010 to 2040, distributed by JPL for free public, scientific and commercial useData source
Minor Planet Center Orbits API and NEA.txtFull-precision orbits, and every NEA's orbit for identificationData source
Minor Planet Center MPCheckerCandidate designations for frames the identification cannot reachYou use it alongside ARCKEEP
Project Pluto astcheckThe idea behind the identification sieveDesign reference
IAU ADESThe output format and its input readerImplemented
NASA FITS Support Office, FITS standardReading image pixels, headers and WCSImplemented
CDS Aladin Lite, through AstroEquipInteractive sky context in Plot and VerifyUsed through AstroEquip
IERS Bulletin CLeap seconds for converting UTCData source

Behind the planned stages

CreditPlanned use
Minor Planet Center Observations APIPrior observations for orbit improvement and calibration
Milani et al. 2004, admissible regionsWhat a single night does and does not constrain
Farnocchia, Chesley and Micheli 2015, systematic rangingPredicting where a one-night object can be next
Vereš et al. 2017, astrometric errors of surveysStation weights, a labelled stand-in until ARCKEEP calibrates its own
Eggl et al. 2020, catalogue corrections in the Gaia eraDebiasing older observations in orbit fits
REBOUND and ASSISTConsidered as an offline source of reference test data, not shipped

JPL Horizons is used only by hand, to cross-check predictions during validation, as JPL's API policy requires.