ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:1.15MB ,
资源ID:2123856      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2123856.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IDL-程序设计笔记.docx)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

IDL-程序设计笔记.docx

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

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

3、 个空格字符串/H 直接引用字符串输出或者用 H 直接输出字符串c( ) 用于输出日期数据Eg:2、ASCII 文件读写 常见 ASCII 文件:txt、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)

4、函数用于查询文本文件的行数。3) 打开文件:在 IDL 中读写 ASCII 码或者二进制文件,首先需要将文件与一个逻辑设备号关联起来。语法:openr/openw/openu, lun, fname, /get_lun, width=10,/append4) 读写操作:IDL 中利用 readf 函数读取文本文件、利用 printf 函数写入 ASCII 文件 Readf, lun, var01, var02. printf, lun, var01, var02.5) 文件关闭:在对文件操作完成之后,需要关闭文件的逻辑设备号,eg: freee_lun,lunEG:*如何获取某个文件你的列数:

5、先读取一行数据,然后利用空格进行字符串拆分;最后利用n_elements()计算元素个数即为 ns对于某些遥感数据的头文件前面几行是说明文件,后一部分才是数据的,读取有两种方式:1) 定义一个临时变量 temp,将说明文字用该变量存储2) 直接跳行:skip_lun, lun, 3, /lines ;跳过文件的前三行3、二进制文件读写多数遥感数据的数据文件都是二进制文件。1) 函数 readu, lun, var01, var02.用于读取二进制文件*:对于某些数据文件开头是说明信息,读取时可以用 point_lun, lun, position直接按字节跳过。Eg:读取 IDL 文件下的 e

6、nvi.img 数据2) 函数 writeu, lun, var01, var02用于写入二进制文件。Eg01:将上面读取的 envi.img 计算其 NDVI 并保存为二进制文件Eg02:Eg03:;读取cha06 下的风云02 卫星数据pro read_AWXfile = E:zengskIDLCha06dataFY2C_TBB_IR1_OTG_20061130_AOAD.AWXopenr, lun, file, /get_lun;跳过前20个字节point_lun,lun,20Headline = indgen(3);定义三个整型数据,分别读取记录长度、头文件记录数、数据记录数readu

7、, lun, Headlineprint,headline0, headline1,headline2;定位到第58个字节,读取数据日期point_lun, lun, 58Begindate = indgen(5);记录开始日期readu, lun, BegindateEnddate = indgen(5);记录结束日期readu, lun, Enddatelat_long = indgen(4);记录网格左上和右上角的经纬度readu, lun, lat_longprint,Begindateprint,Enddateprint,lat_long;基于Headline信息数组,定义字节数组,

8、其行列数分别为记录长度和数据记录数data = bytarr(Headline2,Headline0);定位到数据部分,其头文件结束的字节位置为“ 头文件记录数* 记录长度”point_lun, lun, Headline0 * Headline1print,Headline0 * Headline1;读取数据部分readu, lun, datahelp,data;显示数据window, 0, xsize = 500, ysize = 500tv, congrid(data, 500, 500)end4、图像格式文件读写IDL 自带了丰富的多种图像读写函数,如 BMP,JPG,PNG, JPE

9、G2000, DICOM,TIFF 等相关函数:文件查询:query_image(fname, dimensions = dimensions, channels = nb ) ;channels 返回波段数、dimensions 返回图像的行列数读取图像:read_image ( fname ); 结果返回图像数组写入图像:write_image, fname(可带路径), jpg/bmp/tiff ,data, /order ; order 关键字用于设置图像的纵坐标从上往下算起,默认为从下往上。*注: I、以上三个函数对于 IDL 支持的图像格式都适用。II、显示图像时: tv 用法:t

10、v, data, true = 1/2/3 ;其中关键字 true = 1 表示数据格式为(3, m, n) 、true = 2 表示数组格式为(m, 3, n) 、true = 3 表示格式为(m, n, 3)III、tvrd:屏幕拷贝函数,返回当前直接图形窗口或设备的指定矩形部分的内容。IV、对遥感图像而言,其数据存放方式有 BSQBIPBIL,以一个三维 m 列 n 行的遥感数据为例:BSQ 的表示方式为 m, n, 3、BIP 表达方式为3, m ,n、BIL 的表达方式为m, 3, n,常用的图像文件一般是 BIP 方式存储,遥感文件一般是 BSQ。1) JPEG 格式:读 read

11、_jpeg写 write_jpegEg01:Eg02:2) BMP 格式:(不采用任何压缩),数据存储量一般很大读:read_imge(fname) or read_bmp(fname, /rgb)写:write_bmp, fname, data, /rgb3) TIFF 格式:TIFF 可以存储多波段图像,还可以包含投影信息,如 landsat-7 就是直接用.tiff 存储的。Eg01:5、科学数据格式读写*IDL 中支持的科学数据格式包括 CDF、HDF、 HDF5、HDF-EOS、NetCDF等等。1) HDF4 文件:目前国内外的多种卫星传感器都是将 HDF 作为标准数据格式,包括E

12、OS/MODIS、EOS/OMI、HJ-01/HSI 、FY-3/MERSI。EG01:;读取E:ENVIIDL下的MODIS数据的经纬度以及其1KM的反射率数据集pro test_hdffname=dialog_pickfile(title =选择数据文件:,get_path=cur_dir)cd, cur_dirhdf_id=hdf_sd_start(fname);打开hdf文件,返回一个文件idhdf_sd_fileinfo,hdf_id,sd_nums,attribute;用于获取HDF文件的数据集数目和属性数目print,sd_nums,attribute;读取经度lat_index

13、=hdf_sd_nametoindex(hdf_id,Latitude);根据数据集名称来获取数据集的索引号lat_id=hdf_sd_select(hdf_id,lat_index);利用索引号选择数据集,返回一个数据集的idhdf_sd_getinfo,lat_id,name=name,unit=unit;查询已打开的数据集的基本信息print,name,“ “, unithdf_sd_getdata,lat_id,lat;读取数据,参数lat用于返回读取的数据hdf_sd_endaccess,lat_id;关闭已经打开的数据集help,lat;读取纬度lon_index=hdf_sd_n

14、ametoindex(hdf_id,Longitude)lon_id=hdf_sd_select(hdf_id,lon_index)hdf_sd_getinfo,lon_id,name=name,unit=unitprint,name,“ “, unithdf_sd_getdata,lon_id,lonhdf_sd_endaccess,lon_idhelp,lon;读取1KM 反射率数据ref_index=hdf_sd_nametoindex(hdf_id,EV_1KM_RefSB)ref_id=hdf_sd_select(hdf_id,ref_index)hdf_sd_getinfo,ref

15、_id,name=name,unit=unitprint,name,“ “, unithdf_sd_getdata,ref_id,ref_valuehdf_sd_endaccess,ref_idhelp,ref_valuehdf_sd_end, hdf_id;关闭打开的文件end运行效果2)*.h5、*.hdf5、*.he5 格式的读取:;下面介绍一个读取环境卫星*.h5数据格式的例子pro read_hdf5fname=dialog_pickfile(title =选择数据文件:,get_path=cur_dir)cd, cur_dir;打开一个图形用户界面查看h5文件result=h5_browser(fname);h5_message=h5_parse(fname);查询文件的基本信息,返回一个结构体变量;print,h5_messageh5_id=h5f_open(fname);打开一个h5文件,返回一个文件的id

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。