1.功能简介

栅格数据包含很多信息,在数据的运用中需要对数据的信息进行读取或写入,目前PIE SDK支持多种数据格式的数据读取和写入,下面对栅格数据格式的数据读写功能进行介绍。

2.功能实现说明

2.1. 实现思路及原理说明

第一步

获取要读取的栅格数据

第二步

读取栅格数据

第三步

写入栅格数据并赋值投影

2.2. 核心接口与方法

接口/类

方法/属性

说明

RasterDatasetPtr

GetBandCount()

获取波段数

GetRasterBand(int nIndex)

获取栅格波段对象

GetRasterDataType()

获取栅格数据类型

Read(int nx, int ny, int nWid, int nHei, int nBufXSize, int nBufYSize, const QVector<int>& bandMap)

栅格数据集读取数据

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/12栅格数据集的读写

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/04数据操作/12栅格数据集的读写.avi

示例代码

void PIEMainWindow::On_ActionLayoutReadRaster_Triggered(bool checked)

{

SysCarto::RasterLayerPtr rasterLayerPtr = m_pCurrentControl->GetActiveView()->GetCurrentLayer();

if (rasterLayerPtr == nullptr) return;

SysDataSource::RasterDatasetPtr rasterDataSetPtr = rasterLayerPtr->GetDataset();

int BandCount = rasterDataSetPtr->GetBandCount();

SysDataSource::RasterBandPtr band = rasterDataSetPtr->GetRasterBand(0);

SysDataSource::PixelDataType bandType= band->GetRasterDataType();

QVector<int> vectorBand;

int* bandMap = new int[BandCount];

for (int i = 0; i < BandCount; i++)

{

bandMap[i] = i + 1;

vectorBand.insert(i, i + 1);

}

SysDataSource::PixelBufferPtr buffer= rasterDataSetPtr->Read(0, 0, 500, 500, 500, 500, vectorBand);

/*将读取到的数据,写入内存数据集,并加载至图层*/

SysDataSource::RasterDatasetPtr newDataSet = SysDataSource::DatasetFactory::Instance()->CreateRasterDataset("", 500, 500        , BandCount, rasterDataSetPtr->GetRasterBand(0)->GetRasterDataType(), "MEM");

double* geo = new double[6];

rasterDataSetPtr->GetGeoTransform(geo);

newDataSet->SetSpatialReference(rasterDataSetPtr->GetSpatialReference());

newDataSet->SetGeoTransform(geo);

bool flag = newDataSet->Write(0, 0, 500, 500, buffer->GetData(), 500, 500, bandType, BandCount, bandMap);

if (flag)

{

SysCarto::RasterLayerPtr newLayer = SysCarto::LayerFactory::Instance()->CreateDefaultRasterLayer(newDataSet);

newLayer->SetName("内存图层");

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

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

}

}

2.4. 示例截图

PIE-SDK For C++栅格数据集的读写的更多相关文章

  1. PIE SDK栅格数据集的读写

    1. 功能简介 栅格数据包含很多信息,在数据的运用中需要对数据的信息进行读取或写入,目前PIE SDK支持多种数据格式的数据读取和写入,下面对栅格数据格式的数据读写功能进行介绍. 2. 功能实现说明 ...

  2. PIE创建带压缩的栅格数据集

    这段时间我一直在研究如何用PIE创建带压缩的栅格数据集,由于我在比赛中使用的原始影像大小普遍都在300M以上,软件加载较慢,因此希望能对原始影像进行压缩,加快加载时间. 首先,该方法的关键是修改Dat ...

  3. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  4. PIE SDK打开自定义栅格数据

    1. 数据介绍 信息提取和解译的过程中,经常会生成一部分中间临时栅格数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存栅格数据集,来协助用户完成对自定义栅格数据的读取和 ...

  5. PIE SDK栅格RGB渲染

    1. 功能简介 RGB色彩模式是一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几乎包 ...

  6. PIE SDK栅格增强控制

    1. 功能简介 亮度是指发光体(反光体)表面发光(反光)强弱的物理量:对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量:透明度是描述光线透过的程度 栅格数据增强控制主要是通过对亮 ...

  7. PIE SDK栅格图层渲染变化事件监听

    1. 功能简介 通过PIE SDK加载图层后,会默认的赋值给数据一个渲染.当用户重新给数据赋值Render或改变数据显示效果时,会触发渲染变化事件. 所谓的事件监听是在事件触发时,将执行用户指定的函数 ...

  8. PIE SDK栅格生成等值线、面

      1.算法功能简介 等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图建之一,被广泛应用于石油勘探.矿物开采.气象预报等众多领域.等值线的绘制是指从大量采样数据中提取出具有相同值的点的信 ...

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

    1. 功能简介 GIS遥感图像数据复合是将多种遥感图像数据融合成一种新的图像数据的技术,是目前遥感应用分析的前沿,PIESDK通过复合数据技术可以将多幅幅影像数据集(多光谱和全色数据)组合成一幅多波段 ...

随机推荐

  1. 利用预测分析改进欠款催收策略,控制欺诈风险和信贷风险—— Altair Knowledge Studio 预测分析和机器学习

    前提摘要 在数字经济新时代,金融服务主管正在寻求方法去细分他们的产品和市场,保持与客户的联系,寻找能够推动增长和收入的新市场,并利用可以增加优势和降低风险的新技术. 在拥有了众多可用数据之后,金融机构 ...

  2. python实现自动点赞

    1.思路通过pyautogui可以实现鼠标点击.滚动鼠标.截屏等操作.由此功能实现打开页面,进行点赞.aircv可以从大图像获得小图像的位置,利用pyautogui截屏得到的图片,可以在页面获取到每一 ...

  3. php利用七牛云的对象存储完成图片上传-高效管理图片

    在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...

  4. CentOS安装python3环境

    CentOS7.4安装python3环境 (Python 3.8.1) (stable version, Dec.18, 2019) # .从官网下载Python - Dec. , [stable v ...

  5. navicat连接异常 authentication plugin 'caching_sha2_password' 问题解决

    mysql 8.0 默认使用 caching_sha2_password 身份验证机制 -- 从原来的 mysql_native_password 更改为 caching_sha2_password. ...

  6. es6异步解决方案

    最初使用回调函数 ​ 由于最初j s官方没有明确的规范,各种第三方库中封装的异步函数中传的回调函数中的参数没有明确的规范, 没有明确各个参数的意义, 不便于使用. ​ 但是node中有明确的规范 ​ ...

  7. (LNMP) Nginx_PHP_MariaDB

    L用的是Centos7.5以上,主要是NMP三组件的安装记录. 通常会先安装一下依赖: yum install -y pcre-devel zlib-devel openssl-devel 使用yum ...

  8. CentOS7安装docker和docker-compose

    1.安装docker # 使用yum安装docker yum -y install docker # 启动 systemctl start docker.service # 设置为开机自启动 syst ...

  9. centos7查看启动的进程并杀死

    https://www.cnblogs.com/aipiaoborensheng/p/7676364.html ps -a -H kill -9 pid

  10. (node:7584) UnhandledPromiseRejectionWarning: MongooseTimeoutError: Server selection timed out after 30000 ms

    记录一次学习node.js犯的低级错误 这里遇到一个这样的问题 express连接mongoose时报错(node:7584) UnhandledPromiseRejectionWarning: Mo ...