欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IDL文件读写(七)

程序员文章站 2024-03-24 22:13:40
...

1.标准化输入输出

IDL文件读写(七)

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.文本文件读写

IDL文件读写(七)
读写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

结果:
IDL文件读写(七)

3.图像文件等其他文件的读写

1.文件读写工具参考

参考IDL帮助文档,里面有众多文件的读写实例,包括常用的tiff,jpg,hdf,csv等,望君自行学习。
(IDL帮助文档,按功能分类的routines,Input/Output)

IDL文件读写(七)
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> 
相关标签: envi,idl idl