zoukankan      html  css  js  c++  java
  • PIE-SDK For C++多数据源的复合数据集加载

    1、功能简介

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

    2、功能实现说明

    2.1 栅格数据介绍

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

    [Tiff数据文件结构]

    编号

    后缀

    文件说明

    1

    .tiff

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

    2

    .jpg

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

    3

    .rpb

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

    4

    .xml

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

    5

    .ovr/aux.xml

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

    [Tiff数据文件结构说明]

    2.2 实现思路及原理说明

    第一步

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

    第三步

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

    第四步

    复合数据集添加波段数据

    第五步

    结果图层显示

    2.3 核心接口与方法

    接口/

    方法属性

    说明

    SysDataSource::DatasetFactory

    OpenRasterDataset

    打开矢量数据集

    CreateRasterDataset

    创建栅格数据集

    SysDataSource::DatasetFactory

    CreateDefaultFeatureLayer

    创建矢量图层

    SysDataSource::ComplexRasterDatasetPtr

    AddRasterBand

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

    2.4 示例代码

    数据路径

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

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

    视频路径

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

    示例代码

    /// <summary>

    ///复合图层

    /// </summary>

    void PIEMainWindow::On_ActionOpenComplexDataset_Triggered(bool checked)

    {

        QString worldPath = "D:/PIESDK/PIE示例数据/栅格数据/04.World/World.tif";

        QString yunPath = "D:/PIESDK/PIE示例数据/栅格数据/04.World/CC_2018082615.tif";

     

        //创建数据集

        SysDataSource::ComplexRasterDatasetPtr complexRasterDataset = new SysDataSource::ComplexRasterDataset();

     

        //打开数据集

        SysDataSource::RasterDatasetPtr worldDataSet = SysDataSource::DatasetFactory::Instance()->OpenRasterDataset(worldPathSysDataSource::OpenMode::GA_ReadOnly);

     

        SysDataSource::RasterDatasetPtr yunDataSet = SysDataSource::DatasetFactory::Instance()->OpenRasterDataset(yunPath, SysDataSource::OpenMode::GA_ReadOnly);

        //写入波段

        complexRasterDataset->AddRasterBand(worldDataSet, 0);

        complexRasterDataset->AddRasterBand(worldDataSet, 1);

        complexRasterDataset->AddRasterBand(worldDataSet, 2);

        complexRasterDataset->AddRasterBand(yunDataSet, 0);

     

        SysCarto::RasterRGBRenderPtr rgbRenderPtr = new SysCarto::RasterRGBRender();

        rgbRenderPtr->SetRedBandIndex(0);

        rgbRenderPtr->SetGreenBandIndex(1);

        rgbRenderPtr->SetBlueBandIndex(2);

        rgbRenderPtr->SetAlphaBandIndex(3);

        rgbRenderPtr->SetUseAlphaBand(true);

     

        SysCarto::RasterLayerPtr renderLayer = SysCarto::LayerFactory::Instance()->CreateDefaultRasterLayer(complexRasterDataset);

        renderLayer->SetRenderer(rgbRenderPtr);

        renderLayer->SetName("多源数据图层");

        m_pCurrentControl->GetMap()->AddLayer(renderLayer);

        m_pCurrentControl->GetActiveView()->Refresh();

    }

    2.5 示例截图

  • 相关阅读:
    数据快照
    2.21毕设进度
    2.20毕设进度
    Java读取文件,明明文件存在,却报错文件找不到
    2.19毕设进度
    2.18毕设进度
    2.17毕设进度
    2.16毕设进度
    2.15毕设进度
    2.14毕设进度
  • 原文地址:https://www.cnblogs.com/PIESat/p/12369190.html
Copyright © 2011-2022 走看看