SuperNOVAS is a C/C++ astronomy software library, providing high-precision astrometry such as one might need for running an observatory, a precise planetarium program, or for analyzing astronomical datasets. It started as a fork of the Naval Observatory Vector Astrometry Software (NOVAS) C version 3.1, but since then it has grown into its own, providing bug fixes, tons of new features, and a much improved and expanded API compared to the original NOVAS.
SuperNOVAS is easy to use and it is very fast, providing 3–5 orders of magnitude faster position calculations than astropy 7.0.0 in a single thread (see the benchmarks), and its performance will scale with the number of CPUs when calculations are performed in parallel threads.
SuperNOVAS it is freely available via the Sigmyne/SuperNOVAS repository on GitHub, without licensing restrictions. Its source code is compatible with the C99 and/or C++11 standards, and hence should be suitable for old and new platforms alike. And, despite it being a light-weight library, it fully supports the IAU 2000/2006 conventions for sub-microarcsecond position calculations.
SuperNOVAS is maintained by Attila Kovacs (Sigmyne LLC), a professional astrophysicist with a long history of telescope control and data reduction software. SuperNOVAS
This site contains various online resources that support the library:
Documentation
- User’s guide (
README.md) - API Documentation
- History of changes (
CHANGELOG.md) - Issues affecting SuperNOVAS releases (past and/or present)
- Community Forum – ask a question, provide feedback, or check announcements.
Downloads
- Releases from GitHub
Linux Packages
SuperNOVAS is also available in packaged for for Fedora / EPEL and Debian-based Linux distros. It has the following package structure, which allows non-bloated installations of just the parts that are needed for the particular use case(s):
| Fedora / EPEL RPM | Debian package |
|---|---|
supernovas |
libsupernovas1 |
supernovas-c++ |
libsupernovas++1 |
supernovas-solsys-calceph |
libsolsys-calceph1 |
supernovas-devel |
libsupernovas-dev |
supernovas-doc |
libsupernovas-doc, libsupernovas++-doc |
The differences in package names are due to the different naming policies for RedHat/Fedora vs Debian. Otherwise, the RPM and Debian packages provide identical contents and features.
vcpkg Registry
You can also install the core SuperNOVAS library with vcpkg on Linux, MacOS, Windows, and Android as:
$ vcpkg install supernovas
Or, with the optional cpp (C++17 API extension) and solsys-calceph (CALCEPH adapter) components as:
$ vcpkg install supernovas[core,cpp,solsys-calceph]
Homebrew
Or, install via the Homebrew package manager (MacOS and Linux) through the maintainer’s own Tap, including the
C++ API extension and the CALCEPH adapter library (and the calceph dependency, as needed):
$ brew tap attipaci/pub
$ brew install supernovas
For more customized installations, you can add the following options also:
| Option | Description |
|---|---|
--with-doxygen |
Install local HTML documentation, compiled with Doxygen, also |
--without-c++ |
Install without the C++11 API extension |
--without-calceph |
Install wihout the CALCEPH adapter library |
.
Nix package
Nix is a declarative and determinstic package manager can be used on every Linux distribution as well as MacOS.
The default package includes the solsys-calceph plugin, but can be overriden by changing withCalceph.
Install to your profile with
$ nix profile add nixpkgs#supernovas