“普通ASCII文件”的版本间差异
跳到导航
跳到搜索
无编辑摘要 |
|||
(未显示4个用户的17个中间版本) | |||
第12行: | 第12行: | ||
*TEMPLATE: 可以由ASCII_TEMPLATE给出 |
*TEMPLATE: 可以由ASCII_TEMPLATE给出 |
||
== read_ascii == |
|||
== 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. |
|||
=== writecol === |
|||
网上找到一个writecol文件,可以实现按列输出文件,省得自己写循环[http://www.eg.bucknell.edu/physics/ASTR201/IDLTutorial/writecol.pro] |
|||
=== read_col === |
|||
我自己写的一个read_col 程序,可以只读一个文件的指定列。 |
|||
例:读入filename文件的第2列,格式是双精度 |
|||
arr=read_col('filename',2,type='dbl') |
|||
*文件要求空格做分隔符 |
|||
*列的计数从1开始 |
|||
*关键词type的默认是字符格式 |
|||
see [[My IDL program]] |
|||
===rdfloat=== |
|||
也是[[astro_lib]]中的可以读制定列 |
|||
== read_txt== |
|||
⚫ | |||
==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']) |
2015年7月2日 (四) 07:19的最新版本
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.
writecol
网上找到一个writecol文件,可以实现按列输出文件,省得自己写循环[1]
read_col
我自己写的一个read_col 程序,可以只读一个文件的指定列。
例:读入filename文件的第2列,格式是双精度 arr=read_col('filename',2,type='dbl')
- 文件要求空格做分隔符
- 列的计数从1开始
- 关键词type的默认是字符格式
see My IDL program
rdfloat
也是astro_lib中的可以读制定列
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'])