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呼叫gp: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
時無法實現按照指定的圖形形狀裁剪,並且需要設定乙個臨時路徑,此路徑不能已存在,否則不處理,所以不推薦。
irasterlayer rl = newrasterlayerclass();
\\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...