AE创建栅格数据集
时间: 2023-11-19 21:14:04 浏览: 131
在 ArcEngine 中创建栅格数据集需要使用 RasterWorkspaceFactory 和 IRasterWorkspaceEx 接口,可以通过以下代码实现:
```csharp
// 获取工作空间工厂
Type factoryType = Type.GetTypeFromProgID("esriDataSourcesRaster.RasterWorkspaceFactory");
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
// 创建工作空间
string folderPath = @"C:\Data\RasterData"; // 栅格数据所在目录
IWorkspaceName workspaceName = workspaceFactory.Create(folderPath, "MyRasterWorkspace", null, 0);
IName name = (IName)workspaceName;
IWorkspace workspace = (IWorkspace)name.Open();
// 将工作空间转换为 RasterWorkspaceEx
IRasterWorkspaceEx rasterWorkspace = (IRasterWorkspaceEx)workspace;
// 设置栅格数据集参数
object[] rasterDatasetNames = new object[] { "test.tif" }; // 栅格数据集名称
object[] rasterBandCounts = new object[] { 3 }; // 栅格数据集波段数
object[] pixelTypes = new object[] { rstPixelType.PT_UCHAR, rstPixelType.PT_UCHAR, rstPixelType.PT_UCHAR }; // 栅格数据集像素类型
object[] ncCols = new object[] { 100 }; // 栅格数据集列数
object[] ncRows = new object[] { 100 }; // 栅格数据集行数
object[] ncCellsizex = new object[] { 0.01 }; // 栅格数据集 X 方向单元大小
object[] ncCellsizey = new object[] { 0.01 }; // 栅格数据集 Y 方向单元大小
object[] ncOriginx = new object[] { 0 }; // 栅格数据集 X 方向起点坐标
object[] ncOriginy = new object[] { 0 }; // 栅格数据集 Y 方向起点坐标
// 创建栅格数据集
IRasterDataset rasterDataset = rasterWorkspace.CreateRasterDataset("test.tif", "GRID", rasterDatasetNames, rasterBandCounts, pixelTypes, ncCols, ncRows, ncCellsizex, ncCellsizey, ncOriginx, ncOriginy, 0);
```
上述代码中,需要将栅格数据集的名称赋值给 rasterDatasetNames 变量,将栅格数据集的波段数赋值给 rasterBandCounts 变量,将栅格数据集中每个波段的像素类型赋值给 pixelTypes 变量,将栅格数据集的列数赋值给 ncCols 变量,将栅格数据集的行数赋值给 ncRows 变量,将栅格数据集 X 方向单元大小赋值给 ncCellsizex 变量,将栅格数据集 Y 方向单元大小赋值给 ncCellsizey 变量,将栅格数据集 X 方向起点坐标赋值给 ncOriginx 变量,将栅格数据集 Y 方向起点坐标赋值给 ncOriginy 变量,并且需要添加对 esriDataSourcesRaster 库的引用。执行完毕后,可以得到一个 IRasterDataset 对象,即创建成功。
阅读全文