我需要在几个FIT图像标题中更改一些值以适应我的一些测试数据。因此,我试图在应用程序运行的时候破解FITs图像标题。
然而在那一刻 - 我甚至看不到标题,更别说黑客了。我运行Ubuntu。
任何人都可以建议某些软件查看FIT - 甚至可能会破解它吗?
答案 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标题,我倾向于选择CFITSIO或Astro::FITS::Header
...并且可以使用任何文本编辑器编辑FITS标题,只要遵循一些简单的规则 - 卡(键/值/注释集)总是80个字符长,并且FITS标题始终是2880字节的倍数。根据文件的不同,可能会有多个标头,因为第一个标头可能会声明文件包含多个图像或表格。
答案 5 :(得分:0)
Sloan Digital Sky Survey developer web site有some 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语言编写的。