gdal的矢量栅格化接口GDALRasterizeLayers使用(一)
作者:朱金灿
来源:http://blog.csdn.net/clever101
gdal库提供了一个矢量栅格化接口函数GDALRasterizeLayers。今天让我们学习一下这个接口函数的使用。该函数的原型如下:
CPLErr GDALRasterizeLayers ( GDALDatasetH hDS,
int nBandCount,
int * panBandList,
int nLayerCount,
OGRLayerH * pahLayers,
GDALTransformerFunc pfnTransformer,
void * pTransformArg,
double * padfLayerBurnValues,
char ** papszOptions,
GDALProgressFunc pfnProgress,
void * pProgressArg
)
下面解释下该接口的参数:
hDS —— 输出的栅格数据,注意该数据必须以update模式打开
nBandCount —— 栅格数据要更新的波段数
panBandList —— 要更新的波段列表
nLayerCount —— 矢量图层数,对应参数矢量图层数组pahLayers的元素个数
pahLayers —— 矢量图层数组
pfnTransformer —— 将几何图形转换为栅格图像的像素/行列的转换器,如果该参数为空,则在内部创建一个。
pTransformArg ——将几何图形转换为栅格图像的像素/行列的转换器所用到的参数
padfLayerBurnValues—— 指定各个输出波段的输出像素值,因此一定是nBandCount个
papszOptions —— 控制栅格化的一系列选项值,是最复杂的一个参数,包括如下选项:
"ATTRIBUTE":
指定属性字段中的字段值作为栅格值写入栅格文件中,该值将输出到所有输出波段中。假如该值指定了,padfLayerBurnValues参数的值将失效并且padfLayerBurnValues参数可以设置为NULL。
"CHUNKYSIZE":
指定该运行操作的块的高度。该值越大所需的计算时间越小。如果该值没有设置或者设置为0则由GDAL的缓存大小根据公式:缓存所占的字节数/扫描函数的字节数得到。所以该值不会超出缓存的大小。
"ALL_TOUCHED":
设置为TRUE表示所有的像素接触到矢量中线或多边形(全部参与矢量化?),否则只是多边形中心或被brezenhams line algorithm算法(注:brezenhams line algorithm算法为一有名的矢量栅格化算法)选中的部分。默认值为FALSE。该选项暂时搞不明白,知道的同学请留言告诉我。
"BURN_VALUE_FROM":
gdal的函数说明说该参数是用于设置几何图形的Z值,就是高程值。我搞不明白设置该值对栅格化有何影响。
"MERGE_ALG":
设置重写或增加新值到栅格数据中。选择REPLACE为 重写,选择ADD为添加一个新值到已存在的栅格数据中。默认值为REPLACE。
pfnProgress —— gdal的进度函数
pProgressArg —— 传递给进度函数的参数值
返回值:
CE_None 表示处理成功,CE_Failure表示有错误发生。
值得注意的是,gdal的命令行程序gdal_rasterize也可以实现矢量栅格化,但该程序并不是直接调用GDALRasterizeLayers函数的,有兴趣的朋友可以看看gdal_rasterize的实现。计划以后提供一个GDALRasterizeLayers的使用例子程序。
参考文献:
2. GDAL源码剖析(四)之命令行程序说明二,作者李民录。
gdal的矢量栅格化接口GDALRasterizeLayers使用(一)的更多相关文章
- PIE SDK矢量栅格化算法
1.算法功能简介 矢量栅格化,由矢量数据向栅格数据的转换一般比较方便.对于点.线目标,由其所在的栅格行.列数表示,对于面状目标,则需判定落人该面积内的像元.通常栅格(像元)尺寸均大于原来坐标表示的分辨 ...
- GDAL读写矢量文件——Python
在Python中使用OGR时,先要导入OGR库,如果需要对中文的支持,还需要导入GDAL库,具体代码如下.Python创建的shp结果如图1所示. 图1 Python创建矢量结果 #-*- codin ...
- Python GDAL矢量转栅格详解
前言:挺久没有更新博客了,前段时间课程实验中需要用代码将矢量数据转成栅格,常见的点栅格化方法通过计算将点坐标(X,Y)转换到格网坐标(I,J),线栅格化方法主要有DDA算法.Bresenham算法等, ...
- C#调用GDAL算法进度信息传递
GDAL库中提供了很多的算法,同时也提供了进度条的参数.对于C++调用来说,应该没什么问题,但是对C#调用来说,在进度条这块需要写一个代理来进行传递.首先写一个简单的测试代码. 首先定义一个委托函数原 ...
- 利用GDAL实现影像的几何校正
一.概述 遥感影像和地理坐标进行关联的方式一般有好几种,一种是直接给出了仿射变换系数,即6个參数,左上角地理坐标,纵横方向上的分辨率,以及旋转系数.在这样的情况下,求出某一像素点的地理坐标非常easy ...
- osgEarth基础入门
osgEarth基础入门 2015年3月21日 16:19 osgEarth是基于三维引擎osg开发的三维数字地球引擎库,在osg基础上实现了瓦片调度插件,可选的四叉树调度插件,更多的地理数据加载插件 ...
- osgEarth基础入门(转载)
osgEarth基础入门 osgEarth是基于三维引擎osg开发的三维数字地球引擎库,在osg基础上实现了瓦片调度插件,可选的四叉树调度插件,更多的地理数据加载插件(包括GDAL,ogr,WMS,T ...
- Mapcontrol 遍历所有图层方法
mapcontrol 遍历所有图层方法 2011-04-29 19:51 通过IMap中的get_layers()可以遍历MapControl中当前的图层.此方法可以通过指定UID对图层进行过滤或者分 ...
- webkit模块介绍
一.Webkit模块 用到的第三方库如下: cairo 一个2D绘图库 casqt Unicode处理用的库,从QT中抽取部分代码形成的 expat 一个XML SAX解析器的库 freety ...
随机推荐
- springboot下静态资源的处理(转)
在SpringBoot中有默认的静态资源文件相关配置,需要通过如下源码跟踪: WebMvcAutoConfiguration-->configureResourceChain(method)-- ...
- [Algorithms] Binary Search Algorithm using TypeScript
(binary search trees) which form the basis of modern databases and immutable data structures. Binary ...
- js json简介(json的本质也是字符串)(用于服务器和客户端通信)
js json简介(json的本质也是字符串)(用于服务器和客户端通信) 一.总结 1.json的语法和js的语法非常像,只是json的键和值都是双引号,因为json的本质也是字符串 2.json是一 ...
- [Pug] Template Engine -- Jade/ Pug
Looking at the follow code: .wrapper - const upName = name && name.toUpperCase(); h2 | Hello ...
- 神奇校车 = topsage
https://post.smzdm.com/p/6356/ 适合6岁至99岁的小盆友看的<The Magic School Bus> (神奇校车) http://club.topsage ...
- [转载]Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9807125.html 很多人都说配置文件的配置很繁琐,如果存储在数据库就方便很多,可以通过自定义UI界面 ...
- 终端复用工具tmux的使用
tmux的作用在于终端复用. 1. 在server上启动一个bash.并在里面执行tmux 2. 通过ssh远程登录server,执行tmux attach,就会切换到server上的那个bash中, ...
- JavaScript中的一些细节 分类: C1_HTML/JS/JQUERY 2014-08-05 16:45 384人阅读 评论(0) 收藏
1.设置id / class等属性 用 setAttribute 设置一些常规属性如 id ,className 的时候经常不起作用,只能用 object.id = value 这样来设置 news_ ...
- Android shape画圆点
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...
- 配置java 环境变量(jdk)
java环境变量需要配置3个: JAVA_HOME:D:\Program Files (x86)\Java\jdk1.8 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAV ...