Skip to content

CLI Solver App (watney solve)

Jussi Saarivirta edited this page Mar 8, 2022 · 6 revisions

Overview

The CLI app is a simple command line interface to the Watney solver. It can be used to run both nearby and blind solves, and outputs the solve result to either stdout (console) or to a file in either JSON or TSV format. It currently supports the common file formats JPEG and PNG and additionally simple standard conforming monochrome FITS files. It's multi-platform, meaning that it runs on Windows, Linux and MacOS. The full list of supported OSes and architectures is longer, as the executables are built with .NET 6 it should run on whatever architectures and platforms it supports. See the official supported OS list here.

Versions and OSes

Binaries will be provided for the most common platforms:

OS Architecture RID Notes
Windows x64 win-x64 Portable Windows
Linux x64 linux-x64 Most desktop distributions like CentOS, Debian, Fedora, Ubuntu, and derivatives
Linux arm64 linux-arm64 Linux distributions running on 64-bit ARM like Ubuntu Server 64-bit on Raspberry Pi Model 3+
Linux arm32 linux-arm32 Linux distributions running on 32-bit ARM on devices like Raspberry Pi 2
OSX x64 osx-x64 Minimum OS version is macOS 10.15

For convenience reasons, the binaries are distributed as single-file self-contained executables and therefore do not require the dotnet runtime installed. The downloads can be found from the Releases page.

For any other OS/arch combination, if its supported by the .NET 6 platform it can be manually compiled.

Configuration

There's very little to configure in this program, most of the stuff is simply in solve parameters. However there is a configuration file included, watney-solve-config.yml which contains at least the path to the quad database directory. It's YAML and looks something like this:

# This is the configuration file for watney-solve program.
# The format of this file is YAML.

# The path to the quad database. If using relative directory, start with './'
# Examples: 
#   quadDbPath: ./db
#   quadDbPath: /opt/watney-astrometry/db
#   quadDbPath: 'C:\Program Files\watney-astrometry\db'
#
quadDbPath: './db'


# Note:
# The values below can be used to override the default parameter values of the 
# CLI solver. They are not required but when given, they override the defaults.

# ================================================================================
# Default --max-stars value, when the parameters is not provided.
# The maximum hard limit is set in code to 1000.
# The less stars, the faster the solve. However having too few stars may not 
# produce a solution.
# ================================================================================
defaultMaxStars: 300

# ================================================================================
# Default value for star detector flat value calculation.
# The flat (background) value is calculated from an average value of pixels
# in the image, and the standard deviance value is then added to the average this
# many times (flatValue = pixelAverage + stdDev * defaultStarDetectionBgOffset).
# The higher the value, the brighter the pixels included in star detection must
# be. To detect fainter stars, lower this value. 
# If the value is too low, noise may be interpreted as signal.
# Values 2.0 .. 3.0 should be fine.
# ================================================================================
defaultStarDetectionBgOffset: 3.0

# ================================================================================
# Default value for --lower-density-offset, when the parameter is not provided.
# Include this many lower quad density passes in search (compared to image quad 
# density). A higher value can increase chances of finding a solution, but slows
# down the solve due to more calculations.
# Recommended value is 1, but values of 2 or 3 may be used if there are 
# difficulties in solving.
# ================================================================================
defaultLowerDensityOffset: 1

# ================================================================================
# Default value for --higher-density-offset, when the parameter is not provided.
# Include this many higher quad density passes in search (compared to image quad 
# density). A higher value can increase chances of finding a solution, but slows
# down the solve due to more calculations.
# Recommended value is 1, but values of 2 or 3 may be used if there are 
# difficulties in solving.
# ================================================================================
defaultHigherDensityOffset: 1

# ================================================================================
# Nearby solves:
# Default --sampling value, when the parameter is not provided.
# Value 1 effectively disables sampling.
# For nearby solves it's recommended to disable sampling for faster results.
# ================================================================================
defaultNearbySampling: 1

# ================================================================================
# Nearby solves:
# If true, will try to solve multiple areas in parallel.
# ================================================================================
defaultNearbyParallelism: false

# ================================================================================
# Nearby solves:
# Default --search-radius value, when the parameter is not provided.
# ================================================================================
defaultNearbySearchRadius: 15

# ================================================================================
# Blind solves:
# Default --min-radius value for blind solves, when the parameter is 
# not provided.
# ================================================================================
defaultBlindMinRadius: 0.5

# ================================================================================
# Blind solves:
# Default --max-radius value for blind solves, when the parameter is
# not provided.
# ================================================================================
defaultBlindMaxRadius: 8

# ================================================================================
# Blind solves:
# Default --sampling value, when the parameter is not provided.
# Values up to 16 work best.
# Value 1 effectively disables sampling.
# ================================================================================
defaultBlindSampling: 16

# ================================================================================
# Blind solves:
# If true, will try to solve multiple areas in parallel.
# ================================================================================
defaultBlindParallelism: true

The executable seeks for the file from the same directory where it sits. You can also always override the configuration file location with the command line --use-config parameter.