IDL文件读写(七)
文章目录
1.标准化输入输出
1.print
输出所需要的值
2.read
数值读取,常用在不写界面,但需要用户输入所变量值的情况下
(下例给a赋值12)
IDL> read,a
: 12
IDL>
3.reads
以下给两个例子
1)
IDL> str
10 123 def
IDL> str='10 123 def'
IDL> a=0
IDL> b=0
IDL> c=''
IDL> reads,str,a,b,c
IDL> a
10
IDL> b
123
IDL> c
def
IDL>
IDL> reads,str,a,b,c
IDL> a
10
IDL> b
123
IDL> c
def
IDL> str='abc123def'
IDL> a=''
IDL> b=0
IDL> c=''
IDL> reads,str,a,b,c,format='(A3,I3,A3)'
IDL>
(必须加format)
**注:相关FORMAT,格式控制的内容参考文章:(包括进制转换的内容) **http://blog.sina.com.cn/s/blog_6787163301012trw.html
2.读写文本/ASCII文件
1.lun 逻辑设备号
IDL从磁盘上的文件读取数据,必须首先把一个逻辑设备号连接到一个特定的文件,然后进行文件操作,如打开,关闭和读取等。IDL中逻辑设备号的取值范围是[-2,128],其中[1,99]是用户任意指定的,[100,128]是通过get_lun和free_lun来管理的。其他是特殊函数专用的。
更多lun相关知识,参考idl帮助文档。(可在命令行输入?get_lun来获得get_lun,顺便获得lun相关信息,或者在idl帮助文档中直接搜索lun。)
2.文本文件读写
读写ASCII文件:
1)*格式
——逗号或空白分开文件中的元素
——ReadF读取
——WriteF写出
2)确定格式
——ReadF和WriteF
——通用格式符
3)向导读取
——ASCII_TEMPLATE ,READ_ASCII
3.简单例子
pro test_li
arr=bindgen(4,4)
arr2=bindgen(4,4)*2
openw,lun,'D:\lizi.txt',/get_lun
printf,lun,arr
;可给printf设置一定的format
free_lun,lun
END
结果:
3.图像文件等其他文件的读写
1.文件读写工具参考
参考IDL帮助文档,里面有众多文件的读写实例,包括常用的tiff,jpg,hdf,csv等,望君自行学习。
(IDL帮助文档,按功能分类的routines,Input/Output)
IDL读取TIFF格式影像,可参考文章:https://blog.csdn.net/weixin_43955546/article/details/104745416
2.影像存储格式间的转换(transpose())
影像的存储格式,有BSQ,BIP,BIL三种格式,那三种格式的转换,用transpose() 函数
a可认为是BSQ格式存储的影像矩阵,分别将a转换成BIL和BIP格式,请君思索。
IDL> a=bindgen(2,2,3)
IDL> a
0 1
2 3
4 5
6 7
8 9
10 11
IDL> transpose(a,[0,2,1])
0 1
4 5
8 9
2 3
6 7
10 11
IDL> transpose(a,[2,1,0])
0 4 8
2 6 10
1 5 9
3 7 11
IDL>
下一篇: Android Ble蓝牙开发总结