/// <summary>
/// 根据栅格图层获取栅格数据集
/// </summary>
/// <param name="pRasterLayer"></param>
/// <returns></returns>
static public IRasterDataset GetRasterDatasetFromRasterLayer(IRasterLayer pRasterLayer)
{
// 获取栅格路径
string pFilePath = pRasterLayer.FilePath;
// 获取栅格工厂
IWorkspaceFactory pFactory = new RasterWorkspaceFactoryClass();
// 获取路径
string pDir = System.IO.Path.GetDirectoryName(pFilePath);
// 工作空间
IWorkspace pSpace = pFactory.OpenFromFile(pDir, 0);
// QI 至 IRasterWorkspace
IRasterWorkspace pRasterSpace = pSpace as IRasterWorkspace;
// 获取文件名
string name = System.IO.Path.GetFileName(pFilePath);
IRasterDataset pDataset = pRasterSpace.OpenRasterDataset(name);
return pDataset;
}
/// <summary>
/// 创建栅格属性表
/// </summary>
/// <param name="pRasterLayer"></param>
static public void BuildRasterAttributeTable(IRasterLayer pRasterLayer)
{
// 获取栅格数据集
IRasterDataset pDataSet = GetRasterDatasetFromRasterLayer(pRasterLayer);
// QI IRasterDatasetEdit2 创建栅格属性表
IRasterDatasetEdit2 pDataSetEdit = pDataSet as IRasterDatasetEdit2;
pDataSetEdit.BuildAttributeTable();
}
2、在Data Management Tools(数据管理工具)->Raster(栅格)->Raster Properties(栅格属性)中选择Build Raster Attribute Table(创建栅格属性表)选中栅格数据,即可创建栅格属性表。
如何为栅格数据创建属性表_YHxiaohao的博客-优快云博客_浮点型栅格数据怎么创建属性表
static void BuildRasterAttributeTable(IRasterDataset rasterDataset, ITable table)
{
//Cast to IRasterDatasetEdit2 to build a raster attribute table.
IRasterDatasetEdit2 rasterDatasetEdit = (IRasterDatasetEdit2)rasterDataset;
//Build a default raster attribute table with VALUE and COUNT fields.
if (table == null)
{
rasterDatasetEdit.BuildAttributeTable();
}
else
{
//Assign the given table as the raster attribute table.
rasterDatasetEdit.AlterAttributeTable(table);
}
}