1.功能简介

IDL是一门简单易用的科学计算和可视化语言,包含大量的图形图像处理函数,尤其是同ENVI结合集成了该软件的大量功能,因此被广泛用于遥感、地信领域。

本示例程序实现了IDL算法与PIESDK集成功能,使得在PIE中也可以调用IDL写的算法(以IDL图像裁剪算法为例)。

2. 功能实现说明

2.1. IDL算法

IDL写的算法可以是.pro文件也可以是.sav文件,算法如果使用到ENVI函数,需要安装ENVI,另外还需要调用初始化ENVI批处理方法(详见示例代码)。

2.2. 实现思路及原理说明

本示例实现方法主要使用Interop.COM_IDL_connectLib组件,直接添加引用即可(若安装IDL,也可以在添加引用->Com组件中找到它)。需要注意的是.pro和.sav的初始化方法不同,.pro文件使用.complie命令编译后才能使用该函数;而.sav文件需要先restore,再调用(oCom.ExecuteString("restore 'idlfunction.sav'");)。

第一步

添加Interop.COM_IDL_connectLib组件引用

第二步

创建COM_IDL_connectClass对象,并用CreateObject()初始化

第三步

若输入参数需要使用ENVI函数,则需要初始化ENVI批处理

第四步

编译算法,使用.compile/restore命令

第五步

构造算法需要的参数

第六步

利用ExecuteString()方法执行算法

2.3 . 核心接口与方法

接口/类

方法

说明

COM_IDL_connectClass

CreateObject()

构造IDL连接对象

COM_IDL_connectClass

ExecuteString()

执行IDL命令行命令

2.4.  示例代码

项目路径

百度云盘地址下/PIE示例程序/14.SDK拓展开发/ 01PIESDK与IDL算法结合/ BlendWithIDL

数据路径

百度云盘地址下/PIE示例数据/栅格数据/

视频路径

百度云盘地址下/PIE视频教程/14.SDK拓展开发/01PIESDK与IDL算法结合.avi

