PIE SDK与IDL算法结合说明文档

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算法结合/xx..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          }

2.5. 示例截图

原文地址:https://www.cnblogs.com/PIESat/p/10244166.html

时间: 2024-10-30 15:30:18

PIE SDK与IDL算法结合说明文档的相关文章

PIE SDK专题制图保存模板说明文档

1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.      [模板文件]        [植被指数模板] 2. 功能实现说明 2.1保存模板 使用IMapDocument接口的Save()方法保存地图文档. 2.2 实现思路及原理说明 第一步 获取当前地

PIE SDK专题制图打开模板说明文档

1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用时只需要打开该模板,加载相应数据,就可以直接出图了,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.         [模板文件]         [植被指数模板] 2. 功能实现说明 2.1打开模板 在PIE中,每个显示的地图都是一个地图文档(PmdContents),它可以保存为*.pmd文件.用IMa

PIE SDK与GeoServer结合说明文档

1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过GeoServer可以容易的在用户之间迅速共享空间地理信息.它能兼容WMS和 WFS 特性:支持 PostGIS.Shapefile.ArcSDE.Oracle.VPF.MySQL.MapInfo:支持上百种投影:能够将网络地图输出为 jpeg.gif.png.SVG.KML等格式:支持AJ

详细设计说明文档

1引言 1.1编写目的 本文档为软件<自习任我行>的详细设计说明书,向阅读人员介绍本软件的整体框架和详细设计. 1.2背景 说明: 项目名称:自习任我行 开发人员:杨波.崔海营.周亚豪.闵芮.高琪.张丹丹.蔡容玉 用户:铁道大学全体学生 运行:安卓手机 系统描述:自习任我行软件为铁道大学的学生提供了一个方便查询自习室上自习的快速平台.该软件分为查询自习室模块和安排自习室模块.自习任我行软件是一套功能简单实用的的专门用于学生自习的软件,具有操作方便高效迅速等特点.该软件采用eclipse开发工具

【腾讯GAD暑期训练营游戏程序班】游戏场景管理作业说明文档

场景管理作业说明文档                              用了八叉树的算法,测出三层时最快,区域范围内物体数量为21块,控制台打印出的结果如图所示: 场景物体:游戏中,所有具有空间属性的物体游戏场景:<围棋>二维表<进击的围棋><围棋世界>基于空间分组的场景管理的进一步优化进一步分组四叉树视锥范围剔除非可见区域当前必要场景区域 动态加载谷歌 可感知即存在 不可感知即不存在 场景加载

文件上传到百度云盘说明文档

图1 图2 图3 图4 1. 上传百度云盘功能,由于百度开发者中还没有开放对.net 操作的SDK,所以我们现在只能使用原生的REST API   我们的做法就是如何用C# 语言调用 调用curl 命令. 2. curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 要操作curl 我们需要引入LibCurlNet.dll   3.百度上传我们需要有百度账号,而且需要申请开发者功能进入主页后

Highcharts选项配置详细说明文档

Highcharts提供大量的选项配置参数,您可以轻松定制符合用户要求的图表,目前官网只提供英文版的开发配置说明文档,而中文版的文档网上甚少,且零散不全.这里,我把Highcharts常用的最核心的参数选项配置整理成文档,与大家分享. Chart:图表区选项 Chart图表区选项用于设置图表区相关属性. 参数 描述 默认值 backgroundColor 设置图表区背景色 #FFFFFF borderWidth 设置图表边框宽度 0 borderRadius 设置图表边框圆角角度 5 rende

完美统计图表(带说明文档)

完美统计图表(带说明文档) android-charts是一套基于Java和Android开发的图形图表控件. 目前该套图表主要包括以下组件: 网格图(gird chart) 线图(line charts),包含单线图和多线图 柱状图(stick charts),包含基本柱状图和特殊柱状图 支持显示均线 K线或蜡烛线图(candle stick-chart) 支持显示均线 饼图(pie chart or pizza chart) 包括基本饼图和分割饼图 雷达图或蛛网图(radar chart o

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

引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情.或者详细点,或者简单点.那么有没有一种快速有效的方法来构建api说明文档呢?答案是肯定的, Swagger就是最受欢迎的REST APIs文档生成工具之一! 为什么使用Swagger作为REST APIs文档生成工具 Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学