2010-02-08 52 views
2

我需要在幾個FIT圖像頭中更改幾個值以適應我的一些測試數據。因此,我試圖在一分鐘內破解FITs圖像頭以與應用程序一起運行。攻擊FITs圖像頭

然而在當下 - 我什至不能看到標題,沒關係破解它。我運行Ubuntu。

任何人都可以建議一些軟件來查看FITs - 也許甚至破解它?

回答

1

edhead似乎很好地完成了這項工作。我發現只有一小段軟件允許你在命令行編輯頭文件。

1

這是天文學家使用的靈活圖像傳輸系統格式嗎?

This site有一些背景信息,並進一步聯繫,但解釋說,

用戶必須開發或獲取單獨的軟件來讀取,並從FITS文件中顯示的數據。對於特定的應用程序和硬件有許多不同的軟件包,但是對於所有應用程序沒有單一的標準軟件包。

不過,您可以將它用於您自己的目的。

+0

是的,它被天文學家使用。 – Federer 2010-02-08 11:27:40

0

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

FitsLib - 用於讀取和操縱庫符合微軟的.Net平臺上的文件。 FITS代表靈活的圖像傳輸系統。 FitsLib旨在爲DotNet平臺上的FITS文件提供一個接口。它是作爲面向對象的包裝器而構建的,它圍繞着FITS文件的庫接口。

儘管FitsLib本身是爲C#和.NET Framework設計的,但您可能可以在Ubuntu系統上的Mono下使用它。或者,也許你可以直接使用CFITSIO庫,它是用C編寫的。

0

由於只有1/2的問題得到解答(編輯FITS標題),所以我通常使用DS9(又名SAOImage)來查看圖像。

另外,如果你要進行編輯了很多FITS頭,我傾向於去與任何CFITSIOAstro::FITS::Header

...,它是可以編輯FITS頭用任何文本編輯器,只要當您遵循一些簡單的規則時 - 卡片(鍵/值/註釋集)總是80個字符,而FITS標頭總是2880字節的倍數。根據文件的不同,可能會有多個標題,因爲第一個標題可能會聲明該文件包含多個圖像或表格。

3

如果您熟悉python編程語言,則可以使用astropy模塊來查看和處理擬合文件。假設您想查看文件'圖片的標題。配合,那麼你就這樣做:

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

慈祥的老人,但我認爲答案可以使用一些更新和附加信息。

查看.fits文件

我個人最喜歡GUI用於查看」 .fits'文件是DS9。安裝後,您可以通過輸入ds9 /path/to/file.fits查看文件。或者,您可以使用GUI中的菜單來加載圖像。在查看器中加載圖像後,您可以使用頂部的菜單欄並轉至「文件 - >顯示標題」來查看標題信息。不幸的是,我不相信你可以修改DS9中的頭文件。

修改適合頭

用於修改所述配合頭部,我發現的最簡單的方法是使用astropy(Python包)。既然你使用Ubuntu,你應該可以通過apt-get下載它,所以很容易。要實際編輯擬合頭,你可以做一個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() 

你也可以在多個文件操作的循環拋出此。