示例代码

 1          /// <summary>
 2         /// 图像裁剪
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void button_run_Click (object sender, EventArgs e)
 7         {
 8             string inFile = textBox_srcImg.Text;
 9             string extFile = textBox_ext.Text;
10             string outFile = textBox_dst.Text;
11
12             COM_IDL_connectClass oCom = new COM_IDL_connectClass();
13             oCom.CreateObject(0, 0, 0);
14
15             //若依赖envi,先初始化ENVI批处理
16             oCom.ExecuteString("COMPILE_OPT idl2");
17             oCom.ExecuteString("ENVI, /RESTORE_BASE_SAVE_FILES");
18             oCom.ExecuteString("ENVI_BATCH_INIT");
19
20             //编译算法
21             oCom.ExecuteString(@".compile '"+System.IO.Path.Combine(Application.StartupPath,"RasterSubsetViaShapefile.pro") +"'");
22             oCom.ExecuteString(@"file='"+inFile+"'");
23             //获取文件fid(算法需要)
24             oCom.ExecuteString("envi_open_file,file,r_fid=fid");
25             oCom.ExecuteString(@"shpFile = '"+extFile+"'");
26             //调用算法
27             oCom.ExecuteString(@"RasterSubsetViaShapefile, Fid,
28                          shpFile=shpFile,     outFile='"+outFile+"', r_fid=r_fid");
29
30             if (m_OutLayer != null) mapControl_dst.FocusMap.DeleteLayer(m_OutLayer);
31             m_OutLayer = LayerFactory.CreateDefaultLayer(outFile);
32             if (m_OutLayer == null) { MessageBox.Show("执行失败"); return; }
33
34             mapControl_dst.FocusMap.AddLayer(m_OutLayer);           mapControl_dst.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
35          }

View Code

2.5. 示例截图

转载于:https://www.cnblogs.com/PIESat/p/10244166.html

PIE SDK与IDL算法结合说明文档相关推荐

  1. PIE SDK与OpenCV结合说明文档

    1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 ...

  2. PIE SDK剔除栅格块算法

    1.算法功能简介 剔除栅格块即剔除栅格小斑块功能.一幅影像图层某一区域存在碎小斑块,需要对其按照一定的条件进行剔除. PIE支持剔除栅格快算法功能的执行,下面对该算法功能进行介绍. 2.算法功能实现说 ...

  3. PIE SDK算法的自定义扩展

    1.算法功能简介 算法的自定义扩展允许用户自主开发新的算法.自定义的算法必须实现PIE.SystemAlgo.BaseSystemAlgo基础类,这样才能被PIE的算法管理器调用起来. 2.算法功能实 ...

  4. Caysn打印机IOS平台打印开发包、接口说明文档及示例程序_20170717

    打印机开发包,接口说明文档,打印示例程序下载地址:Caysn打印机IOS开发包.接口说明文档.打印示例程序_20170717 Framework版本要求:IOS8  Framework架构:armv7 ...

  5. Caysn打印机IOS平台打印示例及接口说明文档 - 20161008

    打印示例下载地址: Caysn打印机IOS打印示例程序 - sample_20161008 接口说明文档下载地址: Caysn打印机IOS开发包接口说明文档 - PrinterLibs For IOS ...

  6. LEADTOOLS 20帮助说明文档

    LEADTOOLS 20帮助说明文档 LEADTOOLS 20使用DICOM挂起协议创建多学科DICOM查看器 毫无疑问,DICOM挂起协议是忙碌的医生的重要功能.只需查看不同应用程序提供的大量显示布 ...

  7. PIE SDK影像坏线修复

    1.算法功能简介 坏条带的由来:2003年5月31日,Landsat-7ETM+机载扫描行校正器(SLC) 故障,导致此后获取的影像出现了数据条带丢失,严重影响了Landsat ETM遥感影像的使用. ...

  8. 企业应用开发(4)(补充)--需求说明文档

    OJ系统的需求说明文档 1.引言 经过一周的修改及完善,我们基本完善了对OJ系统的需求分析,绘制了思维导图并撰写了用户故事,并设计出了与之相应的原型图. 2.思维导图 如上图所示,我们重新绘制了思维导 ...

  9. ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...

最新文章

  1. 从分治算法到 MapReduce
  2. Android华容道之一步一步实现-8-开始游戏
  3. linux rm 删除所有文件,linux无需rm就可快速删除大量文件
  4. 子网,变长子网及超网(CIDR)
  5. 安全数据分析理念的变化
  6. 福建省计算机学会 noip比赛,重磅!福州一三附学生领衔全省前九名!他们将代表福建参加全国比赛!...
  7. PostgreSQL源码学习(1)--PG13代码结构
  8. 英国政府将设立10亿英镑光网基金
  9. 《实用机器学习》中的一些拓展问题
  10. (十四)三次样条插值
  11. 机器学习十大算法简介
  12. 2019年一线城市程序员工资大调查
  13. android解压rar方法,Android以编程方式解压缩RAR文件
  14. java 爬取ajax,R语言爬虫系列4|AJAX与动态网页介绍
  15. React实现微信公众号支付
  16. ps图案叠加怎么添加图案?Photoshop图案如何使用?
  17. Django QuerySet 就学那么一点点,一点点就够了
  18. 前端面试题整理(会不断更新哦!~~~~~)
  19. 文化产权交易系统-大盘行情实时掌控
  20. stm32在linux下开发(一)

热门文章

  1. 重磅,2020年度第十届吴文俊人工智能科学技术奖获奖名单公示
  2. 一文读懂什么是数字孪生?
  3. 互联网大脑,城市大脑的“大脑”究竟什么含义?
  4. AI芯片重磅破局者,开启边缘新智元
  5. 谷歌自动驾驶是个大坑,还好中国在构建自己的智能驾驶大系统
  6. 科学革命与科学教科书
  7. MIT 的新型开源系统 Taco 将数据分析速度提升 100 倍 !(附论文)
  8. 因融资失败,应用崩溃,3 名程序员被“祭天”!
  9. 乔布斯当年是这样面试我的,你能挺到哪一步?
  10. 王兴:一鸣开始动手了