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博文,博主很強大,在次拜謝
相關文章
- C#+Arcengine獲得點集合C#
- 獲得類的屬性
- C#+Arcengine實現GP工具中的extract by mask(提取掩膜),可以實現提取shp範圍的柵格資料,可用來獲得shp範圍的高程C#
- C#+Arcengine實現GP工具中Data Management Tool》raster》raster processing中的clip功能(向量資料對柵格資料的裁剪)C#AST
- GeoServer釋出PostGIS資料庫中的柵格資料Server資料庫
- ms sql 獲取表欄位的屬性SQL
- Python arcpy建立柵格、批次拼接柵格Python
- [原創]如何獲得SBO的資料表中文描述和資料表的中文欄位
- 如何在TypeScript程式碼裡獲得HTML元素的css屬性TypeScriptHTMLCSS
- jQuery利用name屬性獲取表單元素jQuery
- PostgreSQLraster(柵格資料)st_value優化舉例SQLAST優化
- 對Oracle效能資料的獲得。Oracle
- 柵格影象的處理
- 獲取影像的屬性
- 表的itl 屬性
- Java常見的系統屬性值及如何通過Java程式設計獲得系統屬性值Java程式設計
- js如何獲取給定屬性的屬性值JS
- 計算表資料真實行長度獲得表真實大小
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫
- bs --- 柵格系統
- opencv 獲取影像的屬性OpenCV
- JavaScript 通過 type 屬性值獲取表單元素JavaScript
- 2.5.4 為 SYSAUX 表空間指定資料檔案屬性UX
- javascript獲取物件直接量中的屬性和屬性值JavaScript物件
- C# 隨機給一個全部資訊都未知的類型別,如何獲取該類的類名、屬性個數、屬性名、屬性的資料型別、屬性值?C#隨機資料型別
- ABAP 從檢視獲得資料
- 深入理解物件的資料屬性與訪問器屬性物件
- bootstrap解析-柵格系統boot
- js如何獲取樣式表中定義的css屬性值JSCSS
- python 獲取類的屬性Python
- PostgreSQL:表的儲存屬性SQL
- Python的tkinter獲取元件屬性和設定元件屬性Python元件
- 如何區分大資料的屬性大資料
- 機票大資料價格預測應用Hopper獲得1600萬美元投資大資料
- 2020年在美國獲得專利最多的公司(附原資料表)
- 表屬性設定
- oracle利用索引關聯獲得資料的方法Oracle索引