AE開發實現GP工具IDW

2022-04-23 17:13:49 字數 2804 閱讀 6000

idw——

空間插值

idw(inverse distance weighted)

是一種常用而簡便的空間插值方法,它以插值點與樣本點間的距離為權重進行加權平均,離插值點越近的樣本點賦予的權重越大。 設平面上分布一系列離散點,已知其座標和值為xi,

yi, zi 

(i =1,2

,…,n)通過距離加權值求z 點值,則z

值見右上圖公式。  

idw通過對鄰近區域的每個取樣點值平均運算獲得內插單元。這一方法要求離散點均勻分布,並且密度程度足以滿足在分析中反映區域性表面變化。  idw在arcgis

裡具體實現過程:  

1)單擊

spatial analyst 

下拉箭頭,單擊

interpolate to raster,

在一級選單中單擊inverse distance weighted

命令,開啟idw對話方塊。  2

)單擊input points

下拉箭頭,選擇參加內插計算的點資料集。  

3)單擊

z value field

下拉箭頭

, 選擇參加內插計算的欄位名稱。  4)在

power

文字框中輸入的idw冪值。  5

)單擊search radius type

下拉箭頭,選擇搜尋半徑型別。  6)用

use barriers polylines

選擇河流、湖泊、水庫等中斷線檔案,限制插值計算。  7)用

output cell size

控制輸出結果的柵格大小。  8)用

output raster

文字框輸入結果檔名稱。

不直接呼叫gp

irasterlayer rl = new

rasterlayerclass();

double cellsize = 0.001; ///

/設定越小效率越低

igeodataset fdataset = pfeaclsshp as igeodataset; ///

/idw的範圍圖層,圖層圖形外面的不處理

idistanceop2 distance = new

rasterdistanceopclass();

iinterpolationop pinterpolationop = new

rasterinterpolationopclass();

irasteranalysisenvironment envir = pinterpolationop as

irasteranalysisenvironment;

object extent = (object

)fdataset.extent;

object missing =system.reflection.missing.value;

envir.setextent(esrirasterenvsettingenum.esrirasterenvvalue,

ref extent, ref

missing);

object cell =(system.object)cellsize;

envir.setcellsize(esrirasterenvsettingenum.esrirasterenvvalue,

refcell);

envir.mask =fdataset;

object barrier =system.reflection.missing.value;

ifeatureclassdescriptor pfcdescriptor;

pfcdescriptor = new

featureclassdescriptorclass();

pfcdescriptor.create(feacls,

null, "

z"); ///

/feacls是點圖層,z是點圖層的z欄位

igeodataset rasdataset = pinterpolationop.idw(pfcdescriptor as igeodataset, 2, pradius, ref

barrier);

rl.createfromraster(rasdataset

as iraster);

呼叫gp:

發現呼叫gp

時無法實現按照指定的圖形形狀裁剪,並且需要設定乙個臨時路徑,此路徑不能已存在,否則不處理,所以不推薦。

irasterlayer rl = new

rasterlayerclass();

\\idw";

esri.arcgis.geoprocessor.geoprocessor gp = new

esri.arcgis.geoprocessor.geoprocessor();

esri.arcgis.spatialanalysttools.idw pidw = new esri.arcgis.spatialanalysttools.idw(pfealyr, "z"

, idwpath);

pidw.in_barrier_polyline_features =pfealyrshp;

pidw.power = 2

;

pidw.cell_size =cellsize;

igeoprocessorresult results = (igeoprocessorresult)gp.execute(pidw, null);

rl.createfromfilepath(idwpath);

AE呼叫GP工具的方法

ae呼叫gp工具的方法 第一,首先要明確自己需要呼叫arctoolbox裡面的什麼工具,實現什麼樣的功能。第二,按照需求看看在arctoolbox工具中是怎麼實現功能的,然後確定需要的資料來源。第三,編寫command或tool工具,編寫自己要的功能工具。第四,以自己編寫的乙個簡單的克里金插值為例來...

GP工具實現柵格相加

gp工具通過呼叫arctoolbox中的工具,簡化了程式設計工作,方便呼叫arcgis強大的空間分析功能。使用gp工具實現柵格相加的步驟主要包括 1 定義和初始化gp工具 geoprocessor gp new geoprocessor gp.overwriteoutput true 2 定義柵格計...

Silverlight呼叫GP工具實現緩衝分析

目的 在地圖上點選乙個點生成乙個緩衝區。1 製作gp工具 gp工具製作按照來做。2 發布gp工具 3 分析gp服務 將發布的gp服務位址在瀏覽器中輸入 http wade pc arcgis rest services bufferservice gpserver buffer 20points 4...