fit文件是天文中常用的数据存储格式

python读取fit文件

from astropy.io import fitsinten = fits.open("1077910616_deep-MFS-image-pb_warp.fits")
inten.info()

1
可以看到这个fit文件里面有一条数据,并且是400040001*1的矩阵,数据格式是float64双精度型

inten[0].header

或者在终端通过以下命令也可以得到对应的表头信息

more 1077910616_deep-MFS-image-pb_warp.fits

  • NAXIS是轴的数量
  • BSCALE是比例尺:实际值=图像值*(BSCALE+BZERO)
  • BMAJ 是beam的大小 (有些fit文件也写作hpbw,resolution(有误))也可以意味是望远镜的分辨率
  • BMIN是波束半短轴
  • BPA是波束位置角
  • BTYPE是数据类型:例如本图就是强度
  • CTYPE1是横坐标的类型(CTYPE2对应的就是纬度)
  • CRPIX1是横坐标的参考像素点
  • CRVAL1是横坐标的参考坐标
  • CDELT1是个横坐标间隔点对应的度数,相当于4000*4000的网格平面,每隔一个点的度数就是CERLT1(CDELT2就是对应的纵坐标)
  • 参考坐标的意思就是:你要确定这张fit图像每个点的坐标,那就需要三个信息,第一个是某个点的像素位置(对应图中的数组坐标),以及这个点的对应的实际坐标(ra,dec)还有每个点直接间隔度数,有这三个信息我们就可以推算是整张图任何一个点的经纬度坐标。

修改header

有些fit文件在写入的时候轴的位置错乱了,导致读取的图片不能够正确显示经纬度,如下:

我们可以看到横坐标是像素点而不是经纬度
查看一下该fit文件的head,发现第三个轴放在了第一个轴上

from astropy.io import fits
from astropy.wcs import WCS
import matplotlib.pyplot as plt
import numpy as np
from astropy.io import fits as pf
from copy import deepcopyhdu = fits.open('FDF_maxPI.fits')[0]
hdr0 = deepcopy(hdu.header)                 #深拷贝,改变hdu的值不会对hdr0产生改变
print(hdr0)


修改一个head并且生成新的fit文件

hdr = pf.Header({ 'SIMPLE':   True,'BITPIX':    -32,'NAXIS':       3,'NAXIS1':  hdr0['NAXIS2'],'NAXIS2':  hdr0['NAXIS3'],'NAXIS3':  hdr0['NAXIS1'],'CDELT1':  hdr0['CDELT2'],'CRVAL1':  hdr0['CRVAL2'],'CRPIX1':  hdr0['CRPIX2'],'CTYPE1':  hdr0['CTYPE2'],'CDELT2':  hdr0['CDELT3'],'CRPIX2':  hdr0['CRPIX3'],'CRVAL2':  hdr0['CRVAL3'],'CTYPE2':  hdr0['CTYPE3'],'CDELT3':  hdr0['CDELT1'],'CRPIX3':  hdr0['CRPIX1'],'CRVAL3':  hdr0['CRVAL1'],'CTYPE3':  hdr0['CTYPE1'],'EQUINOX': 2000.00, 'EXTEND':True})pf.writeto('FDF_maxPI_new.fits', hdu.data, hdr, overwrite=True)    #也可以把其他信息都写进入,这种写入的方式是完全覆盖,而不是单纯的修改。

读取csv文件

#读取包,有些是非必须的,我只是顺手放进来from astropy.coordinates import sky_coordinate
from astropy.io import fits
from astropy.utils.console import color_print
import matplotlib.pyplot as plt
import numpy as np
import astropy.units as u
from astropy.wcs import WCS
from astropy import units as u
import csv
from numpy.lib.function_base import append
import pandas as pd
#读取csv文件的ra和dec,panda提供非常方便的读取方式data= pd.read_csv(r'catalog_comp.csv')
ra = data['ra']
dec = data['dec']

