1. 功能简介

目前在地理信息领域中数据包括矢量和栅格两种数据组织形式。每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

获取要读取的栅格数据

第二步

获取栅格数据的读取

第三步

构建新的栅格数据集

第四步

栅格数据写入

第五步

设置空间参考

第六步

设置仿射变换

2.2.  核心接口与方法

接口/类

方法/属性

说明

IRasterDataset

GetBandCount()

获取波段数

Read()

栅格读取

Write()

栅格写入

GetGeoTransform()

获取仿射变换参数

SetGeoTransform()

设置仿射变换参数

SpatialReference

空间参考

DataSource.DatasetFactory

CreateRasterDataset()

空间栅格数据集

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/11内存栅格数据的创建

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/04数据操作/11内存栅格数据的创建.avi

示例代码

          /// <summary>
/// 内存栅格数据集的创建
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_CreateMemRasterData_Click(object sender, EventArgs e)
{
//可以自定义打开一个tiff栅格数据
IRasterDataset rasterDataset = (mapControlMain.FocusMap.GetLayer() as IRasterLayer).Dataset;
int BandCount = rasterDataset.GetBandCount();
//栅格数据范围的读取
IEnvelope envelop = rasterDataset.GetExtent();
int xSize = rasterDataset.GetRasterXSize();//行
int ySize = rasterDataset.GetRasterYSize();//列
UInt16[] array = new UInt16[xSize * ySize * BandCount];
int[] bandMap = new int[BandCount];
for (int i = ; i < BandCount; i++)
{
bandMap[i] = i + ;
}
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "请选择要保存的路径:";
saveFileDialog.Filter = "Raster File|*.tiff";
if (saveFileDialog.ShowDialog() != DialogResult.OK) return;
//栅格数据读取
bool OK = rasterDataset.Read(, , xSize, ySize, array, xSize, ySize, PixelDataType.UInt16, BandCount, bandMap);
//构建栅格数据集
IRasterDataset newRasterDataset = DatasetFactory.CreateRasterDataset("", xSize, ySize, BandCount, PixelDataType.UInt16, "MEM", null);
//设设置空间参考
newRasterDataset.SpatialReference = rasterDataset.SpatialReference;
//栅格数据的写入
bool OK1 = newRasterDataset.Write(, , xSize, ySize, array, xSize, ySize, PixelDataType.UInt16, BandCount, bandMap);
//设置仿射变换
double[] geoTrans = rasterDataset.GetGeoTransform();
newRasterDataset.SetGeoTransform(geoTrans);
//创建图层添加到map中
ILayer layer = LayerFactory.CreateDefaultRasterLayer(newRasterDataset) as ILayer;
//第一种添加数据的方法
mapControlMain.FocusMap.AddLayer(layer, );
//第二种添加数据的方法
// mapControl1.AddLayerFromFile(saveFileDialog.FileName, 0); mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);

2.4. 示例截图

PIE SDK内存栅格数据的创建的更多相关文章

  1. PIE SDK内存矢量数据的创建

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...

  2. PIE-SDK For C++内存栅格数据的创建

    1.功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍. 2.功能 ...

  3. PIE SDK打开栅格数据

    1. 功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联. ...

  4. PIE SDK矢量数据空间索引的创建

    1. 功能简介 空间索引的使用便于数据的查询:所以在创建矢量数据的时候创建空间索引,下面对矢量数据如何创建空间索引进行功能介绍. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 创建矢量要素 ...

  5. PIE SDK栅格数据的金字塔创建

    1. 功能简介 金字塔可用于改善性能,可以加快栅格数据的显示速度.随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变:目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据 ...

  6. 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 ...

  7. PIE SDK栅格数据的创建

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对栅格数据格式的数据创建功能进行介绍. 2. 功能 ...

  8. PIE SDK创建掩膜

      1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...

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

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

随机推荐

  1. ESP8266-iot-简介1

    ESP8266简介

  2. hdu 4269 Defend Jian Ge

    #include <cctype> #include <algorithm> #include <vector> #include <string> # ...

  3. this与$(this)的区别

    this,表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性和方法. $(this),代表的上下文对象是一个jquery的上下文对象,可以调用jQuery的方法和属性值.

  4. Django-Web框架之Hello Django!

    1.首先我们配置guest目录下面的settings.py问,将我们的sign应用添加到项目中.如下图所示: 2.我们通过地址栏:http://127.0.0.1:8001/index/访问Djang ...

  5. 基本滤波算法比较 (转载http://blog.sina.com.cn/s/blog_69f2aa5a01014du5.html)

    最近在做关于数据采集方面的东西,这就不免涉及到了滤波的算法,在网上找到了关于几种算法的比较. 数字滤波方法有很多种,每种方法有其不同的特点和使用范围.从大的范围可分为3类. 1.克服大脉冲干扰的数字滤 ...

  6. SiriShortCut模型建立及数据交互逻辑

    1.模型数据需求 意图: 手机号 密码 网关ID 打开该情景的命令 情景号 情景名 情景背景图 添加该意图时的 token值 主程序登陆共享数据 手机号 token值 2.操作逻辑 1.意图被唤起 获 ...

  7. loj #2255. 「SNOI2017」炸弹

    #2255. 「SNOI2017」炸弹 题目描述 在一条直线上有 NNN 个炸弹,每个炸弹的坐标是 XiX_iX​i​​,爆炸半径是 RiR_iR​i​​,当一个炸弹爆炸时,如果另一个炸弹所在位置 X ...

  8. 编写可维护的Javascript纪要

    第一部分: 编程风格 在大型项目开发中,因为项目可读性规范性的需要(就像<编写可维护性的Javascript>一书作者Nicholas Zakas大神所说,他们团队所有成员写出的代码就像是 ...

  9. SDUT OJ 数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七:叶子问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...

  10. webpack(二)解析es6并打包

    一.前言 ECMAScript 6(ES6)的发展速度非常之快,但现代浏览器对ES6新特性支持度不高,所以要想在浏览器中直接使用ES6的新特性就得借助别的工具来实现.Babel是一个广泛使用的转码器, ...