『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS Engine 10 开发手册(4-14)创建栅格数据集

ArcGIS Engine 10 开发手册(4-14)创建栅格数据集
在ArcGIS Engine中可以直接创建栅格数据集。这里做为示例,也封装了一个方法,代码如下:

     在ArcGIS Engine中可以直接创建栅格数据集。这里做为示例,也封装了一个方法,代码如下:

 

 

 

     创建栅格数据集代码

public IRasterDataset CreateRasterDataset (string pRasterFolderPath,string pFileName, string pRasterType, ISpatialReference pSpr)

{

  IRasterWorkspace2 pRasterWs = GetRasterWorkspace (pRasterFolderPath) as IRasterWorkspace2;

 

  IPoint pPoint = new PointClass ();

  pPoint.PutCoords (15.0, 15.0);

 

  int pWidth = 300;

  int pHeight = 300;

  double xCell = 30;

  double yCell = 30;

  int NumBand = 1;

 

  IRasterDataset pRasterDataset = pRasterWs.CreateRasterDataset (pFileName, pRasterType,pPoint, pWidth, pHeight, xCell, yCell, NumBand, rstPixelType.PT_UCHAR, pSpr,true);

 

  IRasterBandCollection pRasterBands = (IRasterBandCollection) pRasterDataset;

 

  IRasterBand pRasterBand = pRasterBands.Item (0);

  IRasterProps pRasterProps = (IRasterProps) pRasterBand;

 

  pRasterProps.NoDataValue = 255;

 

  IRaster pRaster = pRasterDataset.CreateDefaultRaster ();

 

  IPnt pPnt = new PntClass ();

  pPnt.SetCoords (30, 30);

 

  IRaster2 pRaster2 = pRaster as IRaster2;

  IRasterEdit pRasterEdit = (IRasterEdit) pRaster2;

 

  IRasterCursor pRasterCursor = pRaster2.CreateCursorEx (pPnt);

 

  do

  {

    IPixelBlock3 pPixelblock = pRasterCursor.PixelBlock as IPixelBlock3;

 

    System.Array pixels = (System.Array) pPixelblock.get_PixelData (0);

 

    for (int i = 0; i & lt; pPixelblock.Width; i++)

 

      for (int j = 0; j & lt; pPixelblock.Height; j++)

        if (i == j)

 

          pixels.SetValue (Convert.ToByte (255), i, j);

        else

          pixels.SetValue (Convert.ToByte ((i* j + 30) / 255), i, j);

 

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

    IPnt pUpperLeft = pRasterCursor.TopLeft;

 

    pRasterEdit.Write (pUpperLeft,(IPixelBlock) pPixelblock);

 

  } while (pRasterCursor.Next ());

 

  System.Runtime.InteropServices.Marshal.ReleaseComObject (pRasterEdit);

 

  return pRasterDataset;

}

    运行结果


      京ICP备08100627号-22 京公网安备 11010802030428号