IDL---ENVI

简介: ENVI;启动envi file=envi_pickfile();选择文件dialog,返回值就为file ENVI_OPEN_FIle,file,r_fid=fid;根据文件名打开file,并且返回fid envi_file_query,fid,NB=NB,NL=NL,NS=NS,dims=...
ENVI;启动envi
file=envi_pickfile();选择文件dialog,返回值就为file
ENVI_OPEN_FIle,file,r_fid=fid;根据文件名打开file,并且返回fid
envi_file_query,fid,NB=NB,NL=NL,NS=NS,dims=dims,data_type=dt,bnames=bnames;根据fid查询图像信息
data=envi_get_data(fid=fid,dims=dims,pos=0)根据fid得到数据dims:维度
window,1,xsize=798,ysize=909l;新建一个window窗体
tv,data;显示数据
tvscl,data;拉伸显示
tvscl,data,/order;idl中左下角为原点,envi中是左上角
envi,/restore_base_save_files ;不启动ENVI调用功能
envi_batch_init:批处理初始化
.e canny.pro;跳转到canny.pro文件

完整工程文件----定义一个button,并添加事件
PRO envi_canny_define_buttons,buttonInfo
;定义button
ENVI_DEFINE_MENU_BUTTON,buttonInfo,$
  value='Canny',$;显示的值
  uValue='',$;用户值
  EVENT_PRO='envi_canny',$;必须与主函数名一致
  pef_value='Filter',$;区分大小写
  position=1;位置
END
  
pro envi_canny,event          ;定义主函数
;
compile_opt idl2              ;编译环境
;选择数据
envi_select,fid=fid,/BAND_ONLY,pos=pos  ;选择遥感数据文件
;检查数据
print,fid,pos   ;打印
if fid eq -1 then return                ;判断是否得到数据
;查询数据
envi_file_query,fid,dims=dims,ns=ns,$
 nl=nl, nb=1, wl=wl
;获取数据
data=ENVI_GET_DATA(fid=fid,dims=dims,pos=pos)
;canny
result=canny(data)
;显示数据
;TVSCL,result   ;新建窗体并显示数据
output=envi_pickfile(/output)   ;设置并得到输出路径
  if(output eq "")then begin    ;判断得到的输出路径是否为空
    ENVI_ENTER_DATA,result
   endif else begin   
    ;保存数据
   openw,lun,output,/GET_LUN    ;新建二进制文件
   writeu,lun,result                     ;将结果写入    
   FREE_LUN,lun                          ;释放
   ;写头文件
   ENVI_SETUP_HEAD, fname=output,     $
    interleave=0,data_type=1, $
    NS=NS,NB=1,NL=NL,$
     /write, /open, r_fid = r_fid
     end
  
 envi_display_bands, r_fid, 0;显示该文件(只有一个波段)
 
END

;写完主程序之后要进行保存,$
;在控制台中
;save,filename="E:\Program Files\Exelis\ENVI51\classic\save_add\envi_canny.sav", /routines



解决方案:
在IDL的帮助中搜素resolve_all,通过语法
RESOLVE_ALL [, CLASS=string] [, /CONTINUE_ON_ERROR] [, /QUIET] [, RESOLVE_EITHER=string] [, RESOLVE_FUNCTION=string] [, RESOLVE_PROCEDURE=string] [, SKIP_ROUTINES=string] [, UNRESOLVED=variable]
在控制台中输入resolve_all,/CONTINUE_ON_ERROR,SKIP_ROUTINES="envi"回车,在save
save,filename="E:\Program Files\Exelis\ENVI51\classic\save_add\envi_canny.sav", /routines
目录
相关文章
|
Java Linux Android开发
移动应用开发与操作系统的交互:深入理解Android和iOS
在数字时代,移动应用成为我们日常生活的一部分。本文将深入探讨移动应用开发的核心概念、移动操作系统的工作原理以及它们如何相互作用。我们将通过实际代码示例,展示如何在Android和iOS平台上创建一个简单的“Hello World”应用,并解释其背后的技术原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。
|
7月前
|
开发者
《HarmonyOSNext自动续期订阅支付全攻略 | 从环境检测到防漏单指南》
本文详解HarmonyOS Next自动续期订阅支付全流程,涵盖环境检测、商品展示、订单处理与防漏单策略,适用于教育科普行业开发者学习参考。
|
10月前
|
弹性计算 Linux 云计算
阿里云操作系统控制台——ECS操作及云计算应用实践
本文详细介绍了云服务器ECS的使用流程,包括开通服务、系统配置、权限管理、组件安装及内存全景诊断等关键步骤。通过开通阿里云操作系统服务、授予RAM用户权限和安装必要组件,可实现对服务器的有效管理与维护。在内存诊断部分,展示了如何发起诊断并解析结果,帮助精准定位内存问题。此外,文章还讲解了利用ECS训练模型的操作方法,从上传文件到终端命令执行,直至完成模型训练。最后总结指出,掌握这些技能不仅提升了对云服务器架构的理解,还为实际业务提供了高效解决方案,展现了ECS在数据处理与分析中的重要价值。
阿里云操作系统控制台——ECS操作及云计算应用实践
|
SQL 分布式计算 大数据
湖仓融合:MaxComputee与Hologres基于OpenLake的湖上解决方案
本次主题探讨湖仓融合:MaxCompute与Hologres基于OpenLake的湖上解决方案。首先从数据湖和数据仓库的历史及业界解决方案出发,分析湖仓融合的两种思路;接着针对国内问题,介绍阿里云如何通过MaxCompute和Hologres解决湖仓融合中的挑战,特别是在非结构化数据处理方面的能力。最后,重点讲解Object Table为湖仓增添了SQL生态的非结构化数据处理能力,提升数据处理效率和安全性,使用户能够在云端灵活处理各类数据。
|
存储 缓存 监控
性能测试中关注的指标
性能测试关注多个层面的指标,包括系统层(CPU、内存、磁盘、网络)、中间件层(网关、数据库、缓存、MQ、分布式存储)、应用层(响应时间、吞吐量、应用资源、GC、错误信息)及业务层和发压机指标。这些指标帮助评估系统性能,识别潜在瓶颈,确保软件质量和用户体验。
960 4
|
网络协议 网络架构
什么是TCP重传?
【4月更文挑战第12天】
1485 3
|
人工智能 算法 安全
全球首位AI程序员诞生:对程序员的影响将会有多大?
全球首位AI程序员的诞生将深远影响程序员行业。自动化代码编写和优化将提升效率,减轻人工负担;AI能进行缺陷检测和错误修复,增强软件质量。AI还能促进知识传承和协作,成为程序员的智能导师。尽管可能影响部分传统编码职位,但也将创造新机遇,推动程序员向更复杂任务转型。随着AI技术发展,未来软件开发将加速自动化,同时也需关注伦理和安全问题。人类与AI的协同将塑造行业新未来!
|
JavaScript
深入理解汇编中的ZF、OF、SF标志位和条件跳转
深入理解汇编中的ZF、OF、SF标志位和条件跳转
1658 0
|
存储 NoSQL Redis
保障数据安全,保障系统稳定:Redis 数据备份与恢复全指南
保障数据安全,保障系统稳定:Redis 数据备份与恢复全指南
614 0
|
存储 固态存储 大数据
阿里云服务器收费价格表,云服务器实例、块存储、带宽等项目收费标准参考
阿里云服务器收费项目包括实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式既有包年包月也有按量付费模式,本文为大家汇总了这些项目的最新收费标准,以供参考。
1211 0
阿里云服务器收费价格表,云服务器实例、块存储、带宽等项目收费标准参考