1. 功能简介

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

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

获取要读取的栅格数据

第二步

读取栅格数据

第三步

写入栅格数据并赋值投影

2.2. 核心接口与方法

接口/类

方法/属性

说明

IRasterDataset

GetBandCount()

获取波段数

GetRasterBand(int nIndex)

获取栅格波段对象

GetRasterDataType()

获取栅格数据类型

Read(int nx, int ny, int nWid, int nHei, int nBufXSize, int nBufYSize, IList<int> bandMap)

栅格数据集读取数据

2.3. 示例代码

项目路径

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

数据路径

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

视频路径

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

示例代码

          /// <summary>
/// 栅格数据集的读写
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_ReadRasterData_Click(object sender, EventArgs e)
{
string rPathLBT = @"D:\Data\World.tif";
IRasterDataset rDataset = DatasetFactory.OpenRasterDataset(rPathLBT, OpenMode.ReadOnly);
int bandCount = rDataset.GetBandCount();
IRasterBand rasterband = rDataset.GetRasterBand(bandCount - );
PixelDataType type = rasterband.GetRasterDataType(); int[] bandMap = new int[bandCount];
for (int i = ; i < bandCount; i++)
{
bandMap[i] = i + ;
}
UInt16[] buf = new UInt16[ * * bandCount];
bool ok = rDataset.Read(, , , , buf, , , type, bandCount, bandMap); //获取投影
string rPathGLL = @"D:\Data\World.tif";
IRasterDataset rDatasetGLL = DatasetFactory.OpenRasterDataset(rPathGLL, OpenMode.ReadOnly);
ISpatialReference spGLL = rDatasetGLL.SpatialReference;
string stGLL = spGLL.ExportToWkt(); //写入数据并赋值投影
string rPathSaveGLL = @"D:\Data\World_new.tif";
IRasterDataset rasterDatasetSave = DatasetFactory.CreateRasterDataset(rPathSaveGLL, , , bandCount, type, "GTIFF", null);
ok = rasterDatasetSave.Write(, , , , buf, , , type, bandCount, bandMap);
rasterDatasetSave.SpatialReference = SpatialReferenceFactory.CreateSpatialReference(stGLL); ((IDisposable)rasterDatasetSave).Dispose();
rasterDatasetSave = null;
ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(rPathSaveGLL);
mapControlMain.FocusMap.AddLayer(layer); mapControlMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

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

  1. PIE-SDK For C++栅格数据集的读写

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

  2. PIE SDK栅格RGB渲染

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

  3. PIE SDK栅格增强控制

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

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

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

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

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

  6. PIE SDK栅格矢量化算法

    1.算法功能简介 栅格数据矢量化较为复杂,如果由一幅扫描的数字化地图来建立矢量数据库,则需要经过数字图象处理,如边缘增强.细化.二值化.特征提取及模式识别才能获得矢量数据.人们通常将多色地图分色后逐个 ...

  7. PIE SDK栅格分级渲染

    1.  功能简介 栅格数据分级渲染是根据不同的分级规则,对像元值进行等级划分:并通过对每一级设置不同的显示符号和标注信息,从而达到分级显示的效果. 2.功能实现说明 2.1. 实现思路及原理说明 第一 ...

  8. PIE SDK栅格拉伸渲染

    1. 功能简介 栅格数据拉伸渲染是对指定的波段进行图像拉伸,并设置拉伸之后的颜色带,根据像元值和颜色带进行数据渲染. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 实例化拉伸渲染对象示例 ...

  9. PIE SDK栅格拉伸控制

    1. 功能简介 在我们的实际应用中,对于一般16bit或者更大比特深度的影像,像元值都是大于255的.这种情况下,RGB的显示器是不能够直接使用像元值进行显示的,需要将像元值换算到0~255的区间内以 ...

随机推荐

  1. 智能IC卡与终端(读卡器)之间的传输协议

    1.有两种协议 T=0,异步半双工字符传输协议 T=1,异步半双工块传输协议 终端一般都支持这两种协议,IC卡可以选择支持其中的一种.(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡 ...

  2. SQL语句学习积累·数据的操作

    数据的操作 select 取表中前五条数据 select top 5 from table_name 取表中前50%的数据 select top 50 percent from table_name ...

  3. Media Queries 媒体类型

    引用方法:1.<link rel="stylesheet" type="text/css" href="style.css" medi ...

  4. ORACLE-1:虚拟列影响alter修改表字段操作!

    一.问题: 昨天想要修改Oracle数据库中某张表的某个字段,发现怎么都修改不成功!!!并给出了如下提示: ORA-54031:要删除或修改的列由某个虚拟列表达式使用 二.啥是“虚拟列” [不可见的列 ...

  5. (转)mongodb学习(翻译1)

    原文地址:http://www.cnblogs.com/Johnzhang/archive/2013/09/10/3313582.html 学习mongodb,试着翻译写,英语能力有限,希望大家指正, ...

  6. 安装vmtools Error: Unable to execute "/usr/bin/vmware-uninstall-tools.pl.

    Error: Unable to execute "/usr/bin/vmware-uninstall-tools.pl. 安装vmware tools错误解决办法 很多朋友都在用vmwar ...

  7. vi/vim使用总结

    第一部份:一般模式可用的按钮说明,光标移动.复制粘贴.搜索取代等 移动光标的方法: h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移劢一个字符 k 或 向上箭头键( ...

  8. .Generator与其他异步处理方案

    1.Generator与其他异步处理方案 以前,异步编程的方法,大概有下面四种. 1.1 回调函数 JavaScript 语言对异步编程的实现,就是回调函数.所谓回调函数,就是把任务的第二段单独写在一 ...

  9. 【python】10分钟教你用Python做个打飞机小游戏超详细教程

    更多精彩尽在微信公众号[程序猿声] 我知道你们一定想先看效果如何 00 目录 整体框架 开始之前-精灵类Sprite 子弹类class Bullet 玩家飞机类class Player 敌机类clas ...

  10. count distinct 组合使用

    SELECT COUNT(DISTINCT Lbox_Sn) FROM Tab_History_Info