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数据操作/10栅格数据的创建 |
|
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
|
视频路径 |
百度云盘地址下/PIE视频教程/04数据操作/10栅格数据的创建.avi |
|
示例代码 |
|
|
void PIEMainWindow::On_ActionCreateRaster_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); } QString filter = "Raster Files (*.tif *.tiff *.img *.bmp *.jpg *.ldf *.dat *.1bd *.1b)"; QString saveFilePath= QFileDialog::getSaveFileName(nullptr, "保存", "", filter); if (saveFilePath.isEmpty()) return; SysDataSource::PixelBufferPtr buffer=datasetPtr->Read(0, 0, xSize, ySize, xSize, ySize, vectorBand); SysDataSource::RasterDatasetPtr newDataSet = SysDataSource::DatasetFactory::Instance()->CreateRasterDataset(saveFilePath, xSize, ySize, BandCount, datasetPtr->GetRasterBand(0)->GetRasterDataType(), "GTiff"); 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) { m_pCurrentControl->GetMap()->AddLayer(newLayer); m_pCurrentControl->GetActiveView()->Refresh(); } } } |
|
2.4 示例截图

PIE-SDK For C++栅格数据的创建的更多相关文章
- PIE SDK打开自定义栅格数据
1. 数据介绍 信息提取和解译的过程中,经常会生成一部分中间临时栅格数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存栅格数据集,来协助用户完成对自定义栅格数据的读取和 ...
- 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内存栅格数据的创建
1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍. 2. ...
- PIE SDK栅格数据的金字塔创建
1. 功能简介 金字塔可用于改善性能,可以加快栅格数据的显示速度.随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变:目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据 ...
- PIE SDK创建掩膜
1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...
- PIE SDK栅格数据的投影转换
1. 功能简介 为了适应不同数据显示分析的需要,数据的投影可以进行相应的转换,目前PIE SDK支持多种数据格式的投影转换,下面对栅格数据格式的投影转换功能进行介绍. 2. 功能实现说明 2.1. 实 ...
- PIE SDK 距离分类和最大似然分类
1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...
- PIE SDK与GeoServer结合说明文档
1. GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...
- PIE SDK Command&&Tool工具命令一览表
PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...
随机推荐
- 面向对象之包装类与Object类
一.包装类(Wrapper) 1.包装类出现原因 为了使8种基本数据类型的变量具有类的特征,引入包装类 2.类型间转化 ① 基本数据类型---->对应的包装类:自动装箱 包装类---->对 ...
- 《自拍教程17》Python调用命令
他山之石 何为他山之石,就是借助外界工具,来实现自己想要的功能. 命令行界面软件, 即各种命令,我们也叫命令行工具, 此类工具也是测试人员或者开发人员常用的工具的一种. 测试人员可以借助这类工具,快速 ...
- HDU 5391 水题。
E - 5 Time Limit:1500MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- Leetcode:96. 不同的二叉搜索树
Leetcode:96. 不同的二叉搜索树 Leetcode:96. 不同的二叉搜索树 题目在链接中,点进去看看吧! 先介绍一个名词:卡特兰数 卡特兰数 卡特兰数Cn满足以下递推关系: \[ C_{n ...
- OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Out of memory' (errno=12)
使用docker 安装kafka时启动失败 查看报错日志 # docker logs --since 30m 71846a96e514 Excluding KAFKA_HOME from broker ...
- TFT液晶显示屏之绘图板应用
应用范例: 使用 TOPWAY Smart LCD (HMT043FC-1C) 绘图板应用 第一步建立工程 ① 开TOPWAY TML Graphic Editor 2017 V1.04软件, 点击菜 ...
- codewars--js--Human Readable Time—Math对象,parseInt()
问题描述: Write a function, which takes a non-negative integer (seconds) as input and returns the time i ...
- ES6 - 基础学习(2): 新的变量声明方式 let 与 const
ES6)新增加了两个重要的 JavaScript 关键字:let 和 const.以前声明变量时只有一种方式:var,ES6对声明方式进行了扩展,现在可以有三种声明方式了. 1.var:variabl ...
- html文件如何下载文件
HTML中下载文件两种方法:a标签下载:js下载; <!-- 网页地址和图片地址同源的情况下这样是可以的,不同源则是直接打开这个地址 --> <!-- 方法一:同源情况下载 --&g ...
- 如何利用dokcer提交我的比赛代码
运气很好进入了天池的一个复赛,但是复赛评测时需要提交docker镜像,捣鼓了一个晚上,终于搞清了整套的流程.由于晚上已经下定决心要早点睡觉,害怕明早就会忘记的我还是先把步骤记录下来. 1. 安装doc ...