private static async Task <(Dms ra, Dms dec)?> SolveOne(string filename) { var low = 0.9; var high = 1.1; var downsample = 4; var info = new ProcessStartInfo(_bashLocation, BuildCommand(low, high, downsample, filename)) { UseShellExecute = false, RedirectStandardOutput = true, }; var process = Process.Start(info); var output = await process.StandardOutput.ReadToEndAsync(); var matches = _regex.Match(output); if (matches.Success) { var one = matches.Groups[1].Value; var two = matches.Groups[2].Value; if (double.TryParse(one, out var oneValue) && double.TryParse(two, out var twoValue)) { return(Dms.FromDegrees(oneValue), Dms.FromDegrees(twoValue)); } } return(null); }