1.算法功能简介

  矢量栅格化,由矢量数据向栅格数据的转换一般比较方便.对于点、线目标,由其所在的栅格行、列数表示,对于面状目标,则需判定落人该面积内的像元.通常栅格(像元)尺寸均大于原来坐标表示的分辨率,所以若将栅格化数据再反转回去,则不可能达到原来矢量数据的精度.将矢量数据转化为栅格数据,主要用于空间分析、多边形叠置等.

  PIE支持矢量栅格化算法功能的执行,下面对该算法功能进行介绍。

2.算法功能实现说明

2.1 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2 算法参数

算法名称

矢量栅格化

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.VectorToRasterAlgo

参数结构体

VectorToRaster_Exchange_Info

参数说明

strInputFile

String

要转换的矢量数据文件

nFieldIndex

Int

转换所依赖的字段索引

strOutputFile

String

转换后的栅格数据文件路径

strOutputFileType

String

根据输出类型获得文件编码类型

.tif/.tiff——GTiff

.img—————HFA

其他—————ENVI

bStandardFile

bool

是否指定

FALSE : 基于指定大小 xy有效,  true : 基于影像大小 strStandardFile有效

x

Int

指定输出图像的列数

y

Int

指定输出图像的行数

strStandardFile

String

基准影像路径

如果选择基准影像,则输出图像的大小和基准影像大小相同

bHasNoData

bool

是否设置无效值

dbNoData

double

无效值

 

2.3 示例代码

数据路径

百度云盘地址下/PIE示例数据/栅格数据/ 08.图像分类/ distanceClassify-Julei.tif

         /// <summary>
/// 矢量栅格化算法 本示例数据用的是将distanceClassify-Julei.tif数据进行矢量化的结果进行栅格化
/// </summary>
public void VectorToRaster()
{
VectorToRaster_Exchange_Info info = new VectorToRaster_Exchange_Info();
info.strInputFile = @"D:\data\图像分类2\distanceClassify-Julei_Re.shp";
info.strOutputFile = @"D:\data\图像分类2\VectorToRaster.tif";
info.strOutputFileType = "GTiff";//GTiff、HAF或者ENVI
info.nFieldIndex = ;//选择字段的索引 info.bStandardFile = false;//是否指定;false:基于指定大小 xy有效;true:基于影像大小 strStandardFile有效
info.strStandardFile = "";//基准影像路径
info.x = ;//指定输出的栅格列数
info.y = ;//指定输出的栅格行数 info.bHasNoData = true;//是否设置无效值
info.dbNoData = ;//无效值 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.VectorToRasterAlgo");
if (algo == null) return; PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "矢量栅格化";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
if (result)
{
MessageBox.Show("矢量栅格化算法执行成功");
ILayer layer = LayerFactory.CreateDefaultLayer(info.strOutputFile);
if (layer == null) return;
m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}

2.4 示例截图

PIE SDK矢量栅格化算法的更多相关文章

  1. PIE SDK矢量点生成等值线、面

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

  2. PIE SDK矢量自定义渲染

    1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...

  3. PIE SDK矢量数据项查看

    1. 功能简介 矢量数据由大量要素信息构成,矢量数据项查看可以看到数据的属性表,下面就基于PIE SDK,介绍矢量数据项查看功能的实现. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 加载 ...

  4. PIE SDK水深提取算法

    1.算法功能简介 水深提取算法就是根据输入的水位设为d,dem设为h 这两个数据做一个差值运算,则水深计算公式为d-h;本示例中的是基于洞庭湖提取的水体矢量文件的范围来计算dem和水位25米的差值. ...

  5. PIE SDK缓冲区分析算法

    1.算法功能简介 缓冲区分析是指有点.线.面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后建立该图层与目标图层的叠加,进行分析而得到的所需的结果.他是用来解决邻近度问题的控件分析工具 ...

  6. PIE SDK创建金字塔算法

    1.算法功能简介 为栅格影像建立了金字塔,这些影像便能快速进行显示.除了在屏幕上显示外,金字塔还包含了很多其他信息.如果没有金字塔,那么在显示时就要访问整理栅格数据集,然后进行大量计算来选择哪些栅格像 ...

  7. PIE SDK图像重采样算法

    1.算法功能简介 图像重采样是指对采样后形成的由离散数据组成的数字图像按所需的像元位置或像元问距重新采样,以构成几何变换后的新图像.重采样过程本质上是图像恢复过程,它用输入的离散数字图像重建代表原始图 ...

  8. PIE SDK与IDL算法结合说明文档

    1.功能简介 IDL是一门简单易用的科学计算和可视化语言,包含大量的图形图像处理函数,尤其是同ENVI结合集成了该软件的大量功能,因此被广泛用于遥感.地信领域. 本示例程序实现了IDL算法与PIESD ...

  9. PIE SDK矢量数据编辑的撤销和回退

    1.功能简介 在数据的编辑过程中难免会出现失误,撤销和回退可以更好的编辑,下面对矢量数据编辑的撤销和回退功能进行介绍. 2.功能实现说明 2.1. 实现思路及原理说明 第一步 调用UndoComman ...

随机推荐

  1. angular6 表单验证

    这里使用的是模型驱动的表单 1.app.module.ts import { ReactiveFormsModule } from '@angular/forms'; @NgModule({ ... ...

  2. Codeforces F. Maxim and Array(构造贪心)

    题目描述: Maxim and Array time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  3. Eclipse中Git操作(七)

    1. Git插件 Eclipse在很早的版本就已内置了Git插件,所以我们不用再装. Preferences-->Team-->Git 2. 工程初始化为本地库 (1) 创建一个Maven ...

  4. Mybatis ResultMap多表映射DTO

    解决问题:n+1问题,之前我的习惯是拿到单表里面的数据,然后遍历,再拿到一个与其他表对应的逻辑上的外键,然后for循环去查找其他表的数据(原因是数据量小,没有在意,还有主要是不想建外键,你知道的,外键 ...

  5. 前端css命名规范----BEM

    一.什么是BEM BEM就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种前端命名方法论.这种巧妙的命名方法可以使css类对其他开发者来说更加透明 ...

  6. chrome 模拟发送请求的方法

    chrome f12 看到了web页面的请求,有时候想修改一下参数重新执行一下怎么办? 如果是get方法.参数不多可以直接在浏览器中打开.否则post方法参数多时很多人会复制到postman中执行,但 ...

  7. Function.prototype.call.bind

    在JavaScript中借用方法 在JavaScript中,有时候需要在一个不同的对象上重用一个函数,而不是在定义它的对象或者原型中.通过使用call(),applay()和bind(),我们可以很方 ...

  8. 浅析RPO漏洞攻击原理

    RPO的全称为Relative Path Overwrite,也就是相对路径覆盖,利用客户端和服务端的差异,通过相对路径来引入我们想要的js或者css文件,从而实现某种攻击. 就目前来看此攻击方法依赖 ...

  9. 把 DataTable 输出到 excel 文件

    ''' <summary> ''' 把 DataTable 输出到 excel 文件 ''' </summary> ''' <param name="dt_da ...

  10. thinkphp5.0 - nginx 配置

    上面介绍的是 thinkphp url 的访问方式,按照上面的访问方式配置nginx服务器配置,如下所示: server { listen 8090; server_name localhost 17 ...