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

2020-05-14  本文已影响0人  李大亨

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>

参数

示例:

  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

上一篇 下一篇

猜你喜欢

热点阅读