Accuracy of SkEye Cam

Update 1, 5th July 2021: A few days after publishing this post, I changed the solver to assume a square pixel grid. This helps converge the solution faster though it changes the results slightly. This post has been updated with the newer results.
Update 2, 14th July 2021: Better accuracy after correcting for lens distortions.

I have created a new app called SkEye Cam. It's a Camera App targeted at hobbyist astronomers (such as myself), and its highlight feature at launch will be real-time plate-solving.

Plate-solving is the act of figuring out which part of the sky has been captured on a camera plate (image). This can not only help identify objects in the image, it can also help find the orientation of a telescope, which in turn can be used for navigation, etc.

Compared to raw IMU sensors, plate-solving has the promise of being more accurate and reliable. But exactly how accurate can it be?

We decided to find out.

Method & Apparatus

  • A camera pointed to the sky on a sturdy mount, and locked in position (no tracking). This ensures that only the Earth's rotation will change the camera field over time, and this change can be precisely computed.
  • Capture multiple images with timestamps, with a gap of about one minute.
  • From the timestamp, calculate elapsed time for each image w.r.t the first image's timestamp.
  • From the elapsed time, calculate expected changes in RA, Declination, and frame rotation angle.
  • Determine the difference between plate-solved values w.r.t the expected values of RA, Dec, rotation angle.

Data collection

Being clouded out myself, I sought the help of my friend, Brewster LaMacchia. He has been photographing the night sky with his phone for some time now. You can view his astro-photos on his local astronomy club's page here.

He has a Pixel 3a which has a FOV of 65° by 50° He also has an add-on telephoto lens ( Sirui 60mm), which can be placed atop the phone's camera to yield a narrower FOV of 40° by 30°.

He collected four sets of images from the combinations of the following criteria:

  • Camera pointed at Declination 90 (near Polaris), and pointed at Declination 0 (near Virgo)
  • With and without the telephoto lens

Here's a sample from each data set:

Native camera Declination 0

Native camera Dec 0°

Native camera Declination 90

Native camera Dec 90°

60mm lens Declination 0

60mm lens Dec 0°

60mm lens Declination 90

60mm lens Dec 90°

The images appear greenish because color correction hasn't been implemented yet.

Note that major parts of the images are covered by trees/houses, and all of them were captured on 23 June, in the presence of a near full moon.

I tested the plate-solver on these images offline, with a script running on my laptop.

The plate-solver estimates the lens distortion and this can be stored as part of the calibration and used in a later solve to correct the image. It happens automatically within the app, but for this experiment, I setup the script to estimate the lens distortion on the first image in each set, and then used it to for the remaining images in that set.

Here are the results:

Native lens

The FOV of the native camera is about 65° x 50° (typical of most smartphone cameras).

Declination 0°

Without Lens correctionWith Lens Correction
Max RA Error1.8'1.5'
Max Dec Error3.5'1.8'

Declination 90°

Without Lens correctionWith Lens Correction
Max Rotation Angle Error0.35'0.18'
Max Dec Error1'0.44'

The worst error with the native camera was under 5 arc-minutes. And under 2 arc-minutes after lens correction!

With the add-on lens (Sirui 60mm)

The effective FOV with the add-on lens is about 40° x 30°.

Declination 0°

Without Lens correctionWith Lens Correction
Max RA Error1'0.73'
Max Dec Error2.8'0.52'

Declination 90°

Without Lens correctionWith Lens Correction
Max Rotation Angle Error9.9'0.47'
Max Dec Error1.1'0.84'

The worst error with the add-on lens was about 10' which is worse than the native lens. However, after correcting for lens distortion, the worst error is less than 1 arc-minute!


It looks like the accuracy obtained from plate-solving on a typical smartphone camera is sufficient for hobbyist purposes.

With the caveat that this is a single test run using a relatively good camera, on a relatively clear night.

More testing with other devices and sky conditions is required.

If you would like to test the app yourself, you can download it from this link.

blog comments powered by Disqus