IDL 程序设计笔记.doc

IDL 程序设计笔记.doc

ID:20516282

大小:1.15 MB

页数:23页

时间:2018-10-11

IDL 程序设计笔记.doc_第1页
IDL 程序设计笔记.doc_第2页
IDL 程序设计笔记.doc_第3页
IDL 程序设计笔记.doc_第4页
IDL 程序设计笔记.doc_第5页
资源描述:

《IDL 程序设计笔记.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录Partone:文件读写操作11、格式化输入与输出(readprint)12、ASCII文件读写23、二进制文件读写54、图像格式文件读写75、科学数据格式读写***8Parttwo:图形绘制11(一)plot过程绘制11(二)plotg()函数绘制12(三)散点图12(四)柱状图、条形图15(五)绘制颜色条colorbar18Partthree:ENVI二次开发201、自定义波段运算函数202、IDL中常见波段运算213、ENVIclassic创建自定义菜单224、ENVIclassic+IDL二次开发23Partone:文件读写操作1、格式化输入与输出(readprint)1

2、)Read:该函数用于从键盘键入数据,默认数据类型为浮点型,若要输入其他类型数据,需要先定义数据类型。Eg:2)Print:该函数用于将数据输出打印到控制台,这里主要讲格式化控制输出format关键字。表01常用格式化控制符格式代码输出效果aN字符或者字符串按照N个字符宽度输出fn.m浮点型数组按照N个字符宽度输出,小数点保留M位dn.mdouble型数组按照N个字符宽度输出,小数点保留M位en.m按照N个字符宽度的科学计数法输出,小数点后精确到M位Nx输出N个空格字符串/H直接引用字符串输出或者用H直接输出字符串c()用于输出日期数据Eg:2、ASCII文件读写常见ASCII文件:tx

3、t、matlab程序文件(*.m)、c程序文件(*.c)、遥感影像头文件(如ENVI格式的头文件*.hdr)1)选择文件:fn=dialog_pickfile(title='选择ASCII文件:',get_path=work_dir)cd,work_dir;用于跳转到当前工作路径2)查询文件:file_search()函数Eg:查找当前工作路径下所有的txt文件,并返回文件数目*:File_lines(fname)函数用于查询文本文件的行数。3)打开文件:在IDL中读写ASCII码或者二进制文件,首先需要将文件与一个逻辑设备号关联起来。语法:openr/openw/openu,lun,f

4、name,/get_lun,width=10,/append4)读写操作:IDL中利用readf函数读取文本文件、利用printf函数写入ASCII文件①Readf,lun,var01,var02….②printf,lun,var01,var02….5)文件关闭:在对文件操作完成之后,需要关闭文件的逻辑设备号,eg:freee_lun,lunEG:*如何获取某个文件你的列数:先读取一行数据,然后利用空格进行字符串拆分;最后利用n_elements()计算元素个数即为ns对于某些遥感数据的头文件前面几行是说明文件,后一部分才是数据的,读取有两种方式:1)定义一个临时变量temp,将说明文字

5、用该变量存储2)直接跳行:skip_lun,lun,3,/lines;跳过文件的前三行3、二进制文件读写多数遥感数据的数据文件都是二进制文件。1)函数readu,lun,var01,var02….用于读取二进制文件*:对于某些数据文件开头是说明信息,读取时可以用point_lun,lun,position直接按字节跳过。Eg:读取IDL文件下的envi.img数据2)函数writeu,lun,var01,var02…用于写入二进制文件。Eg01:将上面读取的envi.img计算其NDVI并保存为二进制文件Eg02:Eg03:;读取cha06下的风云02卫星数据proread_AWXfil

6、e='E:zengskIDLCha06dataFY2C_TBB_IR1_OTG_20061130_AOAD.AWX'openr,lun,file,/get_lun;跳过前20个字节point_lun,lun,20Headline=indgen(3);定义三个整型数据,分别读取记录长度、头文件记录数、数据记录数readu,lun,Headlineprint,headline[0],headline[1],headline[2];定位到第58个字节,读取数据日期point_lun,lun,58Begindate=indgen(5);记录开始日期readu,lun,Begindate

7、Enddate=indgen(5);记录结束日期readu,lun,Enddatelat_long=indgen(4);记录网格左上和右上角的经纬度readu,lun,lat_longprint,Begindateprint,Enddateprint,lat_long;基于Headline信息数组,定义字节数组,其行列数分别为记录长度和数据记录数data=bytarr(Headline[2],Headline[0]);定位到数据部分

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。