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

示例代码

          /// <summary>
/// 复合图层
/// </summary>
private void Test_ComplexRasterDataset()
{
//1、获取路径
IRasterDataset rasterDS_World = PIE.DataSource.DatasetFactory.OpenRasterDataset(@"D:\MapData\测试数据\World.tif", OpenMode.ReadOnly);
IRasterDataset rasterDS_Yun = PIE.DataSource.DatasetFactory.OpenRasterDataset(@"D:\MapData\测试数据\CC_2018082615.tif", OpenMode.ReadOnly);
//2、创建复合数据集
PIE.DataSource.IComplexRasterDataset dataset = new PIE.DataSource.ComplexRasterDataset();
dataset.AddRasterBand(rasterDS_World, );
dataset.AddRasterBand(rasterDS_World, );
dataset.AddRasterBand(rasterDS_World, );
dataset.AddRasterBand(rasterDS_Yun, );
IRasterLayer rasterLayer = new RasterLayer();
rasterLayer.Dataset = dataset as IRasterDataset; //3、复合数据集显示
(rasterLayer as ILayer).Name = "组合图层测试";
m_HookHelper.FocusMap.AddLayer(rasterLayer as ILayer); m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.5. 示例截图

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

PIE SDK 多数据源的复合数据集加载的更多相关文章

  1. 什么是pytorch(4.数据集加载和处理)(翻译)

    数据集加载和处理 这里主要涉及两个包:torchvision.datasets 和torch.utils.data.Dataset 和DataLoader torchvision.datasets是一 ...

  2. OFRecord 数据集加载

    OFRecord 数据集加载 在数据输入一文中知道了使用 DataLoader 及相关算子加载数据,往往效率更高,并且学习了如何使用 DataLoader 及相关算子. 在 OFrecord 数据格式 ...

  3. 基于FBX SDK的FBX模型解析与加载 -(四)

    8. 骨骼蒙皮动画 骨骼蒙皮动画是当前游戏引擎中最常用的一种动画方式,关于其基本原理网络上的资料较多,关于到涉及的其它较复杂操作,如插值.融合等在这里也就先不再讨论了,而且其实现方式也与具体引擎的动作 ...

  4. 基于FBX SDK的FBX模型解析与加载 -(三)

    http://blog.csdn.net/bugrunner/article/details/7229416 6. 加载Camera和Light 在FBX模型中除了几何数据外较为常用的信息可能就是Ca ...

  5. 基于FBX SDK的FBX模型解析与加载 -(一)

    http://blog.csdn.net/bugrunner/article/details/7210511 1. 简介 FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式(最早不是由A ...

  6. tensorflow数据集加载

    本篇涉及的内容主要有小型常用的经典数据集的加载步骤,tensorflow提供了如下接口:keras.datasets.tf.data.Dataset.from_tensor_slices(shuffl ...

  7. [深度学习]-Dataset数据集加载

    加载数据集dataloader from torch.utils.data import DataLoader form 自己写的dataset import Dataset train_set = ...

  8. 基于FBX SDK的FBX模型解析与加载 -(二)

    http://blog.csdn.net/bugrunner/article/details/7211515 5. 加载材质 Material是一个模型渲染时必不可少的部分,当然,这些信息也被存到了F ...

  9. las数据集加载las数据

    引用的类库:ESRI.ArcGIS.GeoDatabaseExtensions 逻辑步骤: 1.创建las数据集(ILasDataset). 2.实例化las数据集的编辑器(ILasDatasetEd ...

随机推荐

  1. linux 广播和组播

    广播和组播 广播,必须使用UDP协议,是只能在局域网内使用,指定接收端的IP为*.*.*.255后,发送的信息,局域网内的所有接受端就能够接到信息了. 广播的发送端代码 #include <st ...

  2. 5.2 RDD编程---键值对RDD

    一.键值对RDD的创建 1.从文件中加载 2.通过并行集合(数组)创建RDD 二.常用的键值对RDD转换操作 1.reduceByKey(func) 功能:使用func函数合并具有相同键的值 2.gr ...

  3. 第14节_BLE协议ATT层

    下面这个图是BLE协议各层跟医院的各个科室的类比图: 跟医院类比,ATT层就是化验室,通过它可以得到各种检查结果──属性.这些检查结果之间有什么联系,它们组合起来体现了什么,化验室是不知道的,这些得由 ...

  4. Slack完整教学与上手心得:找到正确的团队沟通之道

    Slack完整教学与上手心得:找到正确的团队沟通之道 时间 2015-06-13 09:21:42 逐鹿网 原文  http://www.zhulu.com/article/5519.html 主题 ...

  5. 微信小程序 - 结构目录 | 配置介绍

    结构目录 小程序框架提供了自己的视图层描述语言 WXML 和 WXSS,以及 JavaScript,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑. 一.小程序文件结构和传 ...

  6. djangoORM 修改表结构/字段/外键操作

    Django支持修改表结构 把max_length=64 改为60 再执行一遍 python manage.py makemigrations python manage.py migrate 如果是 ...

  7. NOIP 2005 采药

    洛谷 P1048 采药 洛谷传送门 JDOJ 1277: [NOIP2005]采药 T3 JDOJ传送门 Description ​ 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他 ...

  8. Leetcode61.旋转链表

    链表中的点已经相连,一次旋转操作意味着: 先将链表闭合成环 找到相应的位置断开这个环,确定新的链表头和链表尾 class Solution{ public: ListNode* rotateRight ...

  9. A1048 Find Coins (25 分)

    一.技术总结 首先初看题目有点没读懂,题目大致意思是小明有很多个硬币不同面值的,但是现在他要到商家这里换新的面值, 且商家有一个规定,一个新的硬币必须要你两个硬币面值相加等于的来换,这一有第一个问题产 ...

  10. vue中子组件的methods中获取到props中的值

    这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中 <template> <div> <head-top>& ...