• 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渲染需要将透明度第四波段打勾才会出现上图效果

  • 相关阅读:
    python爬取二手房库存,存数据库,生成折线图(下)
    python爬取二手房库存,存数数据库,生成折线图(上)
    python爬取二手房库存,存数据库,生成折线图(中)
    vue input 复制后无法修改
    js对象应用问题
    redis5.0集群搭建
    查看java 字节码的方式
    python 运行js
    对java基本对象的构想
    学习第39天
  • 原文地址:https://www.cnblogs.com/PIESat/p/10150334.html
Copyright © 2020-2023  润新知