C AE分割槽統計像元數量

2021-09-26 22:53:07 字數 1551 閱讀 7336

因為近期需要進行對某一區域內進行像元數量的統計,而arcgis內建的分割槽統計功能輸出的又是乙個柵格資料感覺不是我想要的,所以就自己編了這樣乙個小功能。話不多說,開始進入正題。

按照老習慣,每次要編**之前先梳理一下思路:

1、獲取柵格資料和向量資料(柵格資料是要統計的物件,向量資料是統計的區域)

2、獲取向量資料中要素的包絡範圍(ienvelope)並以此建立畫素塊(ipixelblock)用來儲存包絡範圍內柵格資料的像元值

3、遍歷向量資料中的要素根據判斷條件來統計像元個數

4、顯示輸出結果

1、定義全域性變數

long pixcount = 0;   //記錄像元的個數

double xmin, ymin, xmax, ymax; //記錄地理座標範圍

int rowmin, columnmin, rowmax, columnmax; //記錄像元座標範圍

double geox, geoy; //地理座標

int red,green,blue;

2、獲取輸入資料

//獲取柵格圖層

irasterlayer rasterlayer = getlayer(combobox1_staticfile.text) as irasterlayer;

iraster raster = rasterlayer.raster;

iraster2 raster2 = raster as iraster2;//建立柵格資料

//獲取向量圖層

ifeaturelayer featurelayer = getlayer(combobox2_staticzone.text) as ifeaturelayer;

ifeaturecursor cursor = featurelayer.search(null, false); //向量游標

ifeature feature = cursor.nextfeature();

ipoint point = new pointclass();

3、遍歷向量資料中的要素,並統計各個要素內滿足條件的像元個數

while (feature != null)}}

messagebox.show("像元個數:" + pixcount.tostring());

小結:既然經歷了這個過程,就要總結一下在這中間所遇到的問題,要不然就白痛苦了哈哈。

1、ipixelblock的建立是通過柵格資料的createpixelblock函式來建立的,畫素塊的尺寸通過ipnt來確定

2、在將資料讀取到畫素塊中起始的座標也是通過ipnt來確定

3、判斷點線面的關係可以使用irelationaloperator介面

分區間統計

x 30,3060 declare t table id int primary key,col decimal 10,2 insert into t select 1,26 union all select 2,88 union all select 3,4 union all select 4,...

arcgis處理向量對向量的分割槽統計

一 解決的問題 一 對向量資料的任意欄位的分割槽統計 計算和 均值 最小值 二 實現對向量資料的類別欄位的分割槽統計,統計每個分割槽中各個類別的個數 注 arcgis desktop通過zonal 工具提供向量 或柵格 對柵格資料的分割槽統計功能 tools spatial analyst tool...

arcgis中分割槽統計中常見的錯誤

在arcgis分割槽統計中,會出現什麼不存在表名99999錯誤問題。有幾點注意事項 1.區域字段優先選擇fid 2.輸入賦值柵格的型別其實無論是整型或者小數柵格都可以的,與這個無關 3.如果分割槽統計不以 顯示的話,則命名沒有要求。如果以 顯示再連線到shp中的話,注意表名一定不要以數字開頭,以數字...