我正在尝试编写一个脚本,不仅可以读取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
答案 0 :(得分:1)
该错误消息来自READCOL
。 READCOL
旨在读取ASCII文件,而不是FITS文件。使用FITS_OPEN
,FITS_READ
和FITS_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例程。