About Watney

A .NET astrometric solver library

The Watney Astrometry Engine is an astrometric solver as a .NET/C# library. Given an astronomical image, it can determine the exact coordinates of the sky field it shows - right ascension, declination, field of view, and orientation.

It was built to provide a self-contained, cross-platform C# based solution for plate solving. It's meant to be primarily used for solving images in amateur astrophotography. Its implementation is based on the same basic algorithm that Han Kleijn's ASTAP implemented (and is described in more detail here). While the solving algorithm uses the same principles, that is probably where the similarities end.

Design principles

The solver was designed from the beginning as a library with no dependencies. It was originally implemented as a .NET Standard 2.0 library. Up to Watney v1.2.3 this provided compatibility with the old .NET Framework as well. Since version 2.0 we've moved on to .NET 10 as the baseline for support, in favor of allowing us to utilize the modern .NET features.

Software

To embed Watney your .NET based app, little effort is required. The library itself is available as a NuGet package.

If you want to run it out of process, you can also opt to use the Console Solver - this is an easy way to utilize the solver even when your project is written in another programming language. The Console Solver is distributed as a self-contained executable so that it's easy to run without having to install any external dependencies.

To accommodate different needs and to demonstrate the use of the library, a small suite of software has been built around it:

  • A console based solver is provided for the basic use cases of locally solving images
  • A standalone ASP.NET API application is provided for any wider needs like sharing a solver instance to a group of people (however in regard to wider public use, creating a proper customized API is recommended)
  • A desktop app was built as a demoing/debugging platform, to visualize the solving process
  • This site: the web solver here acts as a live demo for the solver. However, it's provided as-is without guarantees, and it's more of a showcase than a service provided for the community.

Visit github.com/Jusas/WatneyAstrometry for more information and to read the full documentation.

How the site solves images

This site is a showcase of what Watney can do. The site demonstrates the blind solve capability of Watney by performing a blind solve for each uploaded image.

At first, it tries its best with the solver default settings. If it doesn't succeed, it will tweak the parameters a bit to include more quads and/or more stars to hopefully get more matches. It does this a few times, and in the account of a failure (can be for example due to image quality, not enough stars, distortions or some other issue) the image is left unsolved. Note that the failure does not necessarily mean that the image wouldn't solve; by tweaking the parameters or by using a better star extractor it might well be solved, just not with the website presets.

The site uses Watney's built-in capabilities of star detection and the rudimentary FITS image support. More advanced implementations could opt for custom star detection or a fully separate solution like SExtractor, and using different/better image libraries.

To make it more interesting, the site also allows you to choose the machine that performs the solve from a few different hardware combinations; this is for fun and science, you can see how long it takes for an SBC to solve the field vs a standard cheapish VPS. The standard server hardware will always be available but others may be available for testing intermittently. However, no service guarantees are ever given.

The process to get your image solved is simple:

  1. Upload your astronomical image on the Upload page.
  2. Your image is immediately pre-processed (stars detected) by the server and queued for the selected solver hardware.
  3. You are redirected to your submission page where you can follow the progress. The solver backend picks up the job, solves it, and posts the result. Your submission page is refreshed and results are shown once solving is complete.
  4. If you ticked the box to allow public display, your image appears in the gallery.

Solver hardware

Multiple hardware backends may be available for solving. You can choose which hardware to use when uploading. The idea is to show relative performance on different hardware. Note: image pre-processing (reading, star detection) is done on the web server to save bandwidth.

Each backend runs independently and may be online or offline at any given time. Hardware availability is shown on the upload page.

Currently selectable hardware queues:

  • Default: x64 AMD EPYC-Milan Dual core @ 2.399GHz vCPU, 8Gb memory, NVMe SSD, Ubuntu Linux. A standard modern VPS offering.
  • Udoo X86: x64 Intel Pentium N3710 @1.6 GHz Quad core CPU, 8Gb memory, eMMC storage, Ubuntu Linux. A simple X86 CPU based SOC (2017)
  • ES1-131: x64 Intel Celeron N3050 Dual core @ 2.160GHz CPU, 4Gb memory, SATA SSD 6Gb/s, Ubuntu Linux. An older Asus netbook (2015) put to fun use.