我需要更改几个 FIT 图像标题中的一些值以适应我拥有的一些测试数据。因此,我正在尝试破解 FITs 图像标题以与应用程序一起运行。
然而此刻——我什至看不到标题,别介意破解它。我运行 Ubuntu。
谁能建议一些软件来查看 FIT - 甚至可以破解它?
有点旧,但我认为答案可以使用一些更新和附加信息。
查看 .fits 文件
我个人最喜欢的用于查看“.fits”文件的 GUI 是DS9。安装后,您可以通过键入来查看文件ds9 /path/to/file.fits
。或者,您可以只使用 GUI 中的菜单来加载图像。在查看器中加载图像后,您可以使用最顶部的菜单栏并转到“文件 -> 显示标题”来查看标题信息。不幸的是,我不相信您可以修改 DS9 中的标头。
修改适合标题
对于修改 fit 标头,我发现最简单的方法是使用astropy(一个 python 包)。由于您使用的是 Ubuntu,您应该可以通过 下载它apt-get
,所以希望非常容易。要实际编辑 fit 标头,您可以在 python 脚本或解释器中执行以下操作(这里有一些额外的帮助):
# Import the astropy fits tools
from astropy.io import fits
# Open the file header for viewing and load the header
hdulist = fits.open('yourfile.fits')
header = hdulist[0].header
# Print the header keys from the file to the terminal
header.keys
# Modify the key called 'NAXIS1' to have a value of 100
header['NAXIS1'] = '100'
# Modify the key called 'NAXIS1' and give it a comment
header['NAXIS1'] = ('100','This value has been modified!')
# Add a new key to the header
header.set('NEWKEY','50.5')
# Save the new file
hdulist.writeto('MyNewFile.fits')
# Make sure to close the file
hdulist.close()
您也可以将其放入循环中以进行多个文件操作。
如果您熟悉python
编程语言,您可以使用 astropy模块来查看和操作 fit 文件。假设您要查看文件“image.fits”的标题,然后执行以下操作:
from astropy.io.fits import getheader
header = getheader('image.fits') # Load the data
print header # Print the header to screen
如果要修改标头的特定键,请执行以下操作:
header['key'] = 'new_key'
edhead似乎做得很好。我发现只有一个软件允许您在命令行编辑标题。
这是天文学家使用的灵活图像传输系统格式吗?
这个网站有一些背景信息和进一步的链接,但解释说
用户必须开发或获取单独的软件来读取和显示 FITS 文件中的数据。对于特定的应用程序和硬件,有许多不同的包,但没有适用于所有应用程序的单一标准包。
不过,您可以将其用于您自己的目的。
由于只回答了 1/2 的问题(编辑 FITS 标头),为了查看图像,我通常使用DS9(又名 SAOImage)。
此外,如果您要编辑大量 FITS 标头,我倾向于使用CFITSIO或Astro::FITS::Header
...并且可以使用任何文本编辑器编辑 FITS 标题,只要您遵循一些简单的规则——卡片(键/值/注释集)总是 80 个字符长,并且 FITS 标题总是2880 字节。根据文件的不同,可能有多个标头,因为第一个标头可以声明文件包含多个图像或表格。
Sloan Digital Sky Survey 开发者网站有一些可以满足您需求的库。
FitsLib - 用于在 Microsoft 的 .Net 平台上读取和操作 FITS 文件的库。FITS 代表灵活的图像传输系统。FitsLib 旨在为点网平台上的 FITS 文件提供一个接口。它是围绕CFITSIO库与 FITS 文件的接口构建的面向对象的包装器。
虽然 FitsLib 本身是为 C# 和 .NET Framework 设计的,但您可以在 Ubuntu 系统上的 Mono 下使用它。或者,也许您可以直接使用 CFITSIO 库,它是用 C 编写的。