plate solving in peripheral regions of fish-eye images

63 views
Skip to first unread message

Vince Tue

unread,
Jun 21, 2025, 6:34:49 AMJun 21
to astrometry
Hi,

I have full sky fish-eye image (4144 x 2822 pixels) and I would like to create a corresponding HEALPix file covering as much of the image surface as possible.

The strategy I am testing: 
- splitting the image in patches
- running `solve-field` on each patch to get the local transform

Here the result:

In green are the patches on which a transform was found, in red where it failed.
Clearly, it succeeds in the center and fails at the peripherals. Likely due to fish-eye distortion ?

I tried several things, including changing the tweak order or the size of the patches. 

Would anybody have any advice on how to increase the successful "surface" ?

Higher level feedback on the strategy are also very welcome (i.e. maybe the whole approach is not good ?).

Best

ps: 
- the image showing the patches has been stretched for visualization purpose. 'solve-field' was run on the non-stretched patches.
- I am using a local installation of `solve-field`, version 0.93 (as installed by apt on ubuntu 24.03)
- I use the indexes: 4100-series, 5200-series (light) and 4200 series and happy to download more
- In case this is useful: the image files corresponding to all patches: https://owncloud.tuebingen.mpg.de/index.php/s/PKKF9WJxeDocz9W 

Dustin Lang

unread,
Jun 23, 2025, 1:50:56 PMJun 23
to Vince Tue, astrometry
Hi,

Yeah, fish-eye images are an embarrassingly difficult case for us!  The problem is that we assume a tangent-plane projection, so fish-eye images break that.  We also assume square pixels, which is maybe why your patches far from the center are failing.

There is one feature that might help toward a solution:
    solve-field --predistort header.sip
will apply the inverse of the SIP distortion coefficients in "header.sip", run the solver, then re-apply the distortion to the output.
So if you could somehow come up with a SIP description of your fisheye lens, you should be able to use that to get a single solution for the whole image.

(I think there will always be a limit in what will work here, because the tangent-plane assumption can't really deal with 180-degree wide fields of view!)

The fit-wcs program in the astrometry.net code can take lists of star x,y positions and RA,Decs and fit a SIP header.  So perhaps you could patch together your individual patch solutions?

I would have expected patches a bit bigger to work better, but I guess that depends on how many stars you have detected in each patch.  You want at least 20-30 stars per patch probably.

cheers,
dustin





--
You received this message because you are subscribed to the Google Groups "astrometry" group.
To unsubscribe from this group and stop receiving emails from it, send an email to astrometry+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/astrometry/2ac77bbf-7b37-44fe-bc74-52bc04358751n%40googlegroups.com.
Message has been deleted

Vince Tue

unread,
Jul 7, 2025, 2:07:11 PMJul 7
to astrometry
Dear Dustin,

Thanks a lot for your feedback and for pointing to fit-wcs.

Here what I tried:

- split my image into patches
- run solve fields on these patches
- generate xyls and rdls files compiling the sources found on the successful patches (translated back to the full image)
- ran fit-wcs to generate a sip file
- run `solve-field --predistort <sip file>` on the original full sky image

Alas, solve-field remained unsuccessful.

For debug, I dumped the original image on which the sip transform was applied. It looked visually correct to me, but I have very limited experience.

To sanity check the sip transform could help, I also split the transformed image into patches and ran solve-field on them. It did run better compared to the non-transformed image. Yet I confess I do not know how to "correct" the generated wcs transforms so that they could be useful on the original image.

The patches and the sources found in them: https://owncloud.tuebingen.mpg.de/index.php/s/4N5EtFFePCnWXEC
The original image on which the sip transform was applied: https://owncloud.tuebingen.mpg.de/index.php/s/nNBerw9EiNLzg7g
solve-field applied on patches of the transformed image: https://owncloud.tuebingen.mpg.de/index.php/s/2mM9msAkAJDLqqt

cheers

Vincent
Reply all
Reply to author
Forward
0 new messages