C#+arcengine获得栅格数据的像素值(高程)

摘要:
此文问获得栅格数据的像元值(即高程),有可能部分见解不到位,望大神看到了不惜指教!

此文问获得栅格数据的像元值(即高程),有可能部分见解不到位,望大神看到了不惜指教!

/// <summary>

/// 得到高程(通过像素值)
/// </summary>
/// <param name="maskTifPath">Raster路径</param>
private List<int> GetElevation(string maskTifPath, List<IPoint> pointColList)//pointcollist是点集合,可以参照博文获得点集合

{

IRaster raster = GetRaster(maskTifPath);//参见博文获得raster数据
//得到一段光栅带
IRasterBandCollection rasterBandCollection = (IRasterBandCollection)raster;
for (int icount = 0; icount < rasterBandCollection.Count; icount++)//测试数据count为1
{
IRasterBand rasterBand = rasterBandCollection.Item(icount);
//像素
IRawPixels rawPixels = (IRawPixels)rasterBand;
IRasterProps rasterProps = (IRasterProps)rawPixels;
//IGeoDataset geodataset = (IGeoDataset)raster;
//IEnvelope2 envelop = new EnvelopeClass();
//envelop = (IEnvelope2)geodataset.Extent;
//IPoint point = envelop.UpperLeft;
// 像元大致范围
//double blockX = (double)rasterProps.MeanCellSize().X;//网格X间距
//double blockY = (double)rasterProps.MeanCellSize().Y;//网格Y间距
//double blockArea = blockX * blockY;//网格面积
//int columns = rasterProps.Width;//dem列数
//int rows = rasterProps.Height;//dem行数
// 指定像素块大小
IPnt blockSize = new DblPnt();
//blockSize.X = columns;
//blockSize.Y = rows;
blockSize.X = 5;//赋值为多少比较合适?
blockSize.Y = 5;
//blockSize.X = blockX;
//blockSize.Y = blockY;
//指定像素块大小来创建像素快
IPixelBlock3 pixelBlock = (IPixelBlock3)rawPixels.CreatePixelBlock(blockSize);
IPnt blockOrigin = new DblPnt();
IPoint point = new PointClass();
List<int> pixels = new List<int>();
for (int j = 0; j < pointColList.Count; j++)
{
point = pointColList[j];
blockOrigin.X = point.X;
blockOrigin.Y = point.Y;
// 读取指定位置的像素块(blockOrigin为指定位置)
rawPixels.Read(blockOrigin, (IPixelBlock)pixelBlock);
//存储格网dem的二维数组
System.Array pixelData = (System.Array)pixelBlock.get_PixelDataByRef(icount);
// 获得每一个栅格的高程值
for (int col = 0; col < pixelData.GetLength(0); col++)
{
for (int row = 0; row < pixelData.GetLength(1); row++)
{
pixels.Add(Convert.ToInt32(pixelData.GetValue(col, row)));
}
}
return pixels;
}

}

}

本博文参照http://www.docin.com/p-607056135.html,感谢!

免责声明:文章转载自《C#+arcengine获得栅格数据的像素值(高程)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Springboot 解析 json 并返回+ Jsoup介绍及解析常用方法asp.net core 集成JWT(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[html]浏览器标签小图标LOGO简单设置

方式一:如果是一个项目一个LOGO 的话,直接接把图片像素设置成16x16像素,然后改名favicon.ico放在项目根部目录就可以,自动识别的! 方式二:简单设置! 首先找一个图片把像素设置成16x16像素, 然后把图片名字改成favicon.ICO, 最后在你的html页面上标签<head></head>种加上这么一句 (好像浏...

字体单位大小对照换算表(字号、磅、英寸、像素)

字号“数值”越大,字就越小。   中文字号 英文字号(磅) 毫米 像素 1英寸 72pt 25.30mm 95.6px  大特号 63pt 22.14mm 83.7px 特号 54pt 18.97mm 71.7px  初号 42pt 14.82mm 56px 小初 36pt 12.70mm 48px 一号 26pt 9.17mm...

有关Canvas的一点小事—canvas数据和像素点

1、  canvas生成base64数据 canvas.toDataURL()生成的数据可以直接给image对象使用作为<img>显示在前端,也可以传给后台生成图片保存。前端生成保存图片的好像也有,但是比较麻烦,而且不兼容。我记得zip.js就可以在前端打包图片生成压缩包,不过我现在用不到,哪天想到了再整理整理。                ...

iOS适配机型常用宏以及机型尺寸备注

关于物理和逻辑分辨率再整理一下,虽然并不关心太多的硬件原理,但是还是留个地方方便查阅吧。 1、代码 #pragma mark - 判断机型 /* 设备是否为iPhone4、iPhone4S (1)逻辑分辨率(point):320x480 (2)物理分辨率(pixel,像素):640x1136 (3)缩放因子 :@2x (4)PPI(像素密度):...

PIE-SDK For C++打开自定义栅格数据

1、数据介绍    信息提取和解译的过程中,经常会生成一部分中间临时栅格数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存栅格数据集,来协助用户完成对自定义栅格数据的读取和显示。下面以一副影像数据的抠图算法来演示自定义栅格数据的应用。 2、实现思路及原理说明 第一步 打开原始栅格数据; 第二步 读取部分数据...

高清屏概念解析与检测设备像素比的方法

前言 做移动端h5开发很久了,从开始入行到现在。很多知识和工具都是在用前辈留下的遗产,都没有深入的研究过原因,了解为什么要这么去做。 也许自己也是过了交给自己做什么就做什么的阶段了。在国庆节有一个大块的时间,把最近看到的知识总结一下,也算是对这方面的知识划上一个句号。想想着实把国庆节过成了劳动节,没办法,自己就是这样的一个人,“应该去做的,而且有能力做的...