切片RGB Fit图像时保持WCS坐标

时间:2019-02-21 20:19:24

标签: python image physics astronomy astropy

我有一个RGB Fits图像集合,我想在轴上绘制带有WCS的蓝色框。我使用以下方法将图像切成蓝色:

from astropy.wcs import WCS
from astropy.io import fits

image1 = fits.open('fits_file.fits')
data1 = image1[0].data
image1_slice_blue = data1[2,:,:]

绘制此图时,轴对应于像素数,而不是WCS坐标。 我试图使用以下命令从文件中获取WCS信息:

wcs1 = WCS(image1[0].header)

但是我有一个问题,因为NAXIS = 3(图像宽度,高度和平面),但是WCSAXES = 2(RA和Dec)。错误显示在WCS核心关键字中检测到3个尺寸,并告诉我使用naxis kwarg选择/减小尺寸。我再次运行了,但是:

wcs1 = WCS(image1[0].header, naxis=2)

但是这也不起作用,因为找不到CTYPE3。谁能帮我解决这个问题?谢谢

这是我尝试拆分的图像:http://nova.astrometry.net/user_images/2677994#annotated

我无法共享实际文件,但这是RHS上的“ new-image.fits”文件。

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题,并发现了一个错误的错误代码https://github.com/astropy/astropy/issues/10527

这是我处理数据多维数据集的解决方法

import urllib.request
from io import BytesIO
from astropy.io import fits
from astropy.wcs import WCS

# download image into memory
url = 'https://sha.ipac.caltech.edu/applications/Spitzer/SHA/servlet/ProductDownload?DATASET=level1&ID=382262290'
response = urllib.request.urlopen(url)
hdulist = fits.open(BytesIO(response.read()))

# reproduce bug
try:
    wcs = WCS(hdulist[0].header)
except ValueError:
    hdulist[0].header['NAXIS'] = 2
    wcs = WCS(hdulist[0].header)
相关问题