得到Raster的一些基本信息(高程值,列数,列数)
2009-04-05 14:26
309 查看
得到Raster的一些基本信息(高程值,列数,列数)
IRasterLayer pRasterLayer = (IRasterLayer)pSC1.Scene.get_Layer(0);
IRaster pRaster = pRasterLayer.Raster;
int pRowCount = pRasterLayer.RowCount;
IRasterBandCollection pRasterbandCollection = (IRasterBandCollection)pRaster;
IRasterBand pRasterBand = pRasterbandCollection.Item(0);
IRawPixels pRawPixels = (IRawPixels)pRasterBand;
IRasterProps pRProps = (IRasterProps)pRawPixels;
IRasterAnalysisProps pRasterAP = (IRasterAnalysisProps)pRaster;
//获得DEM左上角的坐标
IGeoDataset pGeoDataset = (IGeoDataset)pRaster;
IEnvelope2 pEnv2 = new EnvelopeClass();
pEnv2 = (IEnvelope2)pGeoDataset.Extent;
IPoint pPoint = pEnv2.UpperLeft;
//用经纬度表示的DEM源点X坐标
double pOriginX = pPoint.X; //DEM源点X坐标(左上角点)
double pOriginY = pPoint.Y; //DEM源点Y坐标
//MessageBox.Show(Convert.ToString(pOriginX)+" "+Convert .ToString (pOriginY ));
IRasterStatistics pRasterStatics = pRasterBand.Statistics;
double m_MaxHeight = pRasterStatics.Maximum; //DEM最大的高程值
double pBlockX = (double)pRProps.MeanCellSize().X; //网格的X间距
double pBlockY = (double)pRProps.MeanCellSize().Y; //网格的Y间距
double pBlockArea = pBlockX * pBlockY; //网格的面积
int pColumns = pRProps.Width; //DEM列数
int pRows = pRProps.Height; //DEM行数
IPnt pBlockSize = new DblPntClass();
pBlockSize.X = pColumns;
pBlockSize.Y = pRows;
IPixelBlock3 pPixelBlock = (IPixelBlock3)pRawPixels.CreatePixelBlock(pBlockSize);
IPnt pBlockOrigin = new DblPntClass();
pBlockOrigin.X = 0;
pBlockOrigin.Y = 0;
pRawPixels.Read(pBlockOrigin, (IPixelBlock)pPixelBlock);
double pHeight = pPixelBlock.Width;
//存储格网DEM的二维数组
System.Array pPixelData = (System.Array)pPixelBlock.get_PixelDataByRef(0);
用pPixelData.GetValue(j, k)来获得每一个栅格的高程值
IRasterLayer pRasterLayer = (IRasterLayer)pSC1.Scene.get_Layer(0);
IRaster pRaster = pRasterLayer.Raster;
int pRowCount = pRasterLayer.RowCount;
IRasterBandCollection pRasterbandCollection = (IRasterBandCollection)pRaster;
IRasterBand pRasterBand = pRasterbandCollection.Item(0);
IRawPixels pRawPixels = (IRawPixels)pRasterBand;
IRasterProps pRProps = (IRasterProps)pRawPixels;
IRasterAnalysisProps pRasterAP = (IRasterAnalysisProps)pRaster;
//获得DEM左上角的坐标
IGeoDataset pGeoDataset = (IGeoDataset)pRaster;
IEnvelope2 pEnv2 = new EnvelopeClass();
pEnv2 = (IEnvelope2)pGeoDataset.Extent;
IPoint pPoint = pEnv2.UpperLeft;
//用经纬度表示的DEM源点X坐标
double pOriginX = pPoint.X; //DEM源点X坐标(左上角点)
double pOriginY = pPoint.Y; //DEM源点Y坐标
//MessageBox.Show(Convert.ToString(pOriginX)+" "+Convert .ToString (pOriginY ));
IRasterStatistics pRasterStatics = pRasterBand.Statistics;
double m_MaxHeight = pRasterStatics.Maximum; //DEM最大的高程值
double pBlockX = (double)pRProps.MeanCellSize().X; //网格的X间距
double pBlockY = (double)pRProps.MeanCellSize().Y; //网格的Y间距
double pBlockArea = pBlockX * pBlockY; //网格的面积
int pColumns = pRProps.Width; //DEM列数
int pRows = pRProps.Height; //DEM行数
IPnt pBlockSize = new DblPntClass();
pBlockSize.X = pColumns;
pBlockSize.Y = pRows;
IPixelBlock3 pPixelBlock = (IPixelBlock3)pRawPixels.CreatePixelBlock(pBlockSize);
IPnt pBlockOrigin = new DblPntClass();
pBlockOrigin.X = 0;
pBlockOrigin.Y = 0;
pRawPixels.Read(pBlockOrigin, (IPixelBlock)pPixelBlock);
double pHeight = pPixelBlock.Width;
//存储格网DEM的二维数组
System.Array pPixelData = (System.Array)pPixelBlock.get_PixelDataByRef(0);
用pPixelData.GetValue(j, k)来获得每一个栅格的高程值
相关文章推荐
- 得到系统的一些基本信息的类
- C#得到一些本机的基本信息
- 得到ios设备的一些信息
- 通过request对象得到基本的信息
- asp.net得到本地电脑基本信息的简单方法
- 通过ManagementClass 获得显卡的一些基本信息(Win32_VideoController )
- 发布一个web service,可以通过ISBN获得图书的一些基本信息!
- 通过ManagementClass 获得显卡的一些基本信息(Win32_VideoController )
- Apache服务器默认配置的一些基本信息
- Unity3d中Shader的一些关于矩阵变换的基本信息
- 通过ManagementClass 获得显卡的一些基本信息(Win32_VideoController )
- 查看主机的一些基本信息
- 获取数据库表的一些基本信息
- Android 获取手机的一些基本信息
- Html的一些基本信息
- 通过JAVA代码获取手机的一些基本信息(本机号码,SDK版本,系统版本,手机型号)
- 在.NET中得到计算机硬件信息的一些功能
- 获取未安装APK的一些基本信息
- SqlServer 查询出列的一些基本信息,表名,列名,数据类型,备注说明,最大宽度,递增,是否为空,是否主键
- 得到本计算机的一些信息