У меня есть текстовый файл телескопа с тремя столбцами, RA, DEC и TIME.RA и DEC - координаты неба, а TIME - время наблюдения в этих координатах.Хотя RA и DEC повторяются во многих записях, время в каждой записи нет, т. Е. Можно указать (RA, DEC) = (120,30) в первые 2 часа, затем еще на 4 и, наконец, еще на 1.Идея состоит в том, чтобы использовать python для написания другого текстового файла, в котором каждая пара координат появляется только один раз, а время является суммой всех времен в этих координатах.Конечно, некоторые координаты наблюдаются только один раз, поэтому они не повторяются.
Я сделал несколько попыток, и в данный момент мне удалось записать один и тот же входной файл, но первая запись каждой координаты всегда является хорошим результатом.,Проблема в том, что если пара координат повторяется, скажем, 5 раз, то текстовый файл запишет эти координаты 5 раз, будучи временем в первой сумме, а остальные я не знаю, но они не должныбыть там
import numpy as np
file_all=open('input_file.txt',"r")
data_all = np.loadtxt(input_file,unpack=True)
time_all = data_all[0]
ra_all = data_all[1]
dec_all = data_all[2]
file_new=open('output_file.txt',"w")
file_new.write('#Time RA Dec\n')
time_new = np.zeros(len(ra_all))
ra_new = np.zeros(len(ra_all))
dec_new = np.zeros(len(ra_all))
for i in range(len(ra_all)):
time_new[i]=time_all[i]
for k in range(len(ra_all)):
if ((ra_all[i]==ra_all[k]) and i!=k):
cont = 0
if i<=k:
time_new[i]=time_new[i]+time_all[k]
ra_new[i] = ra_all[i]
dec_new[i] = dec_all[i]
elif ((ra_all[i]!=ra_all[k]) and i!=k):
time_new[i]=time_all[i]
ra_new[i] = ra_all[i]
dec_new[i] = dec_all[i]
if ra_new[i]!=0:
t = '%.3f %.5f %.5f\n' % (time_new[i], ra_new[i], dec_new[i])
file_new.write(t)
file_new.close()