使用readcol读取FITS文件时,“找不到此格式的有效行”错误

时间:2015-06-23 14:51:04

标签: idl astronomy fits

我正在尝试编写一个脚本,不仅可以读取FITS文件,还可以打印并将数据保存到表中。到目前为止,我的代码似乎没有读取文件的问题;打印它们似乎是个问题。到目前为止这是我的代码(当我运行此代码时,我收到错误消息“找不到此格式的有效行”:

;Planck File read (used to read in and print individual fits files)
pro planck_file_read

readcol,'COM_PCCS_857_R1.20.fits',name,glon,glat,ra,dec,detflux,detflux_err,aperflux,aperflux_err,psfflux,psfflux_err,gauflux,gauflux_err,gau_semi1,gau_semi1_err,gau_semi2,gau_semi2_err,gau_theta,gau_theta_err,gau_fwhm_eff,extended,cirrus_n,ext_val,ercsc

openw,lun,'fits_857.tbl',/get_lun,width=400
printf,lun,'; ;    name                    GLON            GLAT             RA              DEC         DETFLUX    DETFLUXERR    APERFLUX   APERFLUXERR     PSFFLUX    PSFFLUXERR     GAUFLUX    GAUFLUXERR    GAUSEMI1   GAUSEMI1ERR    GAUSEMI2   GAUSEMI2ERR    GAUTHETA   GAUTHETAERR  GAUFWHMEFF  EXTENDED  CIRRUSN  EXTVAL  ERCSC
printf,lun,'; ;                            DEG             DEG              DEG             DEG           MJY          MJY          MJY          MJY          MJY          MJY          MJY          MJY        ARCMIN       ARCMIN       ARCMIN       ARCMIN         DEG         DEG        ARCMIN      NONE      NONE    NONE    NONE
for i=0,n_elements(fits_name)-1 do printf,lun,name[i],glon[i],glat[i],ra[i],dec[i],detflux[i],detflux_err[i],aperflux[i],aperflux_err[i],psfflux[i],psfflux_err[i],gauflux[i],gauflux_err[i],gau_semi1[i],gau_semi1_err[i],gau_semi2[i],gau_semi2_err[i],gau_theta[i],gau_theta_err[i],gau_fwhm_eff[i],extended[i],cirrus_n[i],ext_val[i],ercsc[i]
free_lun,lun

end

2 个答案:

答案 0 :(得分:1)

该错误消息来自READCOLREADCOL旨在读取ASCII文件,而不是FITS文件。使用FITS_OPENFITS_READFITS_CLOSE等FITS例程来读取数据。

答案 1 :(得分:0)

READCOL旨在将带有数据列的自由格式ASCII文件读入向量。您必须为其提供数据文件中的确切列数,才能正确读取文件。例如,如果我写

READCOL, 'file.txt', name, date, ID, num_cookies 

并且该文件实际上有另一列数量的蛋糕,它不会读取任何内容,因为它将查找只有4个变量的行。如果在READCOL调用中包含FORMAT字符串,则可以跳过不需要的变量,如

READCOL, 'file.txt', name, date, ID, num_cookies, FORMAT = '(A,F,F,I,X)' 

其中“X”表示您正在跳过一个变量。

但是,如果你的文件是一个拟合文件,它的格式可能不同,你应该查看上面提到的@mgalloy的FITS例程。