阅读:906回复:0
关于修改Grid形式DEM的高程值
<P>我现在想修改一个Grid的DEM各个格网的高程值。</P>
<P>我写了一段代码,但是我把它转化为ASCII文件的时候没有任何记录!</P> <P>请各位高手帮我看看这段代码?</P> <P>若代码不是这样写的,能不能给我个思路,非常感谢!</P> <P> Dim pRWS As IRasterWorkspace<BR> Dim pWSF As IWorkspaceFactory<BR> pWSF = New RasterWorkspaceFactory<BR> If Not pWSF.IsWorkspace("D:\Data\re\re") Then Exit Sub<BR> pRWS = pWSF.OpenFromFile("D:\Data\re\re", 0)<BR> Dim pRaster As IRaster<BR> pRaster = pRWS.OpenRasterDataset("tingrid").CreateDefaultRaster</P> <P> Dim pRasProps As IRasterProps<BR> pRasProps = pRaster</P> <P><BR> Dim pBand As IRasterBand<BR> Dim pBandCol As IRasterBandCollection<BR> pBandCol = pRaster<BR> pBand = pBandCol.Item(0)</P> <P><BR> Dim pRawPixel As IRawPixels<BR> pRawPixel = pBand</P> <P><BR> Dim pSize As IPnt<BR> pSize = New DblPnt<BR> pSize.SetCoords(pRasProps.Width, pRasProps.Height)</P> <P><BR> Dim pBlock As IPixelBlock<BR> pBlock = pRawPixel.CreatePixelBlock(pSize)</P> <P> Dim pSafeArray As Object<BR> pSafeArray = pBlock.SafeArray(0)</P> <P> Dim I, J As Integer<BR> For I = 0 To pSize.X - 1<BR> For J = 0 To pSize.Y - 1<BR> pSafeArray(I, J) = 10<BR> Next J<BR> Next I</P> <P><BR> Dim pPnt As IPnt<BR> pPnt = New DblPnt<BR> pPnt.SetCoords(0, 0)</P> <P> pRawPixel.Write(pPnt, pBlock)<BR> pRawPixel = Nothing<BR> pPnt = Nothing<BR> pSize = Nothing<BR> pBlock = Nothing<BR> pBand = Nothing<BR> pBandCol = Nothing</P> <P> pRaster = Nothing<BR> pRasProps = Nothing<BR> pRWS = Nothing<BR> pWSF = Nothing<BR> MsgBox("ok")</P> |
|