破解FITs图像标题

时间:2010-02-08 11:18:29

标签: astronomy fits

我需要在几个FIT图像标题中更改一些值以适应我的一些测试数据。因此,我试图在应用程序运行的时候破解FITs图像标题。

然而在那一刻 - 我甚至看不到标题,更别说黑客了。我运行Ubuntu。

任何人都可以建议某些软件查看FIT - 甚至可能会破解它吗?

6 个答案:

答案 0 :(得分:4)

如果您熟悉python编程语言,则可以使用astropy模块查看和操作拟合文件。假设您要查看文件'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' 

答案 1 :(得分:2)

有点旧,但我认为答案可以使用一些更新和其他信息。

查看.fits文件

我个人最喜欢的用于查看的图表.fits'文件是DS9。安装完成后,您可以通过键入ds9 /path/to/file.fits来查看文件。或者,您只需使用GUI中的菜单加载图像即可。在查看器中加载图像后,您可以使用最顶部的菜单栏查看标题信息,然后转到'文件 - >显示标题'。不幸的是,我不相信你可以修改DS9中的标题。

修改适合标题

为了修改fit头,我发现最简单的是使用astropy(python包)。由于您使用的是Ubuntu,因此您应该可以通过apt-get下载它,所以很有希望。要实际编辑fit头,您可以在python脚本中执行以下操作,或者从解释器(here's some additional help)执行以下操作:

# 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()

您也可以将其抛入循环中以进行多个文件操作。

答案 2 :(得分:1)

这是天文学家使用的灵活图像传输系统格式吗?

This site有一些背景信息和更多链接,但解释说

  

用户必须开发或获取单独的软件才能读取和显示FITS文件中的数据。针对特定应用程序和硬件有许多不同的软件包,但并非所有应用程序都有单一的标准软件包。

不过,您可以将它用于您自己的目的。

答案 3 :(得分:1)

edhead似乎很好地完成了这项工作。只有我发现的软件允许您在命令行编辑标题。

答案 4 :(得分:1)

由于只回答了问题的一半(编辑FITS标题),为了查看图像,我通常使用DS9(又名SAOImage)。

另外,如果你要编辑很多FITS标题,我倾向于选择CFITSIOAstro::FITS::Header

...并且可以使用任何文本编辑器编辑FITS标题,只要遵循一些简单的规则 - 卡(键/值/注释集)总是80个字符长,并且FITS标题始终是2880字节的倍数。根据文件的不同,可能会有多个标头,因为第一个标头可能会声明文件包含多个图像或表格。

答案 5 :(得分:0)

Sloan Digital Sky Survey developer web sitesome libraries that should meet your needs

  

FitsLib - 用于在Microsoft的.Net平台上读取和操作FITS文件的库。   FITS代表灵活的图像传输系统。 FitsLib旨在为Dot Net Platform上的FITS文件提供接口。它构建为面向对象的包装器,围绕 CFITSIO 库的FITS文件接口。

虽然FitsLib本身是为C#和.NET Framework设计的,但您可以在Ubuntu系统上的Mono下使用它。或者,也许您可​​以直接使用CFITSIO库,它是用C语言编写的。