栅格

 //Create a raster from the dataset.
                IRaster raster = rasterDataset.CreateFullRaster();

                //Create a pixel block using the weight and height of the raster dataset. 
                //If the raster dataset is large, a smaller pixel block should be used.
                //Refer to the topic "How to access pixel data using a raster cursor".
                IPnt blocksize = new PntClass();
                blocksize.SetCoords(width, height);
                IPixelBlock3 pixelblock = raster.CreatePixelBlock(blocksize) as IPixelBlock3;

                //Populate some pixel values to the pixel block.
                System.Array pixels;
                pixels = (System.Array)pixelblock.get_PixelData(0);

                m_pSeismicIntensityModel.SetPixelBlock(EQCenter.X, EQCenter.Y, magnitude, EQSrcDepth, pLowerLeft.X, pLowerLeft.Y, width, height, xCell, yCell, ref pixels);
         

                pixelblock.set_PixelData(0, (System.Array)pixels);

                //Define the location that the upper left corner of the pixel block is to write.
                IPnt upperLeft = new PntClass();
                upperLeft.SetCoords(0, 0);

                //Write the pixel block.
                IRasterEdit rasterEdit = (IRasterEdit)raster;
                rasterEdit.Write(upperLeft, (IPixelBlock)pixelblock);
                rasterEdit.Refresh();
                GC.Collect();
                //Release rasterEdit explicitly.
                System.Runtime.InteropServices.Marshal.ReleaseComObject(rasterEdit);

 

posted @ 2013-08-16 01:49  JackGIS  阅读(470)  评论(0)    收藏  举报