gdal工具(一)矢量栅格化工具 gdal_rasterize

gdal工具(一)矢量栅格化工具 gdal_rasterize

gdal_rasterize 可执行程序

  gdal_rasterize 是gdal提供的矢量栅格化工具,它能够用于将矢量文件(包括点、线、面等矢量图形)转换为栅格影像文件。支持的矢量文件包括shapefile、gml等。默认输出为Float64位的栅格影像。

用法

gdal_rasterize [-b band]* [-i] [-at]
{[-burn value]* | [-a attribute_name] | [-3d]} [-add]
[-l layername]* [-where expression] [-sql select_statement]
[-dialect dialect] [-of format] [-a_srs srs_def]
[-co "NAME=VALUE"]* [-a_nodata value] [-init value]*
[-te xmin ymin xmax ymax] [-tr xres yres] [-tap] [-ts width height]
[-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
     CInt16/CInt32/CFloat32/CFloat64}] [-q]
<src_datasource> <dst_filename>

参数

  • -b <band>:要写入值的波段。多个-b参数可用于写入成一个波段列表。默认情况下是写入到波段1。当创建新栅格数据该参数不使用。
  • -i: 反向栅格化。将固定的值或者与第一个特征图形相关值写入到影像中指定的多边形之外的部分。
  • -at: 启用all_touch栅格化选项,这样被线条或多边形接触的所有像素都将被更新,而不仅仅是线条呈现路径上的像素,或者其中心点位于多边形内的像素。默认为禁用正常呈现规则。
  • -burn <value>: 为所有对象写入到一个波段的数值。可以提供多个-burn选项,每一个波段写入一个值。
  • -a <attribute_name>:指定特征图形中一个属性域(值)用来作为写入的值。这个值会被写入到所有输出的波段。
  • -3d:将矢量数据中的Z坐标值设置为栅格图像的像元值。
  • -add: 增加新的数值到已有的栅格影像中,而不是写入新值。适用于热度图。
  • -l <layername>: 指示将用于输入特性的来自数据源的图层。可以多次指定,但必须指定至少一个图层名称或-sql选项。
  • -where <expression>: 一个可选的SQL,其中样式查询表达式用于选择要从输入层写入的特性。
  • -sql <select_statement>: 针对数据源计算的SQL语句,以生成要写入的特性的虚拟层。
  • -dialect <dialect>: SQL方言。在某些情况下,可以通过传递OGRSQL来使用(未经优化的)OGRSQL,而不是RDBMS的原生SQL。“SQLITE”方言也可以用于任何数据源。
  • -of <format>: 选择输出格式。从GDAL 2.3开始,如果没有指定,则从扩展名猜测格式(以前是GTiff)。使用短格式名称。
  • -a_nodata <value>: 为输出波段指定nodata值。
  • -init <value>: 用这些值重新初始化输出图像带。但是,输出文件中没有将其标记为nodata值。如果只给出一个值,则在所有波段使用相同的值。
  • -a_srs <srs_def>: 覆盖输出文件的投影。如果没有指定,将使用输入矢量文件的投影(如果可用)。使用此选项时,不会将输入矢量的SRS的特征重新投影到输出栅格的指定SRS,因此只使用此选项来纠正无效的源SRS。<srs_def>可以是任何常见的GDAL/OGR表单,包括完整的WKT、PROJ.4、EPSG:n或包含WKT的文件。当矢量文件没有或者投影不正确时可用。
  • -to NAME=VALUE:设置一个适合传递给GDALCreateGenImgProjTransformer2()的转换选项(放射变换数组)。当要将地理坐标转换为目标栅格像元坐标时用到。例如,这可以用来指定RPC相关的转换选项。
  • -co <NAME=VALUE>: 格式控制参数,该参数可以控制输出格式的选项,比如是否压缩等等。许多格式都有一个或多个可选创建选项,可用于控制所创建文件的详细信息。例如,GeoTIFF驱动程序支持创建选项来控制压缩(COMPRESSED=YES),以及是否应该平铺文件。可用的创建选项因格式驱动程序而异,一些简单的格式根本没有创建选项。格式支持的选项列表可以使用-formats命令行选项列出,但是格式文档是关于驱动程序创建选项的最终信息来源。有关每种格式的合法创建选项,可参阅栅格影像驱动器格式化特定文档。
  • -te <xmin> <ymin> <xmax> <ymax>: 设置输出图像地理坐标四至范围。这些值必须用地理单位表示。如果没有指定,输出文件的范围将是矢量图层的范围。
  • -tr <xres> <yres>: 设置图像分辨率。这些值必须用地理单位表示。 两者都必须是正值。不能同时与-ts使用。
  • -tap: 设置像元对齐。(目标对齐的像素)将输出文件的范围坐标对齐到-tr的值,以便对齐的范围包含最小范围。
  • -ts <width> <height>: 设置以像素和行为单位的输出文件大小。注意-ts不能与-tr一起使用
  • -ot <type>:强制输出波段为指定的数据类型。若无该参数,则默认输出数据类型为Float64
  • -q:设置安静状态,该状态下不输出其他非错误信息和进度信息。
  • <src_datasource>:任何OGR都支持可读数据源。
  • <dst_filename>:GDAL支持输出文件。必须支持更新模式访问。该文件将被创建(如果已经存在,则被覆盖):option:-of、-a_nodata、-init、-a_srs、-co、-te、-tr、-tap、-ts或-ot选项。

示例:

  1. 下面代码将会将mask.shp文件中的所有多边形写入到RGB TIFF文件work.tif中,并标记为红色(RGB = 255,0,0)。
    gdal_rasterize -b 1 -b 2 -b 3 -burn 255 -burn 0 -burn 0 -l mask mask.shp work.tif
  1. 下面代码将通过从footprints.shp矢量文件中ROOF_H属性中提取顶部高度,把所有类别为A的建筑物写入到输出的高程文件city_dem.tif中。
    gdal_rasterize -a ROOF_H -where 'class="A"' -l footprints footprints.shp city_dem.tif
  1. 下面的代码将把footprints.shp文件中的所有多边形写入到一个新的1000x1000的颜色设置为红色的rgb TIFF影像。注意-b选项没有使用;-burn选项的顺序决定了输出栅格的波段。
    gdal_rasterize -burn 255 -burn 0 -burn 0 -ot Byte -ts 1000 1000 -l footprints footprints.shp mask.tif
  1. 下面的代码将Sentinel2 L1C级产品中的云掩膜数据(gml文件)转换成与可见光影像四至范围、分辨率(10m)和投影方式相同的云掩膜栅格影像。该栅格影像的像元值100表示云,无效值为0。注意,-te选项中的四个值并不是图像的像素坐标范围,而是地理坐标范围。
    gdal_rasterize -burn 100 -tr 10 10 -te 499980. 4890240. 609780. 5000040. -a_nodata 0 -of GTiff -ot Byte -q MSK_CLOUDS_B00.gml cloud_mask_byte_3.tif

gml矢量栅格化会生成一个后缀名为gfs的文件,该文件记录了投影坐标系统、四至范围等信息。但有时原本带有投影信息的gml经过栅格化后得到的图像并没有投影信息,这时候可以将对应的gfs删掉,重新运行一次试试。如果gml文件中有投影信息,而栅格化后的影像没有投影信息,有可能是gml文件被xml.dom等xml解析器占用了,解决的方法是及时关闭被解析的gml文件,删掉gfs文件。

gfs文件内容示例

官方文档链接:
  https://gdal.org/programs/gdal_rasterize.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351