Repository navigation
Open source astrometry and photometry of asteroids and comets. Product page: https://datamonkeys.ai/piazzi/
Downloads
| File | Platform |
|---|---|
Piazzi-mac.dmg |
macOS 10.13+, Intel and Apple Silicon. Signed and notarized by Apple. |
Piazzi-windows-x64.zip |
Windows 10 1803+ 64-bit, OpenGL 3.0+. Not yet tested on real Windows hardware: please open an issue if you try it. |
Piazzi-linux-x86_64.AppImage |
Ubuntu 22.04+ (glibc ≥ 2.35), needs libfuse2. |
Checksums: SHA256SUMS.txt. The built-in example ((5157) Hindemith, three ZTF frames) runs offline; MPC submission is disabled for it.
Known issues
- The Windows build is cross-compiled and packaged but not yet tested on real Windows hardware.
Changed
- Settings format (breaking): every setting key now has its own snake_case name, for example
focal_length_mm,pixel_width_mm,flip_horizontal,catalog_faint_mag,plate_orderandtrail_detect. Older
key names are no longer read. Update existing.cfgfiles and saved profiles (the bundled example already uses the
new names). - Code comments, log messages, CLI help, CI and benchmark reports are in English.
- Added
CITATION.cff, a README screenshot and badges.tools/benchmark/results/keeps only the final runs (see its
README). - Tests no longer need any external download: image tests use the bundled ZTF example ((5157) Hindemith,
cpp/gui/assets/example/) with a new JPL Horizons reference (cpp/tests/data/horizons_hindemith.txt, station I41,
query in the header). Limits are ~2–3× the measured accuracy (O−C max 0.021″, rms 0.016″ → ≤ 0.06″ / 0.045″; plate
rms ≤ 0.053″ → < 0.15″ with ≥ 50 references; rate/PA vs Horizons within 0.02″/min and 3°; magnitude spread
0.09 → ≤ 0.25).test_orbitsuses versioned osculating elements from Horizons in MPCORB/COMET layout
(cpp/tests/data/orbits_*.dat, origin incpp/tests/data/README.md);test_image_ioadds a synthetic
uncompressed SBIG file (pixels, exposure, mid-exposure time). - Tests no longer download third-party sample data: the external download script, its CI step and the old reference
files were removed. DESIGN.md "Accuracy" now describes the bundled ZTF example. - README/THIRD_PARTY_NOTICES describe
.cfgsupport neutrally (INI-style configuration files). run.pywrites paths relative to the repository root (or just the file name when outside it) in results and
messages (run,inject,vs-mpc,check-ades); existing results undertools/benchmark/results/were rewritten
without local absolute paths (<local>/…).- Core error messages in the C API are now English and actionable, with a stable
code(no_images,
image_unreadable,catalog_empty,internal) and optionaldetailin the error JSON; the apps translate by code. astro_reducehonoursplate_ruwelike the CLI (default 1.4, unchanged behaviour).
Fixed
- Without
--object/object name the API no longer labels every mover "Piazzi": the designation is empty, ADES carries
only thetrkSuband the MPC report uses the per-track temporary designation; apps show thetrkSubor "objeto N". - Result JSON never contains NaN/Inf (written as
null); added per measurementtrksub,sig_ra,sig_dec(″, the
ADES σ),trail_len(″),remarks, and per movertrksub(existing fields unchanged). - Undefined behaviour in the linking grid hash (left shift of a negative value).
- Shift-and-stack search: forced measurements with non-positive flux are discarded (no
log10of ≤ 0). astro_image_catalog: trail fragments get typeTand attached trailsL(Rstays "reference").- Dockerfile header no longer claims that the image runs the tests.
- ADES
# telescopeno longer written with an emptydesignandaperture 0.0whentelescope_design/telescope_aperture_mare
unset: both are derived from thetelescopedescription (all ZTF/SDSS/NEA benchmark reports were affected). - Trail centroid covariance (ADES σ of trailed movers): Poisson-weighted sandwich covariance of the unweighted trail fit
instead of a uniform χ²/(n−p) scale (trail_cov_poisson, default 1); SDSS trail injection |O−C|/σ_c 0.795 → 0.706.
run.py injectadds per-axis ratios against σ_c (the injection O−C has no plate error by construction). - 80-column report: a seconds field rounding to 60 no longer prints "-0.0" (e.g.
-00 58 -0.0), which broke the Dec
columns 45–56 (2 SDSS measurements); same clamp in RA.
Added
astro_settings_schema(): JSON list of the exposed settings (key, group camera/detection/plate/motion/reports/
advanced, English and Portuguese label and hint, type number/int/bool/enum/text with options, min/max, core default),
including the newgain,trail_fit(−1 auto, 0 off, 1 trail, 2 star PSF),trail_detect,stack_search,
plate_weights,plate_color,motion_sigmaandplate_ruwe. Desktop, iOS and web settings screens are generated from
it: collapsible groups ("Advanced" closed), checkboxes, menus, range-checked numeric fields, hints, restore defaults.- English user interface by default with optional Portuguese in the three apps (desktop/web remember the choice; iOS
follows the system language with an in-app override). Strings centralised per app. - "Open example": bundled offline example (three 6′ ZTF crops of (5157) Hindemith, 2021-02-06, Gaia DR3 excerpt,
example.cfg, ~1.7 MB) incpp/gui/assets/example/,web/example/and the iOS bundle; MPC submission is blocked
for example data and its observatory code isXXX. Credits (ZTF/IRSA, ESA/Gaia/DPAC) in the example README and
THIRD_PARTY_NOTICES. - App icon (
packaging/icon/piazzi.svg, PNG 16–1024,.icns,.ico, Windows.rc, iOS AppIcon, macOS bundle icon,
packaging/icon.pngfor the AppImage, SDL window icon). run.py check-ades: offline ADES 2022 (PSV) and MPC 80-column format checker for the benchmark outputs or single
files; ctestreport_formatapplies it to the reports of the bundled example.astro_version(),piazzi --version, single version source (cpp/include/piazzi/version.h) used by CMake and
shown in the desktop, iOS and web home screens.