蓉湖大橋附近的美食(如何讀取FITS)

導讀今天小出來為大家解答以上問題。蓉湖大橋附近的美食,如何讀取FITS很多人還不知道,現在讓我們一起來看看吧!1、FITS文件由許多單元(hdu)組

今天小出來為大家解答以上問題。蓉湖大橋附近的美食,如何讀取FITS很多人還不知道,現在讓我們一起來看看吧!

1、FITS文件由許多單元(hdu)組成。這些單元或者被稱為記錄文件屬性信息的頭單元,或者被稱為存儲數據的數據單元。這些單元可以統稱為hdu(頭/數據單元),其中頭單元是必需的,而數據單元是可選的。

2、FITS文件的頭文件格式:

3、1-891011-80

4、KETNAME=值/注釋

5、頭文件由以上格式的多行代碼組成,每行80個字符,共36n行,以END結尾。可以看到下圖:

6、每個關鍵字都有對應的值,頭文件存儲了日期、大小、數據格式、數據源、數據范圍、數據位數、坐標軸等等。

7、每個文件都必須包含關鍵字SIMPLEBITPIXNAXIS和END,并且它們必須按此順序排列。可以在它們之間插入其他行記錄。第一條記錄的關鍵字必須簡單,最后一行記錄是END。

8、簡單:T值表示它是一個標準的FITS文件,否則它就是f。

9、BITPIX:值是816

10、32-32或64,表示圖像數據的格式。如果是81632,數據是單字節雙字節和4字節有符號整數。一個32和一個64的值表示數據是單精度和雙精度浮點數。第一位是符號,接下來的8位(單精度)或11位(雙精度)是冪,其余是小數。但是,它們的存儲格式與PC不同。它采用先高字節后低字節的存儲方式。因此,在將FITS格式轉換到任何PC或在PC上顯示FITS圖像時,應考慮字節交換。

11、NAXIS:圖像數據矩陣的維數,對于二維圖像至少為2。NAXIS為0,表示沒有數據。

12、納西:當NAXIS大于0時,后面必須依次跟NAXIS。

13、1軸2等,表示每個維度的大小。每個納西都必須大于0。

14、END:最后一行記錄的關鍵字必須是END。后跟空格,直到文件頭的末尾。

15、其他關鍵詞可選,天文圖像中常用的有DATE(日期)UT(時間)望遠鏡(觀測者)天體EPocH(歷元)等。常用的DATAMAX和DATAMIN(數據的最大值和最小值),BSCALE和BZERO(實際值-BZREO BSCAIB image值)。評論等。

16、Python中數據的簡單提取

17、先簡單說一下數據單元的格式。FITS文件的數據以多維數組的形式存在,通常是二維數組。一個簡單的例子就是它可以記錄一系列點的坐標值,這樣數據形式就是一個N*2的二維數組。

18、為了處理FITS文件,Python需要預先安裝幾個擴展包。對于FITS文件,讀取astropy擴展包。Python擴展包下載這個網站有很多非官方的Python擴展包。你可以去哪里下載你需要的東西?

19、在Python命令行中,我們首先引入fits模塊,然后打開FITS文件。例如,我的如下(我的FITS文件)

20、Hdu是一個隨機的名字。你可以換成別的,只要你喜歡。hdu下有很多功能,可以進入hdu。按Tab鍵查看,可以看到很多功能。我們只需要知道幾個我們需要的。

21、我們可以通過信息功能查看文件的基本信息。我們可以看到這個文件有兩個單元,其中PrimaryHDU是每個文件的頭單元,BinTableHDU是數據單元。那么我們如何檢查里面的信息和數據呢?首先看輸出結果中的表示方法。每個單元標有12…。實際上,FITS文件的每個單元都形成了類似于“單元數組”(我發明的一個詞)的東西。我們可以用類似的方式訪問,即hdu[0]代表頭單元,hdu[1]代表數據單元。

22、(1)先看頭部單位。其實我剛才說的并不準確。hdu[0]不等同于標題單元。header單元的內容可以通過header方法訪問,就像下面這樣,這樣我們就可以看到header單元中的信息,這是四個必要的關鍵字。

23、Header很像字典(dict)。不知道是不是,因為這里一個關鍵字(keyname)對應的不僅僅是值,還有評論。因此,如果您想在header單元中查看SIMPLE的值,可以使用hdu[0]。header['SIMPLE'],并用hdu [0]查看其注釋。header.comments ['simple']。

24、(2)再看數據單元。在上面的信息中,我們可以看到數據的維度是1000R*2C,也就是說數據是1000行)2和2列,格式是雙精度。根據我自己的觀察,每個字母的含義如下:

25、I代表整數;

26、表示j長整形;

27、e代表浮點型;

28、d表示雙精度浮點型;

29、表示一個字符類型;

30、前面有數字的字母表示列表,如10E表示長度為10的浮點數組;

31、所以這個文檔中的數據都是雙精度浮點類型。如何具體訪問某一組數據、某一列數據或某一項數據?這個和上一個很像。hdu[1]中的數據允許我們訪問其中的數據。為了訪問I-group數據,我們可以使用hdu[1]。數據[i]。訪問I組(或第一行第一列)中的第J個數據是hdu[1]。數據[i][j]。那么,如何訪問一列數據呢?你可以用field來做到這一點,field就是字段的含義,也就是每組數據中包含的每一個數據的代表意義。每個字段都在一個列中,因此您可以使用字段來訪問列中的數據。如下圖

32、(中間省略)此外,所有字段字段都有名稱。您可以在“數據”下查看帶有名稱的字段名稱,也可以在字段()中輸入鍵值時輸入名稱。這里有一個例子:

33、在這里,我相信即使是沒有基礎知識的同學,也可以把FITS文件中的數據拿出來進行處理。當然,我并不精通,但我和其他初學者有同樣的疑惑。我更能理解你第一次接觸這些東西需要知道什么。希望能幫到你。謝謝你。

本文到此結束,希望對大家有所幫助。

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!