|
主程序
pro MC_integrated
;ENVI初始化
compile_opt idl2
envi,/restore_base_save_files
envi_batch_init,log_file='batch.log'
;+----------------------------------------------------------------------------------------------------------
;|文件打开及数据存储
;+----------------------------------------------------------------------------------------------------------
;打开envi支持的文件格式,envi_pickfile函数可从外部磁盘中读取文件
o_file=envi_pickfile(title='选择子分类器文件',/multiple_files) ;multiple_files实现同时打开多个文件
; help,o_file ;获取o_file的数据类型
; help,size(o_file,/dimensions) ;获取o_file的维数
;显示已选择的文件名及文件个数
f_name=file_search(o_file,count=count1)
envi_open_file,o_file[0],r_fid=o_fid
if (o_file[0] eq '') then return
;如果要把每个文件的信息都读取出来且存储下来,则需要给它们设定数组变量;否则后读的文件信息会把前面的文件信息覆盖掉
;因为每个文件的行列信息及投影信息都是一样的,只是它们的数据有所差别,这样行列及投影信息是可以共用的
;但需要对数据分别存储,则需要知道行列号,就先进行信息查询
envi_file_query,o_fid,fname=fname,data_type=data_type,interleave=interleave,$
dims=dims,nl=nl,ns=ns,nb=nb,Xstart=Xstart,Ystart=Ystart,$
num_classes=num_classes,class_name=class_name,lookup=lookup
map_info=envi_get_map_info(fid=o_fid)
;知道行列号信息后,定义一个数据数组,用来存储class
data=lindgen(ns,nl,count1)
for n=0,count1-1 do begin
f_name=o_file[n]
envi_open_file,o_file[n],r_fid=o_fid
;获取分类数据
data[*,*,n]=envi_get_data(fid=o_fid,dims=dims,pos=0)
;help,size(c_data,/dimensions)
endfor
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-20 22:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社