根据指定的影像数据集信息来创建影像数据集。
命名空间:
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); }