PIE-SDK For C++内存栅格数据的创建
1.功能简介
目前在地理信息领域中数据包括矢量和栅格两种数据组织形式。每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍。
2.功能实现说明
2.1 实现思路及原理说明
第一步 |
获取要读取的栅格数据 |
第二步 |
获取栅格数据的读取 |
第三步 |
构建新的栅格数据集 |
第四步 |
栅格数据写入 |
第五步 |
设置空间参考 |
第六步 |
设置仿射变换 |
2.2 核心接口与方法
接口/类 |
方法/属性 |
说明 |
SysDataSource::RasterDatasetPtr |
GetBandCount() |
获取波段数 |
Read() |
栅格读取 |
|
Write() |
栅格写入 |
|
GetGeoTransform() |
获取仿射变换参数 |
|
SetGeoTransform() |
设置仿射变换参数 |
|
GetSpatialReference() |
空间参考 |
|
SysDataSource::DatasetFactory |
CreateRasterDataset() |
空间栅格数据集 |
2.3 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/04数据操作/11内存栅格数据的创建 |
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
视频路径 |
百度云盘地址下/PIE视频教程/04数据操作/11内存栅格数据的创建.avi |
示例代码 |
|
void PIEMainWindow::On_ActionReadMEMRaster_Triggered(bool checked) { SysCarto::RasterLayerPtr rasterLayerPtr = m_pCurrentControl->GetActiveView()->GetCurrentLayer(); if (rasterLayerPtr == nullptr) return; SysDataSource::RasterDatasetPtr datasetPtr = rasterLayerPtr->GetDataset(); int BandCount = datasetPtr->GetBandCount(); //2栅格数据范围等信息的读取 int xSize = datasetPtr->GetRasterXSize();//行 int ySize = datasetPtr->GetRasterYSize();//列 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 = datasetPtr->Read(0, 0, xSize, ySize, xSize, ySize, vectorBand); SysDataSource::RasterDatasetPtr newDataSet = SysDataSource::DatasetFactory::Instance()->CreateRasterDataset("", xSize, ySize, BandCount, datasetPtr->GetRasterBand(0)->GetRasterDataType(), "MEM"); double* geo = new double[6]; datasetPtr->GetGeoTransform(geo); newDataSet->SetSpatialReference(datasetPtr->GetSpatialReference()); newDataSet->SetGeoTransform(geo); bool flag = newDataSet->Write(0, 0, xSize, ySize, buffer->GetData(), xSize, ySize, datasetPtr->GetRasterBand(0)->GetRasterDataType(), BandCount, bandMap); if (flag) { SysCarto::LayerPtr newLayer = SysCarto::LayerFactory::Instance()->CreateDefaultRasterLayer(newDataSet); if (newLayer != nullptr) { newLayer->SetName("内存图层"); m_pCurrentControl->GetMap()->AddLayer(newLayer); m_pCurrentControl->GetActiveView()->Refresh(); } } } |
2.4 示例截图
PIE-SDK For C++内存栅格数据的创建的更多相关文章
- PIE SDK内存栅格数据的创建
1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍. 2. ...
- PIE SDK栅格数据的创建
1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对栅格数据格式的数据创建功能进行介绍. 2. 功能 ...
- 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 ...
- PIE SDK矢量数据的投影转换
1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式 ,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据的投影转换功能,下面对矢量数据的投影转换功能进行介绍. 2 ...
- PIE-SDK For C++栅格数据的创建
1.功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对栅格数据格式的数据创建功能进行介绍. 2.功能实现 ...
- PIE SDK栅格数据的金字塔创建
1. 功能简介 金字塔可用于改善性能,可以加快栅格数据的显示速度.随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变:目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据 ...
- PIE SDK内存矢量数据的创建
1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...
- PIE SDK创建掩膜
1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...
- PIE SDK栅格数据的投影转换
1. 功能简介 为了适应不同数据显示分析的需要,数据的投影可以进行相应的转换,目前PIE SDK支持多种数据格式的投影转换,下面对栅格数据格式的投影转换功能进行介绍. 2. 功能实现说明 2.1. 实 ...
随机推荐
- Python socket 基础(Client) - Foundations of Python Socket
Python socket 基础- Foundations of Python Socket 建立socket - establish socket import socket s = socket. ...
- .NET Core之单元测试(二):使用内存数据库处理单元测试中的数据库依赖
目录 定义一个待测试API 测试用例 为减少篇幅,隐藏了SampleEntity和SqliteDbContext 定义一个待测试API 如下,我们定义了一个名为Sample的API,其中有一个外部依赖 ...
- vue 信使 ------fetch、axios
fetch 1.什么是fetch 相当于promise 必须写两个then 第一个then返回状态码 返回成json格式 第二个then返回json数据 2.使用方法 $ npm install fe ...
- [PowerShell]Windows服务开启、重启、关闭
# 获取服务信息 PS C:\Users\Administrator> Get-Service win* Status Name DisplayName ------ ---- -------- ...
- python3配置阿里云短信服务
1.申请阿里云短信服务,具体步骤看我的python2-Django配置短信服务 2.安装依赖 aliyun-python-sdk-core-v3 aliyun-python-sdk-dysmsapi= ...
- [CQOI2015]选数(莫比乌斯反演,杜教筛)
[CQOI2015]选数(luogu) Description 题目描述 我们知道,从区间 [L,H](L 和 H 为整数)中选取 N 个整数,总共有 (H-L+1)^N 种方案. 小 z 很好奇这样 ...
- 1.3.6 详解build.gradle文件——Android第一行代码(第二版)笔记
不同于Eclipse,Android Studio是采用Gradle来构建项目的.Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置. 首先看 ...
- Centos7之firewall配置命令
firewalld的基本使用 查看状态:systemctl status firewalld 启动:systemctl start firewalld 停止:systemctl stop firewa ...
- NFS服务配置 Linux
两台机器: NFS服务器:192.168.1.100 (我的是Ubuntu系统) 客户机:192.168.1.123 (保证两台机器互相可以ping通) 需求:在NFS服务器上创建一个共享文件夹/ho ...
- Charles老版本教程
链接:http://pan.baidu.com/s/1c16PxEo 刮开有奖->密码:dbml 初级篇: 1.1设置代理 1.2参数设置+界面介绍 1.3屏蔽多余数据 1.4请求重发 1.5 ...