Just to add to the conversation here, SharpCap does log the image scale as it's performing the plate solve. I've used this in the past to calculate the working focal length of my optical train.
It can be found just before log entries indicating that the field was successfully solved. Here's an example from my own logs (pixel scale 0.712663 arcsec/pix). I used the "solve and sync" or "locate me" button under Telescope Controls in the Camera Control Panel.
Code: Select all
Info 22:19:16.133368 #1 Plate solving : log-odds ratio 56.3358 (2.92634e+24), 11 match, 0 conflict, 4 distractors, 21 index. in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.133368 #1 Notification (Status=Warning): Solving: log-odds ratio 56.3358 (2.92634e+24), 11 match, 0 conflict, 4 distractors, 21 index. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.134367 #1 Plate solving : RA,Dec = (298.238,34.6909), pixel scale 0.712663 arcsec/pix. in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.134367 #1 Notification (Status=Warning): Solving: RA,Dec = (298.238,34.6909), pixel scale 0.712663 arcsec/pix. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.135366 #1 Plate solving : Hit/miss: +++-++++++--+-+(best)--++++ in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.135366 #1 Notification (Status=Warning): Solving: Hit/miss: +++-++++++--+-+(best)--++++ in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.358229 #1 Plate solving : Field 1: solved with index index-4202-13.fits. in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.358229 #1 Notification (Status=Warning): Solving: Field 1: solved with index index-4202-13.fits. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.359228 #1 Plate solving : Field 1 solved: writing to file /tmp/28404312-98ec-4674-803f-81de5cdfc7d5/frame.solved to indicate this. in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.360228 #1 Notification (Status=Warning): Solving: Field 1 solved: writing to file /tmp/28404312-98ec-4674-803f-81de5cdfc7d5/frame.solved to indicate this. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.569098 #1 Plate solving : Field: /tmp/28404312-98ec-4674-803f-81de5cdfc7d5/frame.png in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.570099 #1 Notification (Status=Warning): Solving: Field: /tmp/28404312-98ec-4674-803f-81de5cdfc7d5/frame.png in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.571099 #1 Plate solving : Field center: (RA,Dec) = (298.2, 34.69) deg. in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.571099 #1 Notification (Status=Warning): Solving: Field center: (RA,Dec) = (298.2, 34.69) deg. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.572098 #1 Plate solving : Field center: (RA H:M:S, Dec D:M:S) = (19:52:57.092, +34:41:26.820). in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.572098 #1 Notification (Status=Warning): Solving: Field center: (RA H:M:S, Dec D:M:S) = (19:52:57.092, +34:41:26.820). in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.573096 #1 Plate solving : Field size: 8.01978 x 4.55699 arcminutes in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.574097 #1 Notification (Status=Warning): Solving: Field size: 8.01978 x 4.55699 arcminutes in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:16.574097 #1 Plate solving : in Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)+(object s, SolveProgressEventArgs a) => { }
Debug 22:19:16.575096 #1 Notification (Status=Warning): Solving: in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Warning 22:19:16.687026 #1 StdErr from plate solver : Read file /tmp/tmp.ppm.FNF4QN: 676 x 384 pixels x 1 color(s); maxval 255
Using 8-bit output
in async Task<SolveResults> SharpCap.ImageProcessing.AstroTortillaPlateSolver.SolveImpl(string imageFile, RADecPosition approxPosition, CancellationToken cancellationToken, double searchRadius, double minScale, double maxScale)
Info 22:19:16.719008 #1 Frame Orientation : Up is 13.8 degree E of N in double? SharpCap.ImageProcessing.ExternalPlateSolverBase.ParseOrientationFromWCSData(Dictionary<string, string> fields)
Info 22:19:16.758982 #1 Mount reports JNOW, converting results position from RA=19:52:57,Dec=+34:41:26 (J2000) in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Info 22:19:17.789347 #1 Conversion result is RA=19:53:46,Dec=+34:44:54 (JNOW) in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Debug 22:19:17.791345 #1 Notification (Status=OK): Plate solve succeeded, position found to be RA=19:53:46,Dec=+34:44:54 (JNOW, offset of 0.31 degrees) in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:17.792343 #1 Field solved to RA=19:53:46,Dec=+34:44:54, field Size {Width=0.133663, Height=0.07594983} in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Info 22:19:18.808718 #1 Before Sync mount is at RA=19:53:45,Dec=+35:03:21 in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Info 22:19:20.032963 #1 After Sync mount is at RA=19:53:46,Dec=+34:44:54 in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Info 22:19:20.042956 #1 Frame center calculated at RA=19:52:57,Dec=+34:41:27 (J2000) in void SharpCap.Models.PixelPositionProvider.SaveData(RADecPosition frameCenter, MappingData mappingData)
Info 22:19:20.166880 #1 Frame center converted to JNOW : RA=19:53:47,Dec=+34:44:55 in void SharpCap.Models.PixelPositionProvider.SaveData(RADecPosition frameCenter, MappingData mappingData)
Info 22:19:20.175877 #1 Plate solve info with center at RA=19:53:47,Dec=+34:44:55 recorded against mount position RA=19:53:46,Dec=+34:44:54 in void SharpCap.Models.PixelPositionProvider.SaveData(RADecPosition frameCenter, MappingData mappingData)
Debug 22:19:20.176875 #1 Notification (Status=OK): Mount synced to RA=19:53:46,Dec=+34:44:54, re-centering on target at RA=19:53:45,Dec=+35:03:21 (offset of 0.31 degrees) in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 22:19:21.189249 #1 Before Slew mount is at RA=19:53:46,Dec=+34:44:54 in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Info 22:19:22.264586 #1 After Slew mount is at RA=19:54:23,Dec=+34:35:37 in async Task<bool> SharpCap.ViewModels.PlateSolveAndResync.SolveImpl(bool gotFrame, string tmpFile, CancellationTokenSource tokenSource, IMount model, SizeF? imageSize)
Info 22:19:22.265585 #1 Toolbar/Menu input : SharpCap.ViewModels.Actions.SolveAndResyncAction complete in async Task SharpCap.ViewModels.UIAction.Execute()