.fit文件读取--head信息--修改head--读取csv文件-------ska暑期训练相关推荐

  1. java读取csv合适文件_解析-您可以推荐一个Java库来读取(并可能写入)CSV文件吗?...

    Super CSV是读取/解析,验证和映射CSV文件到POJO的绝佳选择! 我们(Super CSV团队)刚刚发布了一个新版本(您可以从SourceForge或Maven下载它). 读取CSV文件 以 ...

  2. Python爬取售房信息并保存至CSV文件

    Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...

  3. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  4. mysql导入csv文件 第一行有问题_mysql 导入 csv文件中数据,只能导入第一行

    用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行. 但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打 ...

  5. abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)

    利用Python修改Abaqus的inp文件(关键字) Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也 ...

  6. matlab如何读取二维数组,Matlab从csv文件中读取多个二维数组

    我有一个csv文件,它包含2列4列数组,但行数不等.例如:Matlab从csv文件中读取多个二维数组 2, 354, 23, 101 3, 1023, 43, 454 1, 5463, 45, 765 ...

  7. python如何读取百万级的csv文件-Python如何读取数据量百万级的CSV文件数据?

    是时候安利我们的开源库:Mars.Mars DataFrame 可以用来加速 pandas 执行,即使在单机.而代码几乎无需改动. 以下代码都是在我的笔记本上跑的. 任务一:只读取 CSV 文件 pa ...

  8. python csv读取数据 去掉标题-Python读csv文件去掉一列后再写入新的文件实例

    用了两种方式解决该问题,都是网上现有的解决方案. 场景说明: 有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobile_id.目标是得到新文件只有mobile_id,pl ...

  9. linux分区挂载点在哪个文件,挂载的信息是存放在哪个文件中?

    挂载的信息是存放在哪个文件中? 怎么修改才能实现中文文件名的正确显示? 我是windows和linux双操作系统. | 不同的操作系统使用不同的文件系统格式,MS-DOS支持FAT16文件系统,Win ...

  10. python selenium登录企名片,筛选各种条件,爬虫爬取融资信息,保存到csv文件

    要点:1.利用datatime构建 日期,设定格式 2.利用selenium 登录账号,input等待需要输入的验证码 3.可以利用scrapy的Selector,替代beautifysoup 得到想 ...

最新文章

  1. Eclipse 教程
  2. 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )
  3. hdu 4640(状压dp)
  4. 教 Chatbot 生成更有营养的对话
  5. C++静态成员变量和成员函数
  6. np.random.seed(0)作用
  7. [scikit-learn 机器学习] 6. 逻辑回归
  8. 某易游戏经典吃豆豆动画404页面源码
  9. 1-2 输出N个数的平方和立方值
  10. Apache阶段二-
  11. 整数、区间与区间端点(三)
  12. poj 3040 Allowance (贪心
  13. wps中将文档输出为pdf_简单4步通过WPS2013 API将Word,Excel和PPT文件转换成PDF文件
  14. linux运行natapp,Centos使用natapp教程
  15. 软件测试自学到什么程度可以开始找工作?
  16. 修复 Rancher 2.5.x 内部证书过期导致无法启动的顽疾
  17. 服务器托管的必要性(下)
  18. 分享微信公众号留言评论功能开通方法
  19. WordNet发展概况
  20. EasyConnect

热门文章

  1. 163 Blog试用有感
  2. 深度学习:正则化方法
  3. Python3入门机器学习经典算法与应用 第3章 numpy 聚合操作
  4. A New Romance Is Likely to End up like Your Previous Relationship 为什么每次恋爱总会走向相似的结局?
  5. leapmotion 初识
  6. Atitit常见需求分析方法与工具链 attilax大总结
  7. paip.python错误解决24
  8. paip.c++ qt C:\iwmake\build_mingw_opensource _Unwind_Resume的问题
  9. Valve员工手册,一部震惊世界的“人生攻略”
  10. (转)鼎晖投资总裁焦震:别把投资高雅化,就是个做买卖的