【把一堆坐标写成.reg文件】
from regions import Regions from astropy.coordinates import SkyCoord from astropy import units as u file_hdr = ['# Region file format: DS9 version 4.1\n'+'global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1\n'+'fk5'] #这个是前面的几行文件说明,其实没有应该也没啥问题。因为后面的才决定参数 with open("/home/kin/FAST/M31_py/analysis/ds9_RM_table_source.reg", "w") as file: #选择你需要需要保存reg文件的地址 file.write("") #每次开始制作reg文件时候先清空 for line in range(37): #这个说明有37行内容 if line ==0: file.write(file_hdr[0] + "\n") else: c = SkyCoord(ra=RM_table_array_catalog[line-1][0]*u.deg, dec=RM_table_array_catalog[line-1][1]*u.deg).to_string('hmsdms') #RM_table_array_catalog这个是一个数组,第一列是ra,第二列是dec,每一行是一个坐标,当然你可以以度数作为单位。 ra_dec = c.replace('0h',':').replace('m',':').replace('s',',').replace('d',':').replace('m',':').replace(' +','+') print(ra_dec) text = 'circle(%s250") # color=red' %ra_dec #在这里设置你的region的大小,你也可以设置成其他形状。这里是圆形 print(text) #text = circle(0:38:24.1420,+41:36:17.473,244.273") # color=red #最终的格式应该参考这个text这样,然后逐行写入即可 file.write(text + "\n")
讯享网
【把.reg文件写成一个坐标数组】
讯享网from astropy.coordinates import Angle reg = Regions.read('/home/kin/FAST/M31_py/analysis/ds9_FAST_RM_source.reg', format='ds9') #re**源文件地址 #for i in range(len(reg)): for i in range(len(reg)): angle_str = reg[i].center.ra angle = Angle(angle_str, unit="deg") ra = round(angle.degree, 3) angle_str = reg[i].center.dec angle = Angle(angle_str, unit="deg") dec = round(angle.degree, 3)
检查格式
格式类似这样就可以了
Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(1:06:25.2508,+42:27:39.171,1145.258")

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29361.html