根据指定的影像数据集信息来创建影像数据集。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public DatasetImage Create(
	DatasetImageInfo datasetInfo
)

参数

datasetInfo
Type: SuperMap.Data..::.DatasetImageInfo
影像数据集信息。

返回值

成功则返回新创建的数据集对象。

备注

SuperMap iObjects .NET 支持创建多波段影像数据集,通过 DatasetImageInfo.BandCount 属性可设置波段数目。

如果是创建8位非灰度影像数据集,编码方式会从DCT自动调整为LZW。

示例

以下代码示范如何创建影像数据集,并把已有的影像数据更新到创建的数据集中。

假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象。

从数据源里得到名为 "D71244_IMG1" 和 "D71244_IMG2" 的两个影像数据集。

CopyC#
public void CreateAndUpdate(Workspace workspace, Datasource datasource)
{
   // 取出数据源中名为 "D71244_IMG1" 和 "D71244_IMG2" 的影像数据集(DatasetImage)
   DatasetImage datasetImage1 = (DatasetImage)datasource.Datasets["D71244_IMG1"];
   DatasetImage datasetImage2 = (DatasetImage)datasource.Datasets["D71244_IMG2"];

   // 删除数据源里可能存在的名为"Del_D71244_IMG1"的影像数据集
   String name = "Del_" + datasetImage1.Name;
   if (!datasource.Datasets.IsAvailableDatasetName(name))
   {
       datasource.Datasets.Delete(name);
    }

   // 设置所要创建的影像数据集的相关信息,如范围、像素格式、编码方式等
   Rectangle2D bound = new Rectangle2D();
   bound.Bottom = 0;
   bound.Left = 66.5;
   bound.Right = 105.5;
   bound.Top = 54;
   DatasetImageInfo datasetImageInfo = new DatasetImageInfo();
   datasetImageInfo.Name = name;
   datasetImageInfo.BlockSizeOption = 128;
   datasetImageInfo.Bounds = bound;
   datasetImageInfo.Height = datasetImage1.Height;
   datasetImageInfo.Width = datasetImage1.Width + datasetImage2.Width;
   datasetImageInfo.PixelFormat = datasetImage1.PixelFormat;
   datasetImageInfo.EncodeType = datasetImage1.EncodeType;

   // 创建影像数据集
   DatasetImage datasetImage = datasource.Datasets.Create(datasetImageInfo);

   // 设置创建好的影像数据集的投影信息
   datasetImage.PrjCoordSys = datasetImage1.PrjCoordSys;        

   // 分别用名为 "D71244_IMG1" 和 "D71244_IMG1" 这两个影像数据集更新影像数据集          
   Boolean b1 = datasetImage.Update(datasetImage1);
   Boolean b2 = datasetImage.Update(datasetImage2);
}

请参见