Координаты Astropy оказались очень быстрым способом преобразования между ICRS и кадрами Galacti c. Мой вопрос касается записи массива SkyCoord в текстовый файл, возможно, с использованием массива Numpy или Pandas DataFrame в качестве посредника. Мои массивы довольно большие (~ 100K координат), поэтому эффективность желательна.
Кажется, что в классе SkyCoord нет методов для экспорта RA / De c как любого Python встроенного в структуре данных. Один из возможных маршрутов, которые я исследовал, - это создание Astropy QTable для координат (который добавляет их в виде строк), но это медленный процесс, требующий дополнительной обработки для разделения и очистки строк координат.
Например
import numpy as np
import pandas as pd
from astropy import units as u
from astropy.coordinates import SkyCoord
from astropy.io import ascii
from astropy.table import QTable
if __name__ == "__main__":
RA = np.array([0.819853, 0.0920091, 1.04977])
DEC = np.array([-30.8484, -30.671, -31.0921])
c = SkyCoord(ra=RA * u.degree, dec=DEC * u.degree, frame="icrs")
c_galactic = c.galactic
table = QTable([c_galactic], names=["skycoord"])
ascii.write(
table, "gal_coords.csv", format="csv", fast_writer=False, overwrite=True
)
Любые предложения о наилучшем способе достижения этой цели будут приветствоваться. Если решение универсально для преобразования массивов SkyCoord в другие структуры данных, я надеюсь, что это будет полезно для более широкого сообщества.