from astroquery.mast import Catalogs
import numpy as np
from astropy.io import ascii
myfile='/Users/slaterjonesoden/Desktop/GALEX_analysis/RQE_sample_data.csv'
sample = ascii.read(myfile, format='csv', delimiter=',', guess=True)
galexMatchCatalog=[]
iteration = 1
for each_galaxy in sample:
catalogData = Catalogs.query_object(str(each_galaxy['RAgal'])+str(' ')+str(each_galaxy['DECgal']), catalog="Galex")
print(iteration)
iteration += 1
if iteration > 2:
break
if len(catalogData)!=0:
sdss_info = [each_galaxy['RAgal'], each_galaxy['DECgal']]
galexMatchCatalog.append(list(np.array(catalogData)[0])+sdss_info)
header = catalogData.colnames + ['sdss_ra', 'sdss_dec']
ascii.write(galexMatchCatalog, '/Users/slaterjonesoden/Desktop/GALEX_analysis_codes/172_RQEs_galex_mast_match.csv', format='csv', names=header, overwrite=True)
我正在尝试使用 Catalogs 查询功能让此代码将我计算机上当前 CSV 文件上的 172 个星系与 astroquery.mast 模块中的星系相匹配。
astroquery.mast 中感兴趣的目录是 GALEX(Galaxy Evolution Explorer)。本质上,我希望代码循环遍历我的 CSV 文件中的 172 个星系,并将它们(使用 RA 和 DEC)与 astroqury.mast 的 GALEX 目录中存储的星系进行匹配。
在匹配这些星系之后,我想用来自这些星系的 GALEX 的数据编写一个新的 CSV 文件。
我在这方面的第一个尝试是定义一个 writeCsvFile() 函数,但这在编写 csv 文件时无法正常工作。
我的下一个尝试是从 astropy.io 导入 ascii 并使用 ascii.read() 和 ascii.write() 函数来读取和写入这些 CSV 文件。起初我以为我很幸运,因为 for 循环正在工作,但在通过 for 循环后,ascii.write() 函数无法正常工作。以下是我在运行代码时收到的错误消息:
上图中的重要错误行:ValueError: Arguments "names" and "dtype" must match number of columns
任何有使用 astroquery.mast 和读/写 CSV 文件经验的人都会有所帮助。
我正在使用 Python 3.6 和解释器 astroconda3 运行此代码
这是代码的图片: 172_RQEs_GALEX_mast_match.py