Нарисуйте круги в DS9 на верхней части изображения
У меня есть астрономическое изображение всего ночного неба (галактическая плоскость в гамма-лучах), открытого на DS9 в галактических координатах. Я хотел бы, чтобы DS9 рисовал круги над списком координат, которые я предоставляю, и рисовал эти круги поверх изображения ночного неба, которое у меня уже есть. Я знаю, что должен быть простой способ сделать это, почесывая голову здесь...
1 ответ
если у вас есть каталог объектов
import pandas as pd
from astropy.table import Table
# read catalog
candels_catalog = 'cat.csv'
df = pd.read_csv(candels_catalog)
# CSV to Astropy Table
table = Table.from_pandas(df)
# prepare .reg f=ile
reg_filename = "cat.reg"
with open(reg_filename, 'w') as regfile:
regfile.write("# Region file format: DS9 version 4.1\n")
regfile.write("global color=green dashlist=8 3 width=2 font=\"helvetica 10 normal roman\" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1\n")
regfile.write("image\n")
# over table'objects
for obj in table:
x, y = obj['X_IMAGE'], obj['Y_IMAGE']
a, b = obj['A_IMAGE'], obj['B_IMAGE']
theta = obj['THETA_IMAGE']
# write.reg(use pixel coor)
regfile.write("ellipse({},{},{},{},{})\n".format(x, y, a, b, -theta))