fits文件读取与查看

fits文件的结构

一个fits文件包括多个HDU(两个以上),开头一个是Primary HDU,储存着类似于观测日期等的信息,剩下的是Bin HDU,储存着观测数据

每个HDU由header 和data组成,data中储存着数据,header表示相应的信息,储存着和Primary HDU一样的信息,并且描述第几列的数据是什么,类型是什么

TTYPE1=‘obsid’表示第一列的数据是obsid,TFORM1和TDISP1表示第一列的数据的格式(format)

python读取fits文件

使用astropy包读写fits文件(astropy需要下载)

from astropy.io import fits
#读取文件
lamost=fits.open('dr5_stellar.fits')
#查看HDU
lamost.info()
#查看第二个HDU的header
lamost[1].header
#查看第二个HDU的data
lamost[1].data
#按照关键字搜索第二个HDU的数据(例子中是查看lamost数据的赤经)
lamost[1].data.field('ra')

astropy的官方文档

python关闭fits文件

及时关闭文件以减小内存消耗

lamost.close()

fits文件转DataFrame格式

pandas的DataFrame格式操作星表更加方便,然而你将各列数据从fits文件中提取出来再写成字典,再转成DataFrame格式很不方便,而且在后续使用中可能会出现Big-endian 和 little-endian 相关的报错,这里介绍另一种简单不出错的方法

from astropy.table import Table
lamost = Table.read('dr5_stellar.fits', hdu=1)
lamost = lamost.to_pandas()

这个方法需要你知道你的数据在哪个HDU里面,一些特殊的format格式可能无法识别,比如这个LAMOST DR5里面有一种format是J,就不识别了,会给你报warning,你需要看一下不识别的那一列是不是需要的数据,如果不是,那就不重要了。

topcat操作fits文件

当数据文件比较大,而你只需要其中的一部分数据时,可以使用topcat把文件切割一下

  1. 下载topcat,进入官网,根据提示下载,不同的系统不一样
    topcat官网
    注:topcat基于Java,需要先下载Java JRE,打开https://java.com/zh-CN/download/,下载默认版本即可
  2. 运行topcat,读取较大的fits文件
    选择File,选择Load Table,选择Filestore Browser,然后找到你的fits文件,topcat支持很多种数据类型,比如CSV,ASCII,读取时选择相应的Table Format即可,如果是读取fits文件则不需要选择Table Format,读取fits文件特别快,几个G的文件也是一瞬间,读入后topcat都会认为他们是table
  3. 查看数据
    双击读入的文件,就可以查看全部的数据
    如下图点击这里,可以查看所有列名


出来是这样的
可以看到第几列表示什么(具体的意义还是要看数据发布人的文档)勾选表示显示这列,不勾选表示不显示,比如我只需要他的ra,dec和teff,勾选这三项,然后双击数据文件打开,就只有这三项

  1. 保存文件
    先选中,然后点击保存按钮,选中保存位置,写一个文件名即可保存,这样保存的数据就只有ra,dec和teff三列,保存文件的格式也是多样化的,取决于你的选择

  2. 查看文件的统计量
    点击
    会出现下图

    可以很方便的看到每个量的平均值,最大值,最小值

  3. 将两个星表中的数据按照ra,dec进行交叉匹配
    当你读取了两个以上的星表时,点击这个标志
    会出现下图
    选择table1,table2,在RA column和Dec column中选择你的赤经,赤纬,Max error就是你的交叉半径,一般是1角秒,Match Selection 和join Type都可以选择,一般默认就行,想要调整可以看一下topcat的官方文档

  4. 将自己的星表与服务器的星表进行交叉匹配
    点击
    会出现
    VizieRTable ID/Alias选择你想要交叉的服务器星表,比如2MESS,Gaia DR2,Local Table选择你自己的星表,输入赤经赤纬即可,其他一般默认,最后一行的Block size指的是一次交叉多少行,把他调大可以减少交叉时间,但是如果网络波动导致中断,那么前面交叉的数据也传不回来,没有稳定的VPN建议不要动这个参数

更多topcat操作请参考topcat官网

fits文件的读取与查看相关推荐

  1. pptx文件无法读取_如何在未安装Office的情况下查看PPTX,DOCX或XLSX文件中的图像...

    pptx文件无法读取 There's nothing more frustrating than finally getting the screenshot or image you asked f ...

  2. astropy对fits文件的基础操作

    astropy读取fits文件汇总 from astropy.io import fits hdu_list = fits.open(image_file) hdu_list.info() image ...

  3. vc++从txt文件中读取数据

    数值分析课上老师说要将数据写在txt文件上,然后让程序从txt文件中读取数据.让本来C++已经遗忘了很久的我们无从下手,在网上也查看了很多,发现大多都是扯淡,放在VC++编辑器上发现并不能运行,不知道 ...

  4. android中XMl文件的读取

    废话不多说了直接上代码: 新建一个Xml文件用于读取: test.xml <Languages cat="1"><lan id="1"> ...

  5. php csv文件的读取,写入,输出下载操作详解

    2019独角兽企业重金招聘Python工程师标准>>> php对csv文件的读取,写入,输出下载操作. 代码: <?php $file = fopen('text.csv',' ...

  6. springboot读取linux文件_SpringBoot读取Resource下文件的几种方式

    最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传:这里待下载模板位置为resource/excelTemplate/test.xlsx,尝试了四种读取方 ...

  7. python文件的读取和写入

    最近一直在做数据的处理,其中要包括读写文件,现在总结一下用到的python读写文件的三种方式. 1.第一种是经常使用的readline和write的方法,该方法主要以字符串的形式进行读写. 读文件: ...

  8. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  9. python读文件和写文件-python开发--从文件中读取数据和写入文件

    #! /usr/bin/env python -*- coding:utf-8 -*- """ @Author:gcan @Email:1528667112@qq.com ...

  10. python输入文件名读取文件_[Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等...

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

最新文章

  1. EBGAN, LSGAN, BEGAN
  2. C#隐藏任务栏区图标(非右下角托盘)
  3. python分析推特_用Python关注者的关注者抓取Twitter数据的最快方法
  4. 用户层关闭杀毒软件安全保护
  5. 史上最详 Thymeleaf 使用教程
  6. 令用EclipseJ2EE创建的Dynamic Web project目录结构与用MyEclipse创建的Web project一样
  7. python数字图像处理(6):图像的批量处理
  8. 中调用view_在 View 上使用挂起函数
  9. html文字logo
  10. 微信小程序怎么做店铺?
  11. 小程序超过2M限制的方法——分包加载
  12. 墨菲定律: If anything can go wrong,it will.
  13. 全面认识数据指标体系
  14. python基础资料(Learn|Codecademy好用的工具)
  15. 关于UE4坐标换算涉及到的知识
  16. RocketMQ4.0源码分析之-路由管理
  17. how to assign more that 31 VFs to one VM
  18. iOS 开发: 仿QQ
  19. Java学习--排序算法之插入法排序
  20. HDU-5976-Detachment

热门文章

  1. PHP的性能演进(从PHP5.0到PHP7.1的性能全评测)
  2. 游戏美术师的火绝对不是捧出来的!不看不知道游戏模型师这么吃香
  3. Activity透明主题的一个坑
  4. Java Poi 根据文字内容 插入 word 图片
  5. 网站安全性之js注入
  6. windows server域服务器作用,windows server 2012 r2AD域搭建以及域的简单功能介绍
  7. html中fixed属性,CSSposition属性中:fixed使用详解
  8. python画地球代码_python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
  9. the little schemer 笔记(10.1)
  10. 数字转型遇阻 ,Riverbed重塑APM工具