C# VS2010 ArcEngine 获取栅格数据集像元值并以txt格式输出

1、思想

①获取栅格数据集。

IRasterLayer rstlyer = GetLayerByPath(RasterPath) as IRasterLayer;

②获取栅格数据集的行数和列数,并进行循环。

//获取当前栅格行数和列数
IRasterProps pRasterProps = (IRasterProps)(rst);
int row = pRasterProps.Height;//行数
int col = pRasterProps.Width; //列数

③读取每一个栅格的像元值(x,y),设定保留小数位数,去除null值,存入List<String>。

ret += Math.Round(Convert.ToDouble(rst2.GetPixelValue(0, i, j)), Num) + "" + ",";

SaveAll.Add(ret);

④将List转为TXT输出。

general.ListToTxt(SaveAll, outPath);

2、处理数据及结果查看

 3.代码展示

 ①完整代码

#region 获取栅格数据集各像元值并以txt格式输出
        /// <summary>
        /// 获取栅格数据集所有像元值并以txt格式输出
        /// </summary>
        /// <param name="RasterPath">操作栅格数据集路径</param>
        /// <param name="outPath">输出txt文件路径</param>
        /// <param name="Num">存储数据保留小数位数</param>
        public void GetRasterVal(string RasterPath, string outPath, int Num = 2)
        {
            IRasterLayer rstlyer = GetLayerByPath(RasterPath) as IRasterLayer;
            IRaster rst = rstlyer.Raster;
            IRaster2 rst2 = rst as IRaster2;
            //获取当前栅格行数和列数
            IRasterProps pRasterProps = (IRasterProps)(rst);
            int row = pRasterProps.Height;//行数
            int col = pRasterProps.Width; //列数
            //存储所有数据类型
            string ret = "";
            List<String> SaveAll = new List<string>();
            for (int i = 1; i <= row; i++)
            {
                for (int j = 1; j <= col; j++)
                {
                    if (rst2.GetPixelValue(0, i, j) != null)
                        ret += Math.Round(Convert.ToDouble(rst2.GetPixelValue(0, i, j)), Num) + "" + ",";
                }
                if (ret != "")
                {
                    SaveAll.Add(ret);
                    ret = "";
                }

            }
            general.ListToTxt(SaveAll, outPath);
        }
        #endregion

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HPUJQT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值