PIE SDK反距離權重插值算法

 

1.算法功能簡介

    反距離權重 (IDW) 插值使用一組採樣點的線性權重組合來肯定像元值。權重是一種反距離函數。進行插值處理的表面應當是具備局部因變量的表面。此方法假定所映射的變量因受到與其採樣位置間的距離的影響而減少。例如,爲分析零售網點而對購電消費者的表面進行插值處理時,在較遠位置購電影響較小,這是由於人們更傾向於在家附近購物。算法

    根據給定的控制點對和控制點的位移矢量(方向和距離),實現圖像每個像素點的位移。反距離加權插值的方法是經過獲得每個像素點和選定控制點對的逼近關係,以及相對應的權重關係,求得像素點相對應的變化關係,逼近函數能夠理解爲對像素點p的影響程度,而權重函數則能夠當作是對距離的權重,距離越遠,權重越小。ide

 

    PIE支持算法功能的執行,下面對反距離權重算法功能進行介紹。函數

2.算法功能實現說明

2.1. 實現步驟

第一步工具

算法參數設置測試

第二步spa

算法執行code

第三步視頻

結果顯示blog

2.2. 算法參數

C#算法DLL教程

PIE.CommonAlgo.dll

C#算法名稱

PIE.CommonAlgo. InverseDistanceInterpolationAlgo

參數結構體

InverseDistanceInterpolationInfo_Exchange_Info

參數說明

m_dCellSize

double

像元大小

m_nHeight

int

輸出柵格高度

m_nWidth

int

輸出柵格寬度

m_pInputFeatDs

IFeatureDataset

輸入要素數據集

m_pOutputRasterDs

IRasterDataset

輸出柵格數據集

m_sOutRasterFilePath

string

輸出柵格路徑

m_sOutRasterType

string

輸出柵格類型

m_ZFieldIndex

int

選擇字段索引

2.3. 示例代碼

數據路徑

百度雲盤地址下/PIE示例數據/矢量數據/Shape/省會城市.shp

視頻路徑

百度雲盤地址下/PIE視頻教程/10.算法調用/實用工具/反距離權重算.avi

示例代碼

 1          /// <summary>
 2         /// 反距離權重測試
 3         /// </summary>
 4         private void Test_InverseDistanceInterpolation()
 5         {
 6             #region 1參數設置
 7             string filePath = @"D:\\data\\China\\省會城市.shp";
 8             IFeatureDataset fDataset = DatasetFactory.OpenDataset(filePath, OpenMode.ReadOnly) as IFeatureDataset;
 9             PIE.CommonAlgo.InverseDistanceInterpolationInfo_Exchange_Info info = new InverseDistanceInterpolationInfo_Exchange_Info();
10             info.m_pInputFeatDs = fDataset;
11             info.m_sOutRasterType = "GTIFF";
12             info.m_sOutRasterFilePath = @"D:\\temp\\省會城市反距離權重測試.tiff";
13             info.m_ZFieldIndex = 1;
14             info.m_nWidth = 100;
15             info.m_dCellSize = fDataset.GetExtent().GetWidth() / info.m_nWidth;
16             info.m_dSearchMaxDis = 10;
17             info.m_nSearchPoints = 12;
18             #endregion
19             //二、算法執行
20             PIE.CommonAlgo.InverseDistanceInterpolationAlgo algo = new InverseDistanceInterpolationAlgo();
21             algo.Params = info;
22             algo.Execute();
23             //三、結果顯示
24             ILayer layer = LayerFactory.CreateDefaultLayer(info.m_sOutRasterFilePath);
25             if (layer == null)
26             {
27                 MessageBox.Show("執行失敗");
28                 return;
29             }
30             m_HookHelper.FocusMap.AddLayer(layer);
31             m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
32             (fDataset as IDisposable).Dispose();
33             fDataset = null;
34         }
View Code

 

2.4. 示例截圖

 

相關文章
相關標籤/搜索