Having plate solving built into SharpCap without needing a separate program to be installed and configured will make it easily available to far wider range of people. For those already using Astrotortilla or Astap, you might well find that SharpSolve is quicker and works in a more seamless manner
I've been thinking about whether I could turn the code used for Polar Alignment into a full plate solving engine for a while, but other than jot down a few notes I deliberately held off doing anything about it until the update of the user manual for SharpCap 4.1 was complete. It was something to look forward to once the documentation work was done!
I needed to sort out a number of problems with the way the polar alignment code worked to make SharpSolve a possibility, including...
- Speed - polar alignment is fast at solving, but only checks an area of less than 0.5% of the total sky - taking 200 times longer wouldn't be quick enough
- Size of star data - storing the star data in the same way as used for polar alignment would mean that the star data alone would be over 300Mb - twice as big as all of the rest of SharpCap!
- Being sure of a correct match - polar alignment rarely brings up a false positive match, but they can happen now and then. With 200 times as many stars to match, that needed fixing to avoid issues
- Reliability - I needed to be confident that SharpSolve will really find plate solving solutions for sky images with a very low failure rate
How to start using SharpSolve
Go to the Plate Solving settings and choose 'SharpSolve' from the list of plate solving tools. Note that it will be the default on new installations of SharpCap, but if you have previously used SharpCap then the existing selection will be retained.
There are no options that need adjusting when using SharpSolve (at least none yet), but do note that it works best when it can detect 60 to 100 stars in the image, so set your gain/exposure appropriately. SharpSolve *will* find stars that are only visible when the image from the camera is stretched.
What fields of view does it handle?
SharpSolve can solve when the smaller dimension of the image is between 0.5 and 7 degrees. You may have reasonable success rates solving down to about 0.4 by 0.4 degrees, but it is unlikely to work for smaller fields of view than that. This means that for long focal lengths (2000mm or more) you will need a relatively big imaging sensor (IMX571 or APSC size or larger). However, more modest cameras will work well at more reasonable focal lengths of 1000mm or less.
How fast is it?
My testing has shown SharpSolve to be faster than other plate solving tools - on my fast desktop PC it will use up to 4 CPU cores and do a complete sky search for all scales down to 0.5° in about 9 seconds. On the same PC, Astap takes over a minute for a full sky search at 0.5°, with additional time taken for other image scales.
SharpSolve will use up to half of your CPU cores (maximum of 4, limited to half to make sure it doesn't cause the whole PC to grind to a halt), but even on a single CPU core a full sky search should be around 1 minute on a typical recent CPU or 1-2 minutes on a slower CPU with the exception of very low power ones. Searching a limited area of sky is much faster.
SharpSolve has an advantage over the other plate solving tools in that all the work is done inside SharpCap. When using Astap, Astrotortilla, etc, SharpCap has to write the image to a file on disk which the other application then needs to read, slowing things down.
How reliable is it?
I used a rare clear night to setup the SharpCap sequencer to do a 'sky scan' of part of the sky - capturing a 10s image, moving 2.5 degrees, capturing another image and so on. Over a few hours I ended up with 300 images of a chunk of the northern sky between Dec=0 and Dec=45. Each image is 3.9x2.6 degrees. All of those images solve.
I then wrote code to cut up these images into sub-areas and try to solve those. A sub-area of 1200x800 pixels corresponds to 0.75x0.5 degrees. Out of 167700 sub-areas tested, only 22 that have at least 25 stars detected in the sub-area fail to solve (less than 25 stars is considered to be too low for reliability, although sometimes you can solve at about 15 stars). This is a success rate of about 99.99%
Moving to a 800x800 pixel sub-area - 0.5° by 0.5° - the success rate drops to about 99.2%. Although I can make changes to improve this success rate, I have been unable to do so without a significant increase in the amount of star data needed and a similar slowdown in the solving procedure.
How accurate is it?
To within a few arc-seconds - in most cases probably no more than 1 to 2 arc seconds of error. SharpSolve does not aim to produce high accuracy (sub-arc second accurate) results - it is aimed at speed and having a relatively small star database. Note that the star database used by SharpSolve only stores star positions accurate to about 1 arc second to reduce database size.
Note that SharpSolve can track position correctly across the frame, even near the celestial poles where the lines of declination are curved and the lines of RA converge on the pole. This means that deep sky annotation positions and co-ordinate readouts will be far more accurate near the pole when using SharpSolve
How likely are false positives?
This one is easy to test - you make a set of 100 random star positions and see if you get a solution. If you do, it's a false positive, if not then you keep repeating to see how many times you can do this before you *do* get a false positive. I ran 3000 repetitions of an entire sky search on random stars without any false positives. That suggests that the rate is below 1 in 1000 and probably a lot lower.
Well, that's probably enough info to get people started. Please try it out and let me know if it works (or how you broke it!).