在arcgis解决栅格数据行列数不一致的方法

本方法是基于栅格像元大小一致的情况下进行

部分软件在分析比对栅格时要求栅格的行列数一致,如果遇到行列数不一致的问题,请参考以下处理方法:

这里要用到的是arcgis工具运行环境中的捕捉栅格设置

首先选择一个栅格文件作为捕捉栅格对象,将其它栅格文件通过工具处理(投影、掩膜提取等等)与之进行栅格像元对齐处理,所有栅格像元对齐之后,用行列数最小的栅格分别掩膜提取其它栅格,即可得到行列数一致的栅格文件。

要是想完美的契合栅格数据行列数乃至像元个数,则需要将所有栅格像元对齐之后求取所有栅格的公共部分,然后再用该数据掩膜处理所有栅格文件,即可得到行列数、像元个数一致的栅格文件。

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
在 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 对象,即创建成功。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑞瑞大大

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值