ENVI5.0的binary viewer在哪

ENVI正射校正、统计大气校正、地形起伏度与影像清晰度计算
我的图书馆
ENVI正射校正、统计大气校正、地形起伏度与影像清晰度计算
ENVI正射校正扩展模块介绍
&& ENVI正射校正扩展模块随着ENVI4.6.1 在3月份正式发布。
产品概述&&ENVI的正射校正扩展模块采用瑞典Spacemetric公司研制的精确正射校正数学模型,Spacementric公司与卫星和航空的影像数据供应商具有多年合作的经验,能够根据目前最流行的卫星和航天传感器来优化他们的模型。&& && ENVI正射校正扩展模块一次可以完成大区域、若干景影像和多传感器的正射校正,并能以镶嵌结果的方式输出,提供接边线、颜色平衡等工具。整个模块是基于流程化的向导式操作方式和工程化管理,经过五个步骤,即输入数据、收集控制点、选择连接点(Ties)、确定接边线和输出结果,即使非专家用户也能轻松快速地得到精确的结果。具有灵活的功能扩展,包括自定义传感器模型和批处理。但与ArcGIS的整合时,您可以无缝地将结果导入ArcGIS平台中而不需要中断你的工作流程。
基于流程化的向导式操作方式和工程化管理
支持传感器模型ENVI正射校正扩展模块支持大多数传感器模型,而且还支持自定义传感器模型。l卫星传感器ASTER, Landsat, IKONOS, EROS, QuickBird, WorldView-1, SPOT, ERS, RADARSAT-1, IRS/ RESOURCESAT(P6), CARTOSAT-1(P5), FORMOSAT-2, OrbView/GeoEye-1, KOMPSAT, UK-DMC, AlgeriaSat-1, NigeriaSat-1, Beijing-1l航空传感器Leica ADS, Intergraph, Z/I, ZI/DMC, Vexcel UltraCam, Trimble/Applanix DSS, Generic Frame Camera, Generic Pushbroom Camera产品特性l采用的正射校正方法具有可靠和高精度的特点,并且该方法被行业所认可。l支持大区域范围内的多幅影像、多传感器的一次正射校正。l具有镶嵌结果的功能,并提供接边线和颜色平衡辅助工具。l采用流程化的向导式操作方式和工程化管理。l自定义传感器模型l提供接口函数,便于扩展功能。
&&&& Flat FieldFFLog ResidualsInternal Average Relative ReflectanceIARR(Empirical Line)Basic Tools-&Preprocessing-& Calibration Utilities
(Flat Field Calibration)
Flat FieldDN
ENVIROI ToolFlat Field
(1) Basic Tools-&Preprocessing-& Calibration Utilities-& Flat FieldCalibration Input FileOK
13.4Select ROI for& Calibration
13.4 Flat Field Calibration Parameters
Log &Residuals
(1) Basic ToolsPreprocessing-&Calibration Utilities-&Log Residuals Calibration Input FileOK
(2) Log Residuals Calibration ParametersOK
IAR (Internal Average Relative) ReflectanceDN
(1) Basic Tools-&Preprocessing-&Calibration Utilities-& IAR ReflectanceCalibration Input FileOK
(2) IARR Calibration ParametersFileMemoryOK
(Empirical Line Calibration)
&&& ENVIEmpirical Line的地面反射光谱值(Field SpectraData SpectraASCII
Compute Factors and Calibrate
Empirical Line
(1) Basic Tools-&Preprocessing-& Calibration Utilities-& Empirical Line-& Compute Factors and CalibrateEmpirical Line Input FileOK
(2) Empirical Line Spectra13.5Field SpectraData Spectra
13.5 Empirical Line Spectra
Empirical Line SpectraImport SpectraData Spectral Collection13.6
Data Spectral CollectionImport-&from ROI/EVF from input fileApplyEmpirical Line SpectraCancelData Spectra Collection
13.6 Data Spectral Collection
Empirical Line SpectraImport SpectraFeild Spectra CollectionData Spectra Collection
Feild Spectra CollectionImport-&from ASD binary fileASDApplyEmpirical Line SpectraCancelFeild Spectra Collection
(3) Empirical Line SpectraEnter PairSelected PairsSelected Pairs
(5) OKEmpirical Line Calibration Parameters
(6) Empirical Line Calibration ParametersASCIIOutput Calibration Filename .cff
(Calibrating Using Existing Factors)
Calibrate Using Existing Factors
Basic Tools- &Preprocessing-& Calibration Utilities-& Empirical Line-&Calibrate Using Existing FactorsOK
Enter Calibration Factors Filename.cffOK
Empirical Line Calibration ParametersOK
&&& 在很多具有栅格分析的软件中都没有提供计算地形起伏度的功能,虽然可以根据现有的工具进行组合计算,但是还是比较麻烦。ENVI/IDL的栅格运算功能强大,效率高。本文利用IDL制作了计算地形起伏度的程序,并且能集成在ENVI中使用。
注意事项:
&&& 将dixingqifudu.pro文件放到ENVI的安装目录\ProgramFiles\ITT\IDLxx\products\enviXX\save_add下,启动ENVI+IDL,出现在ENVI的topographic菜单下:(或者编译成sav文件,只打开ENVI即可。)
;;===界面居中的函数======================
PRO CENTERTLB, tlb, x, y, NoCenter=nocenter
& COMPILE_OPT StrictArr&& geom = WIDGET_INFO(tlb, /Geometry)&& IF N_ELEMENTS(x) EQ 0 THEN xc = 0.5 ELSE xc = FLOAT(x[0])& IF N_ELEMENTS(y) EQ 0 THEN yc = 0.5 ELSE yc = 1.0 - FLOAT(y[0])& center = 1 - KEYWORD_SET(nocenter)& ;& oMonInfo = OBJ_NEW('IDLsysMonitorInfo')& rects = oMonInfo -& GetRectangles(Exclude_Taskbar=exclude_Taskbar)& pmi = oMonInfo -& GetPrimaryMonitorIndex()& OBJ_DESTROY, oMonInfo&& screenSize =rects[[2, 3], pmi]&& ; Get_Screen_Size()& IF screenSize[0] GT 2000 THEN screenSize[0] = screenSize[0]/2 ; Dual monitors.& xCenter = screenSize[0] * xc& yCenter = screenSize[1] * yc&& xHalfSize = geom.Scr_XSize / 2 * center& yHalfSize = geom.Scr_YSize / 2 * center&& XOffset = 0 & (xCenter - xHalfSize) & (screenSize[0] - geom.Scr_Xsize)& YOffset = 0 & (yCenter - yHalfSize) & (screenSize[1] - geom.Scr_Ysize)&& WIDGET_CONTROL, tlb, XOffset=XOffset, YOffset=YOffsetEND;;;================================================
;自动添加envi菜单PRO dixingqifudu_define_buttons, buttonInfo& ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = '地形起伏度计算', $&&& uValue = '', $&&& event_pro ='dixingqifudu', $&&& REF_VALUE = 'Topographic',position=2end
pro qifudu_result, pp, flag, out_name=out_pp是窗口大小,flag是存贮方式& compile_opt idl2&& envi_batch_init& pp=窗口大小& p1=(pp-1)/2;用于建立窗口大小& envi_select,fid=fid,pos=pos,dims=dims
& if fid eq -1 then begin&&&&&&&&&&&&&
&&&&& envi_batch_exit&&&&&&&&&&&&&&&&&&
&&& return&&&&&&&&&&&&&&&&&&&&&&&&&&&&
& endif&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
& ENVI_FILE_QUERY, fid, bnames=bnames&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&nl=dims[4]-dims[3]+1& ns=dims[2]-dims[1]+1& nb=size(pos)& nb=nb[1];& print,nb& tfid=indgen(nb)& posss=intarr(nb);因为后面生成的都是单波段文件及r_fid,所以都是0表示第一个波段。& FOR g=0,nb-1 DO BEGIN&&& data1 = ENVI_GET_DATA(DIMS=dims, FID=fid , POS=pos[g])&&& inherit = envi_set_inheritance(fid, dims, pos[g], /full)&&& data2=data1&&& FOR i =p1,ns-p1-1 DO BEGIN
&&&&& FOR j =p1, nl-p1-1& DO BEGIN
&&&&&&& ;获取一个pp*pp的窗口&&&&&&& t= data1[[i-p1]:[i+p1],[j-p1]:[j+p1]]&&&&&&& tmax=max(t,min=tmin)&&&&&&& data2[i,j]=tmax-tmin&&&&& ENDfor&&& ENDFOR&&&&&&&&& ENVI_WRITE_ENVI_FILE, data2,inherit=inherit ,r_fid=t,out_name=out_name+bnames[pos[g]] ;,/NO_OPEN;&&&&& ENVI_FILE_MNG, id=t, /REMOVE&&&&& tfid[g]=t&&& ENDfor&&& if flag eq 1 then begin&&&&&& envi_doit, 'cf_doit', fid=tfid, pos=posss, dims=dims, $&&&&&& remove=0, out_name=out_name, r_fid=r_fid&&& endif else begin&&&&&& envi_doit, 'cf_doit', fid=tfid, pos=posss, dims=dims, $&&&&&& remove=0, /IN_MEMORY, r_fid=r_fid&&& endelse&end
;事件响应程序
pro dixingqifudu_event,event& widget_control,event.top,get_uvalue=pstate
&& if TAG_NAMES(event,/STRUCTURE_NAME) eq 'WIDGET_KILL_REQUEST' then begin&&&&&&&&&& WIDGET_CONTROL,event.top,/destroy&&&&& ptr_free,pstate&&&&& RETURN&& endif&&& widget_control,event.id,get_uvalue=uval& case uval of&&& 'list':& begin&&&&&&&&&&&&&& (*pstate).chuangkou=fix(event.str)&&&&&&&&&&&&&&&& print, fix(event.str)&&&&&&&&;&&&&&&&&&&&&& if event.index eq -1 then a=fix(event.str);&&&&&&&&&&&&& help,fix(event.str)&&&&&&&&&&&& end&&& 'file_m':begin&&&&&&&&&&&&& if event.value eq '内存' then begin&&&&&&&&&&&&&& (*pstate).flag=0&&&&&&&&&&&&&& widget_control,(*pstate).i_base52,map=0&&&&&&&&&&&&& endif else begin&&&&&&&&&&&&&& (*pstate).flag=1&&&&&&&&&&&&&& widget_control,(*pstate).i_base52,map=1&&&&&&&&&&&&& endelse&&&&&&&&&&&& end&&&& 'xuanze':begin&&&&&&&&&&&&& out_name=Dialog_Pickfile(Path=current, /NoConfirm, $&&&&&&&&&&&&&&&&&&&&&&&&&&& Get_Path=path, Filter=['*.*'],title='选择输出文件名')&&&&&&&&&&&&&&&&& if out_name eq '' then return&&&&&&&&&&&&&&&&& widget_control,(*pstate).dir_text,set_value=out_name&&&&&&&&&&&&&&&&& if (*pstate).flag eq 1 then (*pstate).out_name=out_name&&&&&&&&&&&& end&&& 'dir'&& :begin&&&&&&&&&&&&&&&&&&&&&&&&&& widget_control,event.id,get_value=y&&&&&&&&&&&&& (*pstate).out_name=y&&&&&&&&&&&& end&&& 'queding':begin&&&&&&&&&&&&&&&& if ((*pstate).flag eq 1) and ((*pstate).out_name eq '') then begin&&&&&&&&&&&&&&&&& tem=DIALOG_MESSAGE('指定文件存储路径')&&&&&&&&&&&&&&&&& return&&&&&&&&&&&&& endif&&&&&&&&&&&&& qifudu_result,(*pstate).chuangkou, (*pstate).flag, out_name=(*pstate).out_name&&&&&&&&&&&&& envi_batch_exit&&&&&&&&&&&& end&&& 'quxiao':begin&&&&&&&&&&&&& widget_control,event.top,/DESTROY&&&&&&&&&&&&& ptr_free,pstate&&&&&&&&&&&& end&&&&&&&&&& else:& endcaseend
pro dixingqifudu,eventcompile_opt idl2;& envi,/restore_base_save_files;& envi_select,fid=fid,pos=pos,dims=dims,/band_only;& print,dims
& tlb=widget_base(title='地形起伏度计算',/COLUMN)& tbase0=widget_base(tlb,/COLUMN,/frame)& tbase1=widget_base(tbase0,/row)& lab1=widget_label(tbase1,value='窗口大小(奇数):&&& ')& valu=['3','5','7','9','11']& list=WIDGET_COMBOBOX(tbase1,value=valu,/EDITABLE,xsize=100,uvalue='list')& lab2=widget_label(tbase0,value='说明:可键入参数,回车。');& lab2=widget_label(tbase0,value='',ysize=10)& lab2=widget_label(tlb,value='',ysize=10)&& i_base5=WIDGET_BASE(tlb,/COLUMN,xsize=230,xpad=4,/FRAME)& k_lable2=widget_label(i_base5,value='选择保存方式:',/ALIGN_LEFT)& file_m= CW_BGROUP(i_base5, /row, /EXCLUSIVE, /NO_REL, /RETURN_name,UVALUE='file_m',$&&& ['文件','内存'], SET_VALUE=0)& i_base52=WIDGET_BASE(i_base5,xsize=250,/row)& label3=widget_label(i_base52,value='输出文件',/align_left)& xuanze=widget_button(i_base52,value='选择',uvalue='xuanze')& dir_text=WIDGET_TEXT(i_base52,ysize=1,/EDITABLE,UVALUE='dir',/ALL_EVENTS)& ibase6=widget_base(tlb,/row,/ALIGN_CENTER)& queding=WIDGET_BUTTON(ibase6,value='确定',uvalue='queding')& queding=WIDGET_BUTTON(ibase6,value='取消',uvalue='quxiao')& CENTERTLB, tlb& widget_control,tlb,/realize& pstate=ptr_new({dir_text:dir_text,$&&& chuangkou:3,$&&& flag:1,out_name:'',$&&& i_base52:i_base52},/no_copy)& widget_control,tlb,set_uvalue=pstate& xmanager,'dixingqifudu',tlb,/NO_BLOCK&end
&&& 以上的代码,包含如何搭建界面、事件响应、代码定义ENVI菜单、ENVI功能函数调用等,遥感业务化系统可以按照这种模式打造。
sav文件下载见:=
利用IDL+ENVI实现遥感影像清晰度计算
清晰度是图像细节边缘变化的敏锐程度。在图像细节的边缘处,光学密度或亮度随位置的变化越敏锐(变化快)、越剧烈(反差大),则细节的边缘就越清晰,可辨程度越高。其计算公式可采用改进后的点锐度法【8】来表示:&&式中:M、N分别为图像的行数和列数,df为灰度变化幅值,dx为像元间的距离增量,a表示像素i周围的像素数。
PRO Articulation
& COMPILE_OPT idl2&&& ENVI, /restore_base_save_files&&& envi_batch_init& infile = DIALOG_PICKFILE(title = '请选择要打开的文件:')& ENVI_OPEN_FILE, infile, r_fid=fid& IF (fid EQ -1) THEN BEGIN&&& ENVI_BATCH_EXIT&&& RETURN& ENDIF& ;获取数据的基本信息& ENVI_FILE_QUERY, fid, dims=dims, nb=nb ,nl=nl,ns=ns&& proj = ENVI_GET_PROJECTION(FID = fid,pixel_size=Dx)& print,dx& dx=dx[0];& data1 = MAKE_ARRAY(nl,ns)& FOR g=0,nb-1 DO BEGIN&&& data1 = ENVI_GET_DATA(DIMS=dims, FID=fid , POS=g)
&&& ;&&& ;;清晰度的计算&&& ;
&&& Den = nl*ns
&&& FOR i =1,nl-2 DO BEGIN&&&&& FOR j = 1,ns-2 DO BEGIN&&&&&&& ;获取一个3*3的窗口&&&&&&& t= data1[[i-1]:[i+1],[j-1]:[j+1]]&&&&&&& ;&&&&& help,t&&&&&&& ;对每个窗口做计算&&&&&&& d1=ABS((t[0,0]-t[1,1])/(Dx*1.414))&&&&&&& d2=ABS(t[0,1]-t[1,1])/Dx*1.0&&&&&&& d3=ABS(t[0,2]-t[1,1])/(Dx*1.414)&&&&&&& d4=ABS(t[1,0]-t[1,1])/Dx*1.0&&&&&&& d5=ABS(t[1,2]-t[1,1])/Dx*1.0&&&&&&& d6=ABS(t[2,0]-t[1,1])/(Dx*1.414)&&&&&&& d7=ABS(t[2,1]-t[1,1])/Dx*1.0&&&&&&& d8=ABS(t[2,2]-t[1,1])/(Dx*1.414)&&&&&&& ;计算每个窗口的df/dx&&&&&&& dd=d1+d2+d3+d4+d5+d6+d7+d8&&&&& ;&&&&&&&&& ENDFOR&&& ENDFOR&&& outdata2 = dd/Den
&& ;输出每个波段图像的清晰度&&& PRINT,outdata2& ENDFOREND
个人觉得这个代码的优点在于:
&&&&&& 1、三窗口矩阵的获取,(----多窗口的获取)
&&&&&& 2、获取后指定一变量t,关于矩阵内部的运算直接针对t就行了,这样避免了操作窗口时数组下标混乱。
TA的最新馆藏[转]&[转]&[转]&
喜欢该文的人也喜欢怎样在ENVI&5.0创建感兴趣区
ROIs (regions of interest) have been used in ENVI classic for many
years and in many processes.& One drawback of
using ROIs is that they are based on image coordinates (number of
rows and columns) rather than map coordinates which means they are
not easily transferred between images of different sizes or
projections. &&With ENVI 5, map
coordinate-based& vectors (shapefiles and ENVI
.evf) are utilized most often because they are more portable
between images and between image processing
packages.& However, there are still many uses for
ROIs and in ENVI 5 there is a new method for their
creation.& This help article discusses how to
create ROIs in the ENVI 5 interface.
To create a new ROI in ENVI 5 you must first create a vector file
for the ROI.& A new vector can be created by first
displaying an image on which you want to base the vectors in a View
in the Layer Manager.& Then go
to&File -&New-&Vector
The&Create New
Vector Layer&dialog
&<img ALT="" WIDTH="330" HEIGHT="338" src="/blog7style/images/common/sg_trans.gif" real_src ="/Portals/0/helparticles/vector_create.png" STYLE="outline: border-style: margin: 0 width: 288 height: 272"
TITLE="怎样在ENVI&5.0创建感兴趣区" />
Here you select the Source Data (displayed dataset) which will
define the new layer’s extents and map
projection.& &Select the type of
vectors you wish to create (points, lines, or
polygons).& Select&Ok&and the new layer
is added to the View and the&Vector Create&button is
active&<img ALT="" WIDTH="27" HEIGHT="25" src="/blog7style/images/common/sg_trans.gif" real_src ="/Portals/0/helparticles/vectordrawbutton.png" STYLE="outline: border-style: margin: 0"
TITLE="怎样在ENVI&5.0创建感兴趣区" />.&&&
Begin to draw your vectors.&
the vector layer is to be used for training data you will need one
vector layer for each training data set.
After you have drawn the desired vectors, right click on the vector
layer in the Layer Manager and
select&Save As…&to save
the vector layer to a
shapefile.&&&
Once the shapefile is saved, you can convert it to an
ROI.& In the Toolbox, type in ‘convert
vector’&.& This will reduce
the toolbox list to theConvert
Vector to ROI&tool.&
Double-click on the&Convert Vector to
ROI&tool.& Your saved
vector files will be listed in the&Select Input
File&dialog.& Select all
vector files you wish to convert using shift+click.
&<img ALT="" WIDTH="434" HEIGHT="331" src="/blog7style/images/common/sg_trans.gif" real_src ="/Portals/0/helparticles/roiInput.png" STYLE="outline: border-style: margin: 0 width: 392 height: 282"
TITLE="怎样在ENVI&5.0创建感兴趣区" />
Then select&OK.& In
the&Convert Vector
to ROI&dialog, select how you would like
the vectors to be converted to ROIs.
&<img ALT="" WIDTH="287" HEIGHT="348" src="/blog7style/images/common/sg_trans.gif" real_src ="/Portals/0/helparticles/convertVector.png" STYLE="outline: border-style: margin: 0 width: 247 height: 269"
TITLE="怎样在ENVI&5.0创建感兴趣区" />
Select OK.& The ROIs will be displayed in the
Layer Manager as children of the raster.&
&<img ALT="" WIDTH="230" HEIGHT="244" src="/blog7style/images/common/sg_trans.gif" real_src ="/Portals/0/helparticles/ROILayerManager.png" STYLE="outline: border-style: margin: 0 width: 223 height: 226"
TITLE="怎样在ENVI&5.0创建感兴趣区" />
&ROIs listed in the Layer Manager can be used to
calculate statistics on the ROI by right-clicking on the ROI name
and selecting&Stats…
ROIs can be saved to an ENVI .roi file by right-clicking on the ROI
name and selecting&Save As
.ROI…& These saved ROIs can be
restored in ENVI 5 or in ENVI Classic.
ToolBox:&&Vector---------------------Intelligent
Digitizer感兴趣区
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 binary viewer 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信