首页 分享 IDL读写操作

IDL读写操作

来源:花匠小妙招 时间:2025-03-10 18:53
一、标准输入输出格式

(1)调用格式:

IDL>print, variabie,format='(格式)'

aN 开始为数据类型,a-字符串,i-整数,f-单精度浮点型,d-双精度浮点型,e-科学计数法 iN(.M) N为输出字符宽度 fN(.M) M为小数点后位数 dN(.M) eN(.M) Nx 为输出N个空格 / 换行

(2)输出默认为右对齐,可加入负号变为左对齐

(3)可控制设置多个输出格式:format='(**,**)'。如果要使用相同格式:format='(ciN.M)',c为使用相同格式代码的变量个数

(4)read默认为浮点型,要读取其他类型数据,必须实现创建该变量。

二、文件操作

(1)文件的打开与关闭,需要通过逻辑设备号完成,一个文件对应一个逻辑设备号。IDL可用128个逻辑设备号,1-99可以直接指定使用,100-128号可以通过get_lun和free_lun命令来获取和释放。为了方便使用,通过使用get_lun和free_lun命令来动态设置逻辑设备号

(2)文件操作:IDL>操作,lum,fname,/get_lun。参数lun为逻辑设备号变量,fname为文件名,关键字get_lun分配一个没有使用过的逻辑设备号给lun。操作有openr-读操作,openw-写操作,openu-读写操作

(3)文件的选择

IDL>cd[, directory(字符串)][,current=variable(可获得当前的工作路径名] result=dialog_pickfile([/directory(加上选择文件夹,不加则选择文件)][,filter=string(如'*txt')][,title=string(对话框标题)][,get_path=variableA(获取路径)][,path=string(设置选择文件的初始所在路径)])

①如加上/directory,则result=variableA;②path=string,这个string是自己设置的,可以设置搜索对话框打开后所处于的文件夹

(4)文件查询

语句:IDL>result=file_search(path(字符串),recur_pattern(文件名查询条件) [,count=variable(查询出的数量赋给variable)] [, /test_directory(如加上则只查出文件夹),/test_regular(如加上则只查出文件)] )     result类型为一个字符串数组

①recur_pattern的几种典型形式

IDL>fns=file_search('*') ;返回全部文件 IDL>fns=file_search('*a*') ;返回所有文件名中带a的文件 IDL>fns=file_search('*.{txt,ppt}') ;返回txt与ppt后缀的文件 IDL>fns=file_search('[a~b]*.txt') ;返回开头为a或b IDL>fns=file_search('') ;待补充

②获取一个目录内所有的ENVI文件名

pro get_envi_tiff_filenames work_dir=dialog_pickfile(/directory) cd,work_dir fns=file_search('*.tif',count=fnums) ENVI_fns=strarr(fnums) for i=0,fnums-1 do begin ENVI_fns[i]=strmid(fns[i],0,strlen(fns[i])-4) endfor print,ENVI_fns,format='(a)' ;format使用的一些小发现 1、如果不加则ENVI_fns中的数一个接一个输出,2、如果加了,则一行输出一个 end

(5)其他文件操作

IDL>result=file_lines(fname) IDL>result=fstat(lun) ;UNIT:文件对应的逻辑设备号 ;NAME:绝对路径的文件名 ;READ:文件是否为读状态 ;CUR_PTR:文件指针指向的位置 ;SIZE:文件大小 IDL>point_lun,lun,position;可以修改finfo.cur_ptr所指向的位置 IDL>result=eof(lun)判断文件指针是否已经到了文件的末尾,是为1

(6)ASCII码文件读写

;读取 fn=dialog_pickfile() openr,lun,fn,/get_lun data=intarr(2,5) readf,lun,data ;语法 readf,lun,var1。。。 free_lun,lun ;如果设置的存储读取结果的变量容量超过了文件数据量,会报错 ;如果设置的存储读取结果的变量容量小于文件数据量,则只读到存满为止

(7)读写图像文件

①文件查询

result=query_image(fname[,info]  [,channels=var]  [,dimensions=var]  [,pixel_type=var]  [,type-var]  [,has_palette=var]  [,image_index=index]  [,num_images=var]  )

fname:文件名,字符串

info:返回图像的基本信息,包含后面的那些东西,结构体变量

channels:波段数,整形

dimensions:行列数,2个元素的数组

pixel_type:像素类型,整形指代的数据类型

has_palette:真彩色为0,假彩色为1

image_index:图像在文件中的索引号

type:图像文件类型,字符串

②读取图像文件

img=read_image(fname)返回一个三维数组[波段数,列数,行数]。灰度图像只有行列数,波段顺序有BIP、BSQ两种

result=dialog_read_image([,image=img]  [,query=info]  [,file=fn]  [,filter_type=string]  [,get_path=var]  [,path=string]  [,title=string]  )

后面内容与dialog_pickfile相同,差异:img存放图像,info存放图像信息,fn存文件名,result返回1代表成功读取,0为失败

query_image,read_image,write_image都有对应特定格式的read_tiff等

相关知识

IDL读写操作
Python 文件操作中的读写模式:open(path, ‘
利用IDL计算植被覆盖度(VFC)
Android 存储学习之在外部存储中读写文件
基于IDL的热红外遥感空间降尺度研究
python学习笔记(十六)文件操作
1602读写时序,图示时间P0=COM在E使能前
MI 小米 9290022200 专业读写护眼台灯 379元
蒲公英的拼音怎么读写(蒲公英的正确读音)
花径通幽处 为有暗香来——临沂第十中学“木香花语”教师读写团队建设纪实

网址: IDL读写操作 https://www.huajiangbk.com/newsview1712890.html

所属分类:花卉
上一篇: 郴州市哪里有卖辐射防护铅板源头厂
下一篇: 如何有效预防电脑辐射(保护眼睛)

推荐分享