5

我有一个大尺寸文件(超过 30,000 x 30,000)像素。IRAF无法处理这种大小的图像。如何像 IRAF 在使用其标准裁剪模式时那样裁剪这种大小的文件,同时保留正确的标题信息?

4

1 回答 1

8

您可以使用 进行这种裁剪astropy.io.fits,尽管它还不是微不足道的。由于默认astropy.io.fits使用内存映射,它应该能够处理任意大的文件(在一些实际限制内)。如果您需要非 python 解决方案,请在此处查看有关创建邮票的详细信息。

from astropy.io import fits
from astropy import wcs
f = fits.open('file.fits')
w = wcs.WCS(f[0].header)
newf = fits.PrimaryHDU()
newf.data = f[0].data[100:-100,100:-100]
newf.header = f[0].header
newf.header.update(w[100:-100,100:-100].to_header())

另请参阅此 pull request,它实现了一个便利Cutout2D功能,尽管这在 astropy 的已发布版本中尚不可用。它的用法可以在文档中看到,修改为包含 WCS:

from astropy.nddata import Cutout2D
position = (49.7, 100.1)
shape = (40, 50)
cutout = Cutout2D(f[0].data, position, shape, wcs=w)

这里有更多例子

于 2015-09-23T06:08:35.700 回答