FITS基本文件格式

FITS (Flexible Image Transport System) 是国际天文学会(IAU)1982 年确定的世界各天文台之间用于数据传输、交换的统一标准格式。它描述了数据的定义和数据编码的一般方法。它是与机器无关的,用磁带作为标准传输介质的独立方法。它提供了图象的单值转换,精度包括符号在内可以达到 32 位。对一维、二维、三维、甚至多维的数据类型都提供了合适的转换。它不仅适用于天文数据, 对其他学科的数据也是可用的。
下图是FITS的基本格式:
FITS文件格式

下面的实例程序是要求用户输入待分析的fits文件,然后将fits文件分成2880byte的块,然后写入filenam.out的文件,这样就可以全局分析这个fits的文件了。

#!/usr/bin/python
#author yxy

import os 
from os.path import getsize

filename= raw_input('Please input you fits file name: ')
filesize = int(getsize(filename))
blockNum = filesize/2880

try:
    fin = open(filename, 'r')
    fout = open(filename + '.out', 'w')
except IOError, e:
    print 'could not open file:', e

for i in range(blockNum):
    line = fin.read(2880)
    fout.write('\n' * 5)
    fout.write(str(i) * 10)
    fout.write('\n' * 5)
    j=0
    for i in range(36):
        fout.write(line[j:j+80])
        fout.write('\n')
        j +=80

fout.close()

基本fits的文件格式大体上如上图所示,但是还有一个关键点是文件头中36行标题的格式。文件头中必须存在的五个关键词是:
SIMPLE,BITPIX,NAXIS,NAXISn 和 END。它们的含义是:
SIMPLE 逻辑变量,指明文件是否符合基本 FITS 标准。
BITPIX 整数变量,指明用于表示每一个象元值的位数。
NAXIS 整数变量,指明图象里坐标轴数。
NAXIS1 整数变量,指明在数组内沿最快变化轴的象元数。
NAXIS2 整数变量,指明在数组内沿次快变化轴的象元数。

下面是一个例子:

SIMPLE = T
BITPIX = 16
NAXIS = 2
NAXIS1 = 320
NAXIS2 = 512
END

SIMPLE=T 其中逻辑值 T(True)表明该磁带文件是简单的 FITS 数据文件。BITPIX=16 表明每一象元值为16 位带符号的补码形式,每一象元值占用两个字节, 每一记录可记 1440 个象元值(23040÷16= 1440)。NAXIS=2 表明图象为两维阵列NAXIS1=320 表明第一轴 (列变化方向)的长度为 320 个象元。NAXIS2=512 表明第二轴(行变化方向)的长度为 512行。END表明标题结束。记录后面的所有零字节都用 ASCII 码空格填满。 这五个关键次的顺序必须如上所示。不能颠倒。

除了这五个必须的关键次还有一些其他的关键词:
——BSCALE(浮点数)和 BZERO(浮点数):用于将磁带上的象元值转换为真实值的参数:真实值= ( 磁带值×BSCALE)+BZERO
——BUNIT(字符):单位
——BLANK (整数), 如果某象元未定义值, 则磁带上该象元对应位置上所写入的就是由 BLANK 定义的数值。
——OBJECT (字符): 图象名
——DATE (字符): 写 FITS 文件的日期(‘日/月/年’)。
——DATE_OBS (字符): 数据的观测日期(‘日/月/年’)。
——ORIGIN (字符): 写磁带的研究单位。
——INSTRUME (字符): 数据的探测仪器。
——TELESCOP (字符): 所使用的望远镜。
——OBSERVER (字符):观测者姓名。
——CRVALn (浮点数), CRPIXn(浮点数), CDELTn(浮点数), CTYPEn(字符)和 CROTAn(浮点数):这些关键词是用于定义第 n个轴的象元坐标与真实的物理坐标之间的关系。
——DATAMAX(浮点数)和 DATAMIN(浮点数): 给出文件中数据的最大值和最小值。
——EPOCH(浮点数): 坐标系统的历元(以年为单位)。
——空白(无)、COMMENT(无)和 HISTORY(无): 用于说明其它一些信息表明第 9-80 列是注释用的 ASCII 文本。

注意, 图象阵中象元的二进制数据是高位在前, 低位在后。

参考文献:
http://www.cnblogs.com/tyjsjl/p/3952823.html

  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值