该问题通常是由于输入的WCS头文件存在问题导致的。您可以通过使用不同的WCS包或手动修复WCS头文件中的错误来解决问题。
以下是一个Astropy WCS示例,它将FITS文件读入并尝试导出WCS变换矩阵:
from astropy.io import fits
from astropy.wcs import WCS
with fits.open('file.fits') as hdulist:
header = hdulist[0].header
wcs = WCS(header)
# Attempt to export the transformation matrix
pc = wcs.pixel_scale_matrix
如果跑出上述代码时遇到“PCi_ja matrix is singular”问题,您可以尝试以下解决方案之一:
检查FITS文件的WCS头文件,确保其中的单位和数值正确。
使用一个不同的WCS库来实现转换,如PyWCS。
手动修复WCS头文件中的问题。