PIE SDK归一化水体指数法

1.算法功能简介

 

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

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

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

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

 

 

2.算法功能实现说明

2.1 实现步骤

第一步orm

算法参数设置视频

第二步blog

算法执行教程

第三步ci

结果显示string

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

示例代码

 

 1 /// <summary>
 2 /// 归一化水体指数法
 3 /// </summary>
 4 public void NormalizeWaterExtract()
 5 {
 6     // 归一化水体指数分类
 7   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" };//输入文件列表
 8     info.OutputFilePath = @"D:\MapData\Raster\水体提取数据\temp\autoMagic.shp";//输出文件路径 注意是矢量文件
 9     info.ShpFilePath = @"D:\MapData\Raster\水体提取数据\WR_20171219_A0303_636493863981864520\SHP_FE233_20171219_636493846049962321.shp";//矢量范围路径
10     info.Type = 0;//自动提取类型 默认0
11     PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll","PIE.CommonAlgo.DataAutoMagicAlgo");
12     if (algo == null) return;
13                       
14     algo.Name = "归一化水体指数分类";
15     algo.Params = info;
16     bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
17     if (result)
18     {
19         MessageBox.Show("归一化水体指数分类算法执行成功");
20         ILayer layer = LayerFactory.CreateDefaultLayer(info.OutputFilePath);
21         if (layer == null) return;
22         m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
23         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
24     }
25 }
View Code

 

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);    }}

相关文章
相关标签/搜索