PIE SDK 多數據源的複合數據集加載

 

1. 功能簡介

    GIS遙感圖像數據複合是將多種遙感圖像數據融合成一種新的圖像數據的技術,是目前遙感應用分析的前沿,PIESDK經過複合數據技術能夠將多幅幅影像數據集(多光譜和全色數據)組合成一幅多波段彩色影像,下面咱們就介紹如何在PIE中加載複合數據集數據。ide

2. 功能實現說明

2.1. 柵格數據介紹

    常見的柵格數據文件格式包括tiff、tif、img、dat等,它們採用文件的方式存儲相關信息,一個Tiff數據的文件結構以下所示(GF1數據爲例):測試

 

[Tiff數據文件結構]spa

編號3d

後綴code

文件說明視頻

1xml

.tiffblog

基本文件,存儲柵格數據的像素、座標系、座標等信息;教程

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             //一、獲取路徑
 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             //二、建立複合數據集
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             //三、複合數據集顯示
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渲染須要將透明度第四波段打勾纔會出現上圖效果

相關文章
相關標籤/搜索