1.    算法功能简介

同步调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。

PIE SDK支持算法功能的执行,下面对算法的同步调用功能进行介绍。

2.    算法功能实现说明

2.1. 示例简介

AlgoFactory类实现了算法的管理,主要实现了以下方法:

1)      AlgoFactory.Instance().CreateAlgo(A,B)实现算法Algo的创建;需要注意的是:A:“PIE.CommonAlgo.dll”,B: "PIE.CommonAlgo.ImageClipAlgo"。

2)      设置算法执行的参数;

3)      通过算法的Excute或AlgoFactory.Instance().ExcuteAlgo()方法实现算法的同步调用;

2.2. 实现步骤

第一步

算法创建CreateAlgo

第二步

设置算法执行的参数;

第三步

同步执行ExcuteAlgo

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/10.算法调用/算法的调用方式/Algo.Execute

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/ World.tif

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/算法的调用方式/算法的同步调用.avi

示例代码

          /// <summary>
/// 单击方法
/// </summary>
public override void OnClick()
{
//Clip裁剪
PIE.CommonAlgo.DataPreImgClip_Exchange_Info info = new PIE.CommonAlgo.DataPreImgClip_Exchange_Info(); info.InputFilePath = @"D:\Data\World.tif"; //待裁剪影像
PIE.DataSource.IRasterDataset rDataset = PIE.DataSource.DatasetFactory.OpenRasterDataset(info.InputFilePath, PIE.DataSource.OpenMode.ReadOnly);
if (rDataset == null) return;
int count = rDataset.GetBandCount();
List<int> list = new List<int> { };
for (int i = ; i < count; i++)
{
list.Add(i);
}
info.listBands = list;
info.XFactor = ;
info.YFactor = ;
info.bInvalidValue = false;
info.OutputFilePath = @"D:\Data\clip_Execute.tif"; //裁剪保存结果
info.Type = ; // (等于0表示通过栅格范围裁剪)
info.XStart = ;
info.XEnd = ;
info.YStart = ;
info.YEnd = ;
info.FileType = "GTiff"; //Tiff数据的FileTypeCode为“GTiff”,IMG数据的FileTypeCode为"HFA",其他格式的为"ENVI"。; //1、初始实例化Instance,算法创建CreateAlgo
PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImageClipAlgo");
if (algo == null) return; //2、同步执行Excute
PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "影像裁剪";
algo.Params = info;
bool OK = algo.Execute(); PIE.Carto.ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\clip_Execute.tif");
m_HookHelper.FocusMap.AddLayer(layer); m_HookHelper.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

PIE SDK算法的同步调用的更多相关文章

  1. PIE SDK算法的异步调用

    1.算法功能简介 异步方法一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作.异步方法通常会在另外一个线程中,“真实”地执行着.整个过程,不会阻碍调用者的工作. PIE SDK支持算法功能的执 ...

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

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

  3. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  4. PIE SDK 监督分类对话框类(SupervisedClassificaitonDialog)使用经验

    最近研究遥感,用到分类算法,PIE SDK正好提供了一些方法可供调用,他们的官方博客上也有相应的示例代码(可参考:https://www.cnblogs.com/PIESat/p/10725270.h ...

  5. PIE SDK Command、Tool、Control的调用和拓展

    1.功能简介 在一个项目中,是通过小组成员共同开发的,难以避免的是当项目功能集成的时候会出现很多兼容性问题,开发讲究高内聚低耦合,利用Command.Tool和Control的使用,可以提升集成的效率 ...

  6. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

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

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

  8. PIE SDK影像坏线修复

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

  9. PIE SDK组件式开发综合运用示例

    1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...

随机推荐

  1. 如何偷Android的内存-Tricking Android MemoryFile

    之前在做一个内存优化的时候,使用到了MemoryFile,由此发现了MemoryFile的一些特性以及一个非常trickly的使用方法,因此在这里记录一下 What is it MemoryFile是 ...

  2. 2.3.1 java 内存模型

    在前面谈到了一些关于内存模型以及并发编程中可能会出现的一些问题.下面我们来看一下Java内存模型,研究一下Java内存模型为我们提供了哪些保证以及在java中提供了哪些方法和机制来让我们在进行多线程编 ...

  3. try-catch-finally对返回值的影响

    catch 和 finally 一起使用的常见方式是:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源. finally 块用于清理try块分配的任 ...

  4. 自定义UINavigationBar的背景【转】

    from:http://cocoa.venj.me/blog/custom-navbar-background/ 为了让我们的应用程序更加美观,我们往往希望对iPhone自带的控件进行一点自定义.比如 ...

  5. String类的subtring(,)

    截取字符串,参数(起始位置,截取长度)

  6. MongoDB整理笔记のCRUD

    添加 下面我们来建立一个test 的集合并写入一些数据.建立两个对象j 和t , 并保存到集合中去.在例子里 “>” 来表示是 shell 输入提示符    > j = { name : ...

  7. ajax 跨域名调用

    在ajax 中要跨域名 请求的时候要注意 1. dataType: 'jsonp', 2. jsonp: 'callback', <script type="text/javascri ...

  8. Extjs Ext.TreePanel

    TreePanel 简单实例. <link rel="stylesheet" href="Js/ext-4.2/resources/css/ext-all-nept ...

  9. 原型(Prototype)模式

    一. 原型(Prototype)模式 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象. 从孙大圣的手段谈起 孙悟空在与黄风怪的战斗中 ...

  10. js任意位数求和

    <script> //任意位数求和 function sum(){ if(arguments.length==1) { console.log(arguments[0]) return; ...