1.算法功能简介

  归一化指数法(NDWI(Normalized Difference Water Index,归一化水指数)),用遥感影像的特定波段进行归一化差值处理,以凸显影像中的水体信息。

  其表达式为NDWI =(p(Green)-p(NIR))/(p(Green)+p(NIR))

  是基于绿波段与近红外波的归一化比值指数。该NDWI一般用来提取影像中的水体信息,效果较好。

  PIE支持归一化指数法算法的执行,下面对此算法功能进行介绍。示例以一幅洞庭湖2017年水体影像图如下图根据矢量文件提取指定范围内的水体数据为例。结果看示例截图部分。

2.算法功能实现说明

2.1 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2 算法参数

算法名称

归一化水体指数算法

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.DataAutoMagicAlgo

参数结构体

DataAutoMagic_Exchange_Info

参数说明

InputFilePathList

IList<string>

输入文件路径列表

OutputFilePath

String

输出文件路径

ShpFilePath

String

范围路径

Type

Int

自动提取类型,默认是0

2.3 示例代码

数据路径

百度云盘地址下/ PIE示例数据/栅格数据/01.GF1/洞庭湖水体/ IMG_FE233_20171219_636493846049962321.tif

SHP_FE233_20171219_636493846049962321.shp

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/行业应用/归一化指数算法.avi

示例代码

 /// <summary>
