IDL读取RA和Dec格式

时间:2014-03-26 06:16:09

标签: format idl

我想从文件中读取一些RA和Dec值,只找到唯一的值。然后,这将打印到一个新文件,其中只包含与每个RA和Dec相关的唯一信息。

该文件包含 starId,RA,Dec,Mag,Temp,....

0001,19:20:21.22,37:40:43.5,14.6,5432,......

readcol,'/filepath/filename.txt',starId,RA,DEC,Mag, Temp, format='L,A,A,D,D',/silent
idx = uniq(starId)

当我尝试将唯一列表写入文件时

openw,2,'/filepath/uniqlist.txt'
printf,2,[transpose([starId[idx]), transpose(RA[idx]), transpose(Dec[idx])]
close,2

我只得到RA和Dec的第一个值

任何人都可以提供帮助,我可以使用哪些格式说明符来读取或写入正确的信息

2 个答案:

答案 0 :(得分:0)

我没有找到解决方案,但我确实找到了解决方法

事实证明,printf语句中的数组括号'[]'似乎会导致问题。

解决方法是使用循环打印以旧式方式提交文件

idx = uniq(starId)
openw,2,'/filepath/uniqlist.txt'
for i = 0, n_elements(idx)-1 do begin
    printf,2, starId[idx[i]],'   ',RA[idx[i]],'  ',DEC[idx[i]],
endfor
close, 2

不理想,但确实有效。

如果有人有,我仍然会对更好的解决方案感兴趣。

答案 1 :(得分:0)

这样的事情怎么样?

openw, lun, output_filename, /get_lun
printf, lun, transpose([[starId[idx]], [RA[idx]], [dec[idx]]])
free_lun, lun