PIE SDK 多数据源的复合数据集加载

 

1. 功能简介

    GIS遥感图像数据复合是将多种遥感图像数据融合成一种新的图像数据的技术,是目前遥感应用分析的前沿,PIESDK通过复合数据技术可以将多幅幅影像数据集(多光谱和全色数据)组合成一幅多波段彩色影像,下面我们就介绍如何在PIE中加载复合数据集数据。

2. 功能实现说明

2.1. 栅格数据介绍

    常见的栅格数据文件格式包括tiff、tif、img、dat等,它们采用文件的方式存储相关信息,一个Tiff数据的文件结构如下所示(GF1数据为例):

 

[Tiff数据文件结构]

编号

后缀

文件说明

1

.tiff

基本文件,存储栅格数据的像素、坐标系、坐标等信息;

2

.jpg

可选文件,栅格数据的示意图;

3

.rpb

可选文件,坐标参数文件;

4

.xml

可选文件,数据相关信息文件;

5

.ovr/aux.xml

可选文件,栅格数据金字塔文件;

[Tiff数据文件结构说明]

2.2.  实现思路及原理说明

第一步

根据文件路径打开需要组合的栅格数据(至少两份数据);

第三步

创建复合数据集(数据集的大小最好要和最大的栅格数据的大小一致)

第四步

复合数据集添加波段数据

第五步

结果图层显示

2.3. 核心接口与方法

接口/类

方法\属性

说明

DataSource.DatasetFactory

OpenRasterDataset

打开矢量数据集

CreateRasterDataset

创建栅格数据集

Carto.LayerFactory

CreateDefaultFeatureLayer

创建矢量图层

IComplexRasterDataset

AddRasterBand

添加波段(将ptrRasterDataset的第nBandIndex索引的波段添加到当前数据集)

2.4. 示例代码

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tiff;

百度云盘地址下/PIE示例数据/栅格数据/04.World/CC_2018082615.tif

视频路径

百度云盘地址下/PIE视频教程/03.数据加载/12.加载多数据源的复合数据集.avi

示例代码

 1          /// <summary>
 2         /// 复合图层
 3         /// </summary>
 4         private void Test_ComplexRasterDataset()
 5         {
 6             //1、获取路径
 7             IRasterDataset rasterDS_World = PIE.DataSource.DatasetFactory.OpenRasterDataset(@"D:\MapData\测试数据\World.tif", OpenMode.ReadOnly);
 8             IRasterDataset rasterDS_Yun = PIE.DataSource.DatasetFactory.OpenRasterDataset(@"D:\MapData\测试数据\CC_2018082615.tif", OpenMode.ReadOnly);
 9             //2、创建复合数据集
10             PIE.DataSource.IComplexRasterDataset dataset = new PIE.DataSource.ComplexRasterDataset();
11             dataset.AddRasterBand(rasterDS_World, 0);
12             dataset.AddRasterBand(rasterDS_World, 1);
13             dataset.AddRasterBand(rasterDS_World, 2);
14             dataset.AddRasterBand(rasterDS_Yun, 0);
15             IRasterLayer rasterLayer = new RasterLayer();
16             rasterLayer.Dataset = dataset as IRasterDataset;
17 
18             //3、复合数据集显示
19             (rasterLayer as ILayer).Name = "组合图层测试";
20             m_HookHelper.FocusMap.AddLayer(rasterLayer as ILayer);      m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
21         }
View Code

2.5. 示例截图

 

注:显示的结果图需要改变一下渲染方式,RGB渲染需要将透明度第四波段打勾才会出现上图效果

posted @ 2018-12-20 16:48  PIESAT  阅读(853)  评论(0编辑  收藏  举报