/// 归一化水体指数法
/// </summary>
public void NormalizeWaterExtract()
{
// 归一化水体指数分类
PIE.CommonAlgo.DataAutoMagic_Exchange_Info info = new DataAutoMagic_Exchange_Info(); info.InputFilePathList = new List<string> {@"D:\MapData\Raster\水体提取数据\WR_20171219_A0303_636493863981864520\IMG_FE233_20171219_636493846049962321.tif" };//输入文件列表
info.OutputFilePath = @"D:\MapData\Raster\水体提取数据\temp\autoMagic.shp";//输出文件路径 注意是矢量文件
info.ShpFilePath = @"D:\MapData\Raster\水体提取数据\WR_20171219_A0303_636493863981864520\SHP_FE233_20171219_636493846049962321.shp";//矢量范围路径
info.Type = ;//自动提取类型 默认0
PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll","PIE.CommonAlgo.DataAutoMagicAlgo");
if (algo == null) return; algo.Name = "归一化水体指数分类";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
if (result)
{
MessageBox.Show("归一化水体指数分类算法执行成功");
ILayer layer = LayerFactory.CreateDefaultLayer(info.OutputFilePath);
if (layer == null) return;
m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}

2.4 示例截图

/// <summary>/// 归一化水体指数法/// </summary>public void NormalizeWaterExtract(){    // 归一化水体指数分类  PIE.CommonAlgo.DataAutoMagic_Exchange_Info info = new DataAutoMagic_Exchange_Info();    info.InputFilePathList = new List<string> {@"D:\MapData\Raster\水体提取数据\WR_20171219_A0303_636493863981864520\IMG_FE233_20171219_636493846049962321.tif" };//输入文件列表    info.OutputFilePath = @"D:\MapData\Raster\水体提取数据\temp\autoMagic.shp ";//输出文件路径 注意是矢量文件    info.ShpFilePath = @"D:\MapData\Raster\水体提取数据\WR_20171219_A0303_636493863981864520\SHP_FE233_20171219_636493846049962321.shp";//矢量范围路径    info.Type = 0;//自动提取类型 默认0    PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll","PIE.CommonAlgo.DataAutoMagicAlgo");    if (algo == null) return;                          algo.Name = "归一化水体指数分类";    algo.Params = info;    bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);    if (result)    {        MessageBox.Show("归一化水体指数分类算法执行成功");        ILayer layer = LayerFactory.CreateDefaultLayer(info.OutputFilePath);        if (layer == null) return;        m_HookHelper.ActiveView.FocusMap.AddLayer(layer);        m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);    }}

PIE SDK归一化水体指数法的更多相关文章

  1. PIE SDK水体指数法

    1.算法功能简介 单波段阈值法是通过选择某单一波段为判识参数,这一波段往往是水体特征最明显而其它地物相对不太突出的波段(如近红外波段和中红外波段),然后再划定阈值来确定水体信息.该方法主要是利用水体在 ...

  2. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  3. PIE SDK水深提取算法

    1.算法功能简介 水深提取算法就是根据输入的水位设为d,dem设为h 这两个数据做一个差值运算,则水深计算公式为d-h;本示例中的是基于洞庭湖提取的水体矢量文件的范围来计算dem和水位25米的差值. ...

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

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

  5. PIE SDK波段运算

    1.算法功能简介 波段运算(Band Math)工具能够方便的执行图像中的各个波段的加减乘除.三角函数.指数.对数等数学函数计算,也可以使用IDL编写的函数. 由于每个用户都有独特的需求,利用此工具用 ...

  6. PIE SDK频率域滤波

    1.算法功能简介 频率域滤波的基本工作流程为:空间域图像的傅里叶变换→频率域图像→设计滤波器→傅里叶逆变换→其他应用. 低通滤波,对频率域的图像通过滤波器削弱或抑制高频部分而保留低频部分的滤波方法,可 ...

  7. PIE SDK同态滤波

    1.算法功能简介 同态滤波是减少低频增加高频,从而减少光照变化并锐化边缘或细节的图像滤波方法. 同态滤波的流程为:空间域图像→对数运算→傅里叶正变换→同态滤波――傅里叶逆变换→指数运算→同态滤波结果. ...

  8. 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 ...

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

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

随机推荐

  1. 【IDE_IntelliJ IDEA】IDEA中使用Junit插件自动创建测试用例到test目录

    第一步 从插件资源库中搜索JunitGenerator V2.0插件并安装 第二步 配置测试用例的生成目录 1.打开File->Settings 2.搜索junit,找到JUnit Genera ...

  2. 机器学习(4)——PCA与梯度上升法

    主成分分析(Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化.去噪 通过映射,我们可以 ...

  3. Qt 之 qwt 和 qwtpolar 的编译配置

    1  Qwt Qwt 全称为 Qt Widgets for Technical Applications,用于专业技术领域的可视化显示,如下所示: 左图为二阶系统的频率响应:中图为德国小城 Fried ...

  4. 还是畅通工程 HDU - 1233

    题目链接:https://vjudge.net/problem/HDU-1233 思路: 最小生成树板子. #include <iostream> #include <stdio.h ...

  5. Python获取帮助的3种方式(转载)

    我们可以很容易的通过Python解释器获取帮助.如果想知道一个对象(object)更多的信息,那么可以调用help(object)!另外还有一些有用的方法,dir(object)会显示该对象的大部分相 ...

  6. JAVA并发-Condition

    简介 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait().notify()系列方法可以实现等待/通知模式.在Java SE5后,Java提供了Lock接口, ...

  7. LeetCode 21. Merge Two Sorted Lists合并两个有序链表 (C++)

    题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ...

  8. ASP.NET开发实战——(三)第一个ASP.NET应用《MyBlog》

    本文开始通过ASP.NET MVC创建一个博客应用,该应用是通过默认的MVC模板修改而来,所以创建的过程和代码都与默认模板一致,然后通过修改的方式将默认模板改为博客的主页,并添加博客列表.内容等页面. ...

  9. 关于RAMOS所用的操作系统

    关于RAMOS所用的操作系统 RAMOS所用的操作系统,XP就不用说了,精简版最小的600MB到1.5GB的都有.现代意义上的WIN7/8/10 RAMOS一般选用精简版操作系统,节约内存的同时,还能 ...

  10. Visual Studio 调试系列3 断点

    系列目录     [已更新最新开发文章,点击查看详细] 断点是开发人员的工具箱中最重要的调试技术之一. 若要暂停调试程序执行所需的位置设置断点. 例如,你可能想要查看代码变量的状态或查看调用堆栈的某些 ...