.fit文件读取--head信息--修改head--读取csv文件-------ska暑期训练
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暑期训练相关推荐
- java读取csv合适文件_解析-您可以推荐一个Java库来读取(并可能写入)CSV文件吗?...
Super CSV是读取/解析,验证和映射CSV文件到POJO的绝佳选择! 我们(Super CSV团队)刚刚发布了一个新版本(您可以从SourceForge或Maven下载它). 读取CSV文件 以 ...
- Python爬取售房信息并保存至CSV文件
Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...
- python爬取当当网的书籍信息并保存到csv文件
python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...
- mysql导入csv文件 第一行有问题_mysql 导入 csv文件中数据,只能导入第一行
用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行. 但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打 ...
- abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)
利用Python修改Abaqus的inp文件(关键字) Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也 ...
- matlab如何读取二维数组,Matlab从csv文件中读取多个二维数组
我有一个csv文件,它包含2列4列数组,但行数不等.例如:Matlab从csv文件中读取多个二维数组 2, 354, 23, 101 3, 1023, 43, 454 1, 5463, 45, 765 ...
- python如何读取百万级的csv文件-Python如何读取数据量百万级的CSV文件数据?
是时候安利我们的开源库:Mars.Mars DataFrame 可以用来加速 pandas 执行,即使在单机.而代码几乎无需改动. 以下代码都是在我的笔记本上跑的. 任务一:只读取 CSV 文件 pa ...
- python csv读取数据 去掉标题-Python读csv文件去掉一列后再写入新的文件实例
用了两种方式解决该问题,都是网上现有的解决方案. 场景说明: 有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobile_id.目标是得到新文件只有mobile_id,pl ...
- linux分区挂载点在哪个文件,挂载的信息是存放在哪个文件中?
挂载的信息是存放在哪个文件中? 怎么修改才能实现中文文件名的正确显示? 我是windows和linux双操作系统. | 不同的操作系统使用不同的文件系统格式,MS-DOS支持FAT16文件系统,Win ...
- python selenium登录企名片,筛选各种条件,爬虫爬取融资信息,保存到csv文件
要点:1.利用datatime构建 日期,设定格式 2.利用selenium 登录账号,input等待需要输入的验证码 3.可以利用scrapy的Selector,替代beautifysoup 得到想 ...
最新文章
- Eclipse 教程
- 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )
- hdu 4640(状压dp)
- 教 Chatbot 生成更有营养的对话
- C++静态成员变量和成员函数
- np.random.seed(0)作用
- [scikit-learn 机器学习] 6. 逻辑回归
- 某易游戏经典吃豆豆动画404页面源码
- 1-2 输出N个数的平方和立方值
- Apache阶段二-
- 整数、区间与区间端点(三)
- poj 3040 Allowance (贪心
- wps中将文档输出为pdf_简单4步通过WPS2013 API将Word,Excel和PPT文件转换成PDF文件
- linux运行natapp,Centos使用natapp教程
- 软件测试自学到什么程度可以开始找工作?
- 修复 Rancher 2.5.x 内部证书过期导致无法启动的顽疾
- 服务器托管的必要性(下)
- 分享微信公众号留言评论功能开通方法
- WordNet发展概况
- EasyConnect
热门文章
- 163 Blog试用有感
- 深度学习:正则化方法
- Python3入门机器学习经典算法与应用 第3章 numpy 聚合操作
- A New Romance Is Likely to End up like Your Previous Relationship 为什么每次恋爱总会走向相似的结局?
- leapmotion 初识
- Atitit常见需求分析方法与工具链 attilax大总结
- paip.python错误解决24
- paip.c++ qt C:\iwmake\build_mingw_opensource _Unwind_Resume的问题
- Valve员工手册,一部震惊世界的“人生攻略”
- (转)鼎晖投资总裁焦震:别把投资高雅化,就是个做买卖的