Download presentation
Presentation is loading. Please wait.
Published byMarylou Matthews Modified 6年之前
1
ENVI-IDL可视化程序设计 楚雄师范学院地理科学与旅游管理学院 杨云源 QQ:
2
目 录 第一章 ENVI-IDL开发环境 第二章 数据类型、运算符与表达式 第三章 选择结构与循环结构 第四章 过程与函数 第五章 直接图形法绘图 第六章 对象图形法绘图 第七章 文件访问 第八章 地图输出 第九章 界面与事件 第十章 IDL访问数据库 第十一章 图像处理 第十二章 ENVI-IDL编程与RS-GIS混合编程
3
第七章 文件访问 IDL具有强大的文件访问功能,常用文件包括:数据文件(如txt文件、二进制文件)、图片文件(如jpg文件、bmp文件)、矢量地图文件(如shape file文件)、栅格地图文件(如tiff文件、ENVI地图文件、hdf格式的modis文件)等。
4
第七章 文件访问 7.1 数据文件访问 7.1.1 TXT文件访问
5
第七章 文件访问 通过openr/openw/openu语句打开文件,成功后就有了文件号,若失败则文件号为-1。 打开.txt文件格式为:
readf,文件号,变量名1, [变量名2,……] 写.txt文件格式为: printf,文件号,变量名1, [变量名2,……] 移动.txt文件指针格式为: point_lun,文件号, 指针位置 释放.txt文件格式为: free_lun,文件号 关闭.txt文件格式为: close,文件号
6
第七章 文件访问 1、将.txt文件中的数据读入 ①、按行读取 ②、批量读取 ③、混合型数据读取 2、写.txt文件 3、自由格式文本读写
7.1.2 二进制文件访问
7
第七章 文件访问
8
第七章 文件访问 读取二进制文件,也可以使用read_binary函数。
格式:result=read_binary(文件名/文件号, [关键字=值]) 表7.3是read_binary函数主要的参数与关键字,表7.4是read_binary函数的关键字data_type对应的数据类型。
9
第七章 文件访问
10
第七章 文件访问
11
第七章 文件访问 7.2.1 JPG文件访问 jpg文件信息查询的格式为: state=query_jpeg(文件名, result)
说明:如果查询成功,state为1,否则为0;查询成功,resulet返回一个结构体,记录查询结果。 读入jpg文件的格式为: read_jpeg,文件名,数组名,关键字=值 说明:可通过设定关键字true的取值来设定返回数组的维度。如果是彩色图片,设置true=1,则数组的维度为[3,m,n];true=2,则数组的维度为[m,3,n];true=3,则数组的维度为[m,n,3]。如果是灰度图,则数组维度为[m,n]。 写入jpg文件的格式为: write_jpeg,文件名, 数组名, 关键字=值
12
第七章 文件访问
13
第七章 文件访问 file='d:\idl\default\idl data\chapter7\cxtc.bmp
state=query_bmp(file,info) data=read_bmp(file,/rgb) data_size=size(data) ;新建窗体显示数据,设定xsize,ysize与图片行列号一致 window,0,xsize=data_size[2],ysize=data_size[3] tv,data,true=1 ;图7.4 ;获取101行101列开头的150行×150列数据 data1=data(*,100:249,100:249) window,1,xsize=150,ysize=150 tv,data1,true=1 ;图7.5 ;切片数据写为bmp图像 write_bmp,'d:\1.bmp',data1,/rgb
14
第七章 文件访问
15
第七章 文件访问 7.3 ShapeFile格式矢量地图文件访问 7.3.1 ShapeFile文件格式简介
shapefile文件是美国环境系统研究所(ESRI)研制的矢量地图文件格式。shapefile文件中存储了地图图形信息、属性信息、索引信息、投影信息等内容。
16
第七章 文件访问
17
第七章 文件访问
18
第七章 文件访问
19
第七章 文件访问 7.3.2 基于二进制文件法访问ShapeFile文件 1、读取shp格式文件 ①、shp文件结构
24
第七章 文件访问
26
第七章 文件访问
27
第七章 文件访问
28
第七章 文件访问
29
第七章 文件访问
30
第七章 文件访问
34
第七章 文件访问 7.3.3 基于对象图形法访问Shapefile文件 使用IDLffShape对象可直接访问shapefile数据。
对象创建格式:对象名= obj_new('IDLffShape',文件名) 说明:文件名直接指向.shp文件。 创建对象后,就可访问该shapefile文件的相关数据。 格式:对象名->方法名[,属性名=值]
36
第七章 文件访问 7.4 TIFF格式栅格地图文件访问
37
第七章 文件访问 7.4.1 TIFF文件基本操作函数 1、文件信息查询
格式:state=query_tiff(file,tiff_info[,关键字=值]) 说明:查询成功,则state=1,否则为0。若查询成功,tiff_info返回一个结构体,结构体包含了查询文件的基本信息。关键字geotiff可返回投影信息的结构体;若一个tiff文件中包含多个图像文件,需查询某个文件信息时,使用关键字image_index指定需查询图像的索引,索引值从0开始。 2、文件读取 格式:tif_img=read_tiff(file [,关键字=值]) 说明:读取数据为数组,存储在tif_img数组中。若一个tiff文件中包含多个图像文件,使用关键字image_index指定需读取图像的索引;使用sub_rect关键字指定读取数据的范围。 3、文件写入 格式:write_tiff ,file,data [,关键字=值]
38
第七章 文件访问
39
第七章 文件访问
40
第七章 文件访问 7.5 HDF格式文件访问
41
第七章 文件访问
42
第七章 文件访问 7.5.1 HDF文件访问 1、hdf_ishdf 2、hdf_sd_start 3、hdf_sd_fileinfo
4、hdf_sd_select 5、hdf_sd_getinfo 6、hdf_sd_getdata 7、hdf_sd_endaccess 8、hdf_sd_end
43
第七章 文件访问
44
第七章 文件访问 7.5.2 使用ENVI插件MCTK访问HDF格式Modis文件 1、Modis数据与MCTK简介
45
第七章 文件访问 Modis数据下载网址很多,如:
46
第七章 文件访问
47
第七章 文件访问 ENVI4.x和ENVI5.x调用MCTK的过程名都是:convert_modis_data。
49
第七章 文件访问
50
第七章 文件访问 2、基于MCKT进行Modis数据处理
51
第七章 文件访问 1、L1A数据导入 2、L1B数据导入 3、L2 级数据导入 4、L3级数据导入
52
第七章 文件访问 7.6 使用ENVI函数访问栅格地图文件 7.6.1 使用ENVI函数获取栅格地图文件
53
第七章 文件访问
54
第七章 文件访问 7.6.2 使用ENVI函数进行投影设置
55
第七章 文件访问 1、地图信息、投影信息获取 文件的mapinfo结构体内包括的成员信息为:投影结构体(proj)、图像左上角行列坐标及其对应的地图坐标(mc,4个元素的数组)、图像分辨率(ps,图像分辨率,2个元素的数组)等信息。 地图信息获取格式: result= envi_get_map_info(fid=file_id) 地图投影信息获取格式: result= envi_get_projection (fid=file_id) 其中的file_id即文件ID,可以通过envi_open_file获取。
56
第七章 文件访问 2、图像行列坐标和地图坐标的相互转换
图像上的行列坐标和地图坐标的相互转换可以使用envi_convert_file_coordinates函数实现。 格式: envi_convert_file_coordinates, xf, yf, xmap, ymap[,/to_map] 说明: xf:图像列坐标。 yf:图像行坐标。 xmap:图像x坐标(地图坐标)。 ymap:图像y坐标(地图坐标)。 to_map:取值1,指定从图像行列坐标转换到地图坐标。默认状态下,不使用该关键字,从地图坐标转换到行列坐标。
57
第七章 文件访问 3、创建mapinfo结构体、projection结构体
创建mapinfo结构体时,不一定要对每个成员进行赋值。IDL中自建了一些关键字,能够辅助进行mapinfo结构体创建。 创建投影坐标下的mapinfo结构体时,需确定左上角的行列坐标及其对应的地理坐标值、图像分辨率、单位、投影名称、椭球体名称等参数。 【例7.38】创建投影坐标、UTM投影、第47投影带的语句为: IDL>envi_convert_file_coordinates,fid_file1,0,0,$ upperleft_x,upperleft_y,/to_map IDL>mc=[0,0,upperleft_x,upperleft_y] IDL>ps=[1000,1000] IDL>units=envi_translate_projection_units('meters') IDL>output_mapinfo=envi_map_info_create(/utm,zone=47,$ ,units=units,ps=ps,mc=mc,datum='WGS-84')
58
第七章 文件访问
Similar presentations