PIE SDK水深提取算法

1.算法功能簡介

  水深提取算法就是根據輸入的水位設爲d,dem設爲h 這兩個數據作一個差值運算,則水深計算公式爲d-h;本示例中的是基於洞庭湖提取的水體矢量文件的範圍來計算dem和水位25米的差值。算法

  須要注意的是,水位的基準要和dem的基準一致。水位的基準須要判斷是基於河牀仍是和dem一致的高程基準面。否則結果可能會受影響。ide

2.算法功能實現說明

2.1 實現步驟

第一步spa

算法參數設置code

第二步blog

算法執行ci

第三步string

結果顯示event

2.2 算法參數

算法名稱table

水深提取法ast

C#算法DLL

PIE.CommonAlgo.dll

C#算法名稱

PIE.CommonAlgo. WaterStatisticsAlgo

參數結構體

WaterDepthInfo

參數說明

dWaterHeight

double

水位

pszInDEMFile

string

DEM文件路徑

pszOutFile

string

輸出文件路徑

pszShpFile

String

水體矢量路徑

2.3 示例代碼

數據路徑

百度雲盤地址下/ PIE示例數據/柵格數據/01.GF1/洞庭湖水體/ WR_20171219_A0303_636493863981864520/dem/洞庭湖.tif

示例代碼

 1 /// <summary>
 2 /// 水深提取算法 autoMagic.shp水體矢量文件是IMG_FE233_20171219_636493846049962321.tif進行歸一化指數法處理的結果
 3 /// </summary>
 4 public void WaterStatics()
 5 {
 6     PIE.CommonAlgo.WaterDepthInfo info = new WaterDepthInfo();
 7     info.pszInDEMFile = @"D:\MapData\Raster\水體提取數據\WR_20171219_A0303_636493863981864520\dem\洞庭湖.tif";//Dem文件路徑
 8     info.pszShpFile = @"D:\MapData\Raster\水體提取數據\temp\autoMagic.shp";//水體矢量文件
 9     info.dWaterHeight = 25;//水位
10     info.pszOutFile = @"D:\MapData\Raster\水體提取數據\temp\waterDepth.tif";//輸出文件路徑
11          
12     PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.WaterStatisticsAlgo");
13     if (algo == null) return;
14           
15     algo.Name = "水深提取";
16     algo.Params = info;
17 
18     bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
19     if (result)
20     {
21         MessageBox.Show("水深提取算法執行成功");
22         ILayer layer = LayerFactory.CreateDefaultLayer(info.pszOutFile);
23         if (layer == null) return;
24         m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
25         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
26     }
27 }
View Code

2.4 示例截圖

相關文章
相關標籤/搜索