得到Raster的一些基本信息(高程值,列数,列数)
得到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)來獲得每一個柵格的高程值
轉載于:https://www.cnblogs.com/kisstome88/archive/2009/04/05/1429812.html
總結
以上是生活随笔為你收集整理的得到Raster的一些基本信息(高程值,列数,列数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript 学习之 数组式的对
- 下一篇: oracle性能调整的九大要点:四诊断l