关于Raster的理解
 作者:3s4d 出处:http://www.gissky.net/blog/user1/yumao/15896.html
raster 是在重投影、重采样后内存中存在的短暂的数据表达。对raster的修改并不能够影响现有的数据源。虽然是存储在内存中,但是我们可以通过方法来永久保存这个raster对象。
如我们可以使用:ISaveAs 接口 或者 IRasterBandCollection  接口 来进行保存 raster对象;

创建raster对象的方法:
1,从现有的RasterLayer 中派生出raster对象IRasterLayer::Raster;
2,从rasterdataset对象中创建raster对象;
   IRasterDataset::CreateDefaultRaster 方法;--本方法是创建默认的raster,最多具有3个rasterdataset
   中的波段band。
   IRasterDataset2::CreateRaster 方法;--本方法是创建空raster对象的方法,所创建的raster属性都是空值0。
   IRasterDataset2::CreateFullRaster方法;--本方法创建的raster对象,会包含所有的波段band。

当创建完空的raster对象后,就需要对raster对象设置长、宽 extent 等属性,使用IRasterProps(设置)接口;
使用获取Raster对象的raster属性信息 使用IRasterDefaultProps(只读)接口来查看;
使用IRasterAnalysisProps接口来设置raster分析时的属性;

名词解释:
PixelBlock :字面上理解为“像素块”。顾名思义PixelBlock 是多个像素点组成的块,它的大小可以是整个raster, 当然也可以是raster中的某一个区域(要随定义块的大小而定行数、列数而确定);利用这个PixelBlock 我们可以读取PixelBlock上的所有像素点值(通过SafeArray来获取)。我们也可以理解使用PixelBlock可以从原有的raster或rasterband中截取一个区域,组成新的raster或者rasterband。
Planes :    可以把它理解为是波段。如一个raster有3个波段,那么Planes的数量就是3;
SafeArray:  返回某一波段中pixelBlock的所有像素数组;
GetVal:   而GetVal是可以返回特点波段上,特定行、列上的数值;


posted on 2008-05-14 11:47  叶秋  阅读(968)  评论(0编辑  收藏  举报