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

相關文章
相關標籤/搜索