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> 
发布了39 篇原创文章 · 获赞 5 · 访问量 3054

猜你喜欢

转载自blog.csdn.net/weixin_43955546/article/details/105681256