C#+arcengine獲得柵格資料的屬性表
此文為或的柵格資料的屬性表的功能,在此,我的屬性表中有count和value欄位,其中value是柵格資料的高程值,count是value在影像中出現的次數,此程式的功能為得到count最大的數,以此來獲得對應的value即此柵格影像的高程值的眾數,如下:
/// <summary>
/// 獲得屬性表/// </summary>
/// <param name="maskTifPath">raster的路徑</param>
private int GetAttributeTable(string maskPath)
{
int elevation=0;//高程
//得到raster(見另外的博文獲得柵格資料)
IRaster raster=GetRaster(maskPath);
if (raster != null)
{
try
{
//得到一段光柵帶
IRasterBandCollection rasterBandCollection = (IRasterBandCollection)raster;
int bandCount = rasterBandCollection.Count;//bandCount=1
for (int j = 0; j < bandCount; j++)
{
IRasterBand rasterBand = rasterBandCollection.Item(j);
//得到此光柵帶的屬性表,並儲存到table
ITable table = rasterBand.AttributeTable;
//建立一個查詢(SQL語句)
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "";
//用queryFilter查詢表,並把結果儲存到遊標指標中去
ICursor cursorCount = table.Search(queryFilter, false);
IRow rowCount = cursorCount.NextRow();
// count欄位集合
List<int> countCol = new List<int>();
int MaxValue = 0;
for (int i = 0; i < table.Fields.FieldCount; i++)//field.count=4
{
//判斷欄位名稱是否為count
if (table.Fields.get_Field(i).Name == "Count")
{
while (rowCount != null)
{
//以下顯示Count欄位的值,並得到count值的集合
countCol.Add(Convert.ToInt32(rowCount.get_Value(table.FindField("Count"))));
rowCount = cursorCount.NextRow();
}
int count = countCol.Count;
//得到欄位Count的最大值
MaxValue = countCol[0];
for (int w = 1; w < count; w++)
{
if (countCol[w] > MaxValue)
{
MaxValue = countCol[w];
}
}
//得到Count最大時value的值,即為高程的眾數
ICursor cursorBinvalues = table.Search(queryFilter, false);
IRow rowBinvalues = cursorBinvalues.NextRow();
while (rowBinvalues != null)
{
int value = Convert.ToInt32(rowBinvalues.get_Value(table.FindField("Count")));
if (value == MaxValue)
{
elevation = Convert.ToInt32(rowBinvalues.get_Value(table.FindField("Value")));
}
rowBinvalues = cursorBinvalues.NextRow();
}
}
else
{
//欄位名稱不是count,無用,往下判斷
}
}
}
return elevation;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return 0;
}
}
else
{
MessageBox.Show("提取柵格資料失敗!");
return 0;
}
}
本文參照了http://blog.csdn.net/gisoracle/article/details/4297650博文,博主很強大,在次拜謝
相關文章
- GeoServer釋出PostGIS資料庫中的柵格資料Server資料庫
- Python 柵格資料處理教程(二)Python
- Python 柵格資料處理教程(一)Python
- 如何在TypeScript程式碼裡獲得HTML元素的css屬性TypeScriptHTMLCSS
- ENVI無縫鑲嵌、拼接柵格資料的方法
- Python arcpy建立柵格、批次拼接柵格Python
- 用Python計算柵格資料的真實面積Python
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫
- 獲取影像的屬性
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件
- Java常見的系統屬性值及如何通過Java程式設計獲得系統屬性值Java程式設計
- C# 隨機給一個全部資訊都未知的類型別,如何獲取該類的類名、屬性個數、屬性名、屬性的資料型別、屬性值?C#隨機資料型別
- 根據屬性字串獲取屬性值字串
- opencv 獲取影像的屬性OpenCV
- 如何獲取 C# 類中發生資料變化的屬性資訊C#
- Python的tkinter獲取元件屬性和設定元件屬性Python元件
- 2.5.4 為 SYSAUX 表空間指定資料檔案屬性UX
- 深入理解物件的資料屬性與訪問器屬性物件
- 將NC柵格表示時間維度的資料提取出來的方法
- PostgreSQL:表的儲存屬性SQL
- ABAP 從檢視獲得資料
- 如何區分大資料的屬性大資料
- GIS資料獲取:土地利用與土壤屬性、DEM、水體水系資料
- bs --- 柵格系統
- 表屬性設定
- css屬性與js中style物件的屬性對應表CSSJS物件
- 2020年在美國獲得專利最多的公司(附原資料表)
- JavaScript 獲取 checked 屬性值JavaScript
- 揭秘Java反射:如何輕鬆獲取類的屬性及父類屬性Java反射
- C#反射設定屬性值和獲取屬性值C#反射
- bootstrap解析-柵格系統boot
- AUTOCAD——永久關閉柵格
- Elasticsearch資料型別及其屬性Elasticsearch資料型別
- 自定義元件-資料、方法、屬性元件
- Oracle DG管理資料庫屬性Oracle資料庫
- 【譯】表單元件的屬性相容性表元件
- 獲得資料庫操作日誌的三種方式資料庫
- Jmeter 請求 websocket 獲得的響應資料不全JMeterWeb
- PHP獲取檔案基本屬性的方法PHP