普通ASCII文件
read_ascii
read_ascii可方便读取,读取后成为一个数据结构,默认全部是浮点数,如果需要复杂的数据结构需要使用 TEMPLATE= 关键词
关键词
- DATA_START: 从某一行开始读
- COMMENT_SYMBOL: 注释行
- MISSING_VALUE:为一些非法字符的赋值,默认是IDL中的系统变量 !VALUES.F_NAN.
- TEMPLATE: 可以由ASCII_TEMPLATE给出
readcol
astro_lib中的一个可以指定格式,读入一个规则文件的某一列,或某几列的程序
IDL> FMT = 'A,I,I,F,I,I,F' IDL> READCOL,'position.dat',F=FMT,name,hr,min,sec,deg,dmin,dsec
A - string data, B - byte, D - double precision, F- floating point I - short integer, L - longword, LL - 64 bit integer, U - unsigned short integer, UL - unsigned long integer Z - longword hexadecimal, and X - skip a column.
read_col
我自己写的一个read_col 程序,可以只读一个文件的指定列。
例:读入filename文件的第2列,格式是双精度 arr=read_col('filename',2,type='dbl')
- 文件要求空格做分隔符
- 列的计数从1开始
- 关键词type的默认是字符格式
see My IDL program
read_txt
我自己写了一个read_txt文件:Read txt.pro.txt程序,可以智能的将一个N行M列的数据文件(空格分隔)读为一个data[N,M]的flota array。see My IDL program
readline
一个把文件按照行的模式读入的程序,输出是一个字符串数组,可以结合col_struct使用
IDL>readline,'file.txt',lines,count=Nline
col_struct
将一行由空格分开的数据读入一个结构 来自http://astro.berkeley.edu/~johnjohn/idl.html#COL_STRUCT
IDL> spawn,'cat data.txt', lines IDL> struct = col_struct(lines, ['star','ra','dec','vmag','notes'] , types=['a','f','f','f','a'])