GDAL源码剖析之命令行程序说明

来源:互联网 发布:360网络急救箱 编辑:程序博客网 时间:2024/06/06 07:41

一、GDAL工具通用命令

下面的工具主要参考的GDAL官方网站中提供的帮助文档说明,此外还有我的一些经验,GDAL官方具体地址为:http://gdal.org/gdal_utilities.html。

在所有的GDAL工具集中都会支持下面的通用命令行参数,其形式一般是以两个减号(--)开始,下面详细介绍:

1.             –version

输出GDAL的版本信息,即版本号。

2.             --formats

输出GDAL支持的所有图像格式说明。包括只读和读写。格式支持描述如下:“ro”是只读驱动;“rw”是读写驱动(比如支持CreateCopy方法);“rw+”是读写和更新驱动(比如支持Create方法),支持所有的读写更新操作。

3.             --format format

输出GDAL单个格式驱动的细节信息。格式名需要是在--formats 后列出所要输出的格式名。比如GTiff,HFA,PCISK等。

4.             --optfile file

读取指定名称的文件并把其中的内容当成参数传入命令行列表。如果行首以#开头的行将被忽略。多字组成的参数(即中间有空格隔开的参数)需要用双引号来保正其为单一的参数。

5.             --config key value

设置配置,把指定键设置为某个值,从而不必把他们设置为环境变量。一些命令参数键是GDAL_CACHEMAX(用于缓存的内存有多少M)以及GDAL_DATA(gdal的数据路径)。比如在GDAL1.8之后,经常会发现打不开中文路径的文件,那么可以用这个来设置,具体为“—configGDAL_FILENAME_IS_UTF8 NO”。同时对于每一种驱动都会有各自的配置,具体参考各个驱动的说明。更多的配置选项参考该网址:http://trac.osgeo.org/gdal/wiki/ConfigOptions。

6.             --debug value

控制调试信息的打印输出。ON值表示允许调试信息输出,OFF值表示不要输出调试信息。

7.             --help-general

输出各个工具的命令行参数帮助信息。不同的命令输出的内容不同。

 

下面还有一些通用的命令,是用来创建文件来使用的。创建不同的格式需要的参数都是不相同的,尤其是在特殊的情况下,比如创建的Erdas的img格式需不需要使用压缩等特殊的需求。这些参数一般使用一个减号(-)开始。下面对这些参数进行一个简单的说明。

8.             -of format

选择要创建新的文件的格式。这个格式被指定为类似GTiff(GeoTIFF格式)或者HFA(ERDAS格式)。所有的支持格式列表可以用--formats 参数列出来。但是只有格式列表“(rw)”可以被写入和创建。许多工具如果没有指定,默认是创建GeoTIFF格式的文件。文件扩展名不会自动添加,如果没有指定文件名的后缀名,gdal一般不会添加任何扩展名。各个工具的命令行参数帮助信息。不同的命令输出的内容不同。

9.             -co NAME=VALUE

创建文件选项,许多格式会有一个或者更多的创建参数来控制文件创建的细节。比如GeoTIFF或者Erdas的img格式可以用创建参数控制压缩,或者控制是否用分片还是分带来进行存储。

可以使用的创建参数根据格式驱动不同而不同。而一些简单的格式根本就没有创建参数。虽然某个格式可以用"--format <format>"参数列出所有可用的参数列表,但是更详细的信息可以在格式介绍网页中查到。对于不同的文件格式,请参考对应文件格式说明网页。

10.       -a_srs SRS

指定输出文件的投影信息(坐标系统)。输出各个工具的命令行参数帮助信息。不同的命令输出的内容不同。有几个工具(如gdal_translate、gdalwarp)可以在命令行中通过类似-a_srs(分配输出SRS)、-s_srs(源SRS)、-t_srs(目标SRS)来指定坐标系统。这些工具允许以一系列格式定义坐标系统(SRS就是空间参考系统spatial reference system)。SRS通常可以使用下面几种方式来指定:

  • NAD27/NAD83/WGS84/WGS72:这些常见的地理坐标系统可以通过名字来直接使用。
  • EPSG:n:坐标系统(投影或者地理坐标)可以通过EPSG码来选择。例如EPSG 27700是英国国家网格。更多的EPSG坐标系统可以在GDAL数据文件gcs.csv和pcs.csv中找到(位于GDAL目录中的data文件夹中)。
  • PROJ.4定义:一个PROJ4定义字符串可以用作坐标系统定义。例如“+proj=utm +zone=11 +datum=WGS84”。注意在命令行中要保持Proj4字符串在一起作为一个单独的参数(一般用双引号引起来)。
  • OpenGIS WKT字符串: OpenGIS标准定义了一个文本格式来描述坐标系统作为简单要素规范的一个部分。这个格式是gdal中使用的坐标系统的内部工作格式。包含wkt坐标系统描述的文件的文件名可以被用来作为坐标系统参数,或者坐标系统元素本身也可以被用来作为命令行参数。
  • ESRI WKT字符串:ESRI 在他们的ArcGIS产品(ArcGIS中的.prj文件)中使用了一种经过精简OGC WKT的格式,而且这个格式被用在一个和wkt相似的风格的文件中。但是文件名要被加以ESRI::前缀。比如"ESRI::NAD 1927 StatePlane Wyoming West FIPS 4904.prj"。
  • 空间参考网址URLs:可以使用一个空间参考的网址来指定,如:http://spatialreference.org/ref/user/north-pacific-albers-conic-equal-area/。
  • 文件名:可以使用一个包含WKT、Proj.4的字符串,或者XML/GML格式的坐标系统定义的文件。

二、GDAL工具说明

1.             gdalinfo 输出文件信息

用法:

gdalinfo[--help-general] [-mm] [-stats] [-hist] [-nogcp] [-nomd]

         [-noct] [-nofl] [-checksum] [-proj4][-mdd domain]*

        [-sd subdataset] datasetname

参数说明:

gdalinfo程序输出gdal支持的栅格格式的一系列信息。

-mm

强制计算栅格每个波段的最大最小值。

-stats

读取和现实图像统计信息,如果指定该参数,将强制计算图像的统计信息,如各个波段的最大值、最小值、均值、标准差等。

-hist

输出所有波段的直方图信息。

-nogcp

禁止地面控制点(GCP)列表打印。这可能对大量的GCP的数据集来说是十分有用的。比如L1B AVHRR或者hdf4MODIS数据,这些数据包含了成千上万的地面控制点。

-nomd

禁止元数据打印,一些数据集可能包含极多的元数据字符串。

-noct

禁止输出颜色表。

-checksum

强制计算数据集中所有波段的checksum。

-mdd domain

输出指定区域的元数据信息。

-nofl

仅显示文件列表中的第一个文件信息。GDAL1.9.0开始支持该参数。

-sd subdataset

如果输入的数据集包含几个子数据集,那么将使用指定的数字来替代(从1开始)完整的子数据集名称。GDAL1.9.0开始支持该参数。

-proj4

输出文件的坐标系统按照PROJ.4类型的字符串输出。GDAL1.9.0开始支持该参数。

gdalinfo同时会输出如下的信息(如果有的话):

  • 当前文件的格式驱动信息
  • 栅格数据大小(行列数)
  • 文件的坐标系统(OGC WKT形式)
  • 图像关联到地理的转换参数(当前不包含旋转系数)
  • 地理上的边界坐标,如果可能的话还有基于经纬度的完整的地理转换参数(如果是GCPs就没有)
  • 地面控制点(GCPs)
  • 所有的(包括子栅格的元数据)文件元数据
  • 波段数据类型
  • 波段颜色信息(RGB,Gray等)
  • 波段颜色表信息
  • 波段瓦片大小(文件块大小)
  • 波段描述
  • 波段最大最小值(已经经过计算的)
  • 波段CheckSum值(已经经过计算的)
  • 波段无意义值(NODATA值)
  • 波段可获得的略缩图分辨率
  • 波段单位类型(如:波段的高程是米制还是英制)
  • 波段的假颜色列表

举例:

gdalinfoF:/Work/Data/utm.tif

Driver:GTiff/GeoTIFF

Sizeis 512, 512

CoordinateSystem is:

PROJCS["NAD27/ UTM zone 11N",

    GEOGCS["NAD27",

       DATUM["North_American_Datum_1927",

            SPHEROID["Clarke1866",6378206.4,294.978698213901]],

        PRIMEM["Greenwich",0],

       UNIT["degree",0.0174532925199433]],

   PROJECTION["Transverse_Mercator"],

   PARAMETER["latitude_of_origin",0],

   PARAMETER["central_meridian",-117],

    PARAMETER["scale_factor",0.9996],

   PARAMETER["false_easting",500000],

    PARAMETER["false_northing",0],

    UNIT["metre",1]]

Origin= (440720.000000,3751320.000000)

PixelSize = (60.000000,-60.000000)

CornerCoordinates:

UpperLeft  ( 440720.000, 3751320.000) (117d38'28.21"W, 33d54'8.47"N)

LowerLeft  ( 440720.000, 3720600.000) (117d38'20.79"W, 33d37'31.04"N)

UpperRight (  471440.000, 3751320.000)(117d18'32.07"W, 33d54'13.08"N)

LowerRight (  471440.000, 3720600.000)(117d18'28.50"W, 33d37'35.61"N)

Center      ( 456080.000, 3735960.000) (117d28'27.39"W, 33d45'52.46"N)

Band1 Block=512x16 Type=Byte, ColorInterp=Gray

2.             gdal_translate 格式转换

用法:

gdal_translate[--help-general]

       [-ot{Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/

             CInt16/CInt32/CFloat32/CFloat64}][-strict]

       [-of format] [-b band] [-mask band][-expand {gray|rgb|rgba}]

       [-outsize xsize[%] ysize[%]]

       [-unscale] [-scale [src_min src_max[dst_min dst_max]]]

       [-srcwin xoff yoff xsize ysize][-projwin ulx uly lrx lry]

       [-a_srs srs_def] [-a_ullr ulx uly lrxlry] [-a_nodata value]

       [-gcp pixel line easting northing[elevation]]*

       [-mo "META-TAG=VALUE"]* [-q][-sds]

       [-co "NAME=VALUE"]* [-stats]

       src_dataset dst_dataset

参数说明:

gdal_translate工具可以用来在不同格式间转换栅格数据。同时还可以做一些诸如提取子栅格、重采样和数据类型转换等操作。

-ottype

指定输出波段的数据类型。

-strict:

对于这转换过程中出现丢失数据等错误直接报错,不进行忽略处理。之前的参数叫-not_strict,表示对其进行宽大处理,不报错。

-of format:

选择输出格式。默认是GeoTiff(GTiff)。注意,指定的时候用格式简称。

-b band:

选择一个波段来输出。波段号从1开始编号。多个 -b 参数可以用于选择输出某几个波段或者重新对波段进行排序。从GDAL1.8.0开始,波段可以设置为“mask,1”(或者直接mask)来讲输入数据集的第一个波段作为一个mask波段来使用。

-mask band:

(从GDAL1.8.0开始)(GDAL >= 1.8.0)选择一个输入波段来作为创建输出数据的掩码波段。波段数是从1开始,band可以设置为none,用来避免复制整个输入数据集作为掩码,否则在默认情况下(“auto”),除非掩码是一个alpha通道,或者使用参数-b mask来进行输出,参数band也可以设置为“mask,1”(或者直接mask)来讲输入数据集的第一个波段作为一个mask波段来使用。

-expand gray|rgb|rgba:

(从GDAL1.6.0开始)将带有颜色表信息的单波段文件展开为RGB三波段文件或者RGBA四波段文件。对于输出格式为JPEG,JPEG2000,MrSID,ECW等不支持颜色表的数据来说很有用。灰度值(从GDAL1.7.0开始)也可以使用颜色表展开为一个数据集,但输出文件中仅仅包含灰度级别的一个索引。

-outsize xsize[%] ysize[%]:

设置输出文件的大小。大小以象元为单位,除非用“%”来标记,这时,表示的是输出为输入图层大小的百分比。

-scale [src_min src_max [dst_mindst_max]]:

重新组织输入象元的值。将它们从src_min~src_max范围内缩放到dst_min ~ dst_max范围内。如果省略,输出范围将为0~255。输入范围将由源数据自动计算。

-unscale:

大概意思是,不对波段中的数据进行缩放转换,在使用-ot设置输出文件类型时这个参数往往是很有用的。(这个参数的英文有点绕口,不好翻译,有知道的同学麻烦告诉我一下)。

-srcwin xoff yoff xsize ysize:

选择一个取值窗口,通过该窗口在原图像中的行列位置来拷贝数值。

-projwin ulx uly lrx lry:

选择一个取值窗口,通过该窗口在原图像中地理坐标范围来拷贝数据(类似srcwin)。参数中的四个值,使用的投影坐标。

-a_srs srs_def:

给输出文件投影强制指定坐标系。srs_def可以是任何常用的GDAL/OGR格式的投影信息,如:WKT、Proj4、EPSG:n 或者一个包含着wkt的文件的文件名。

-a_ullr ulx uly lrx lry:

强制指定输出文件的空间转换边界范围(图像的四至范围)。而将原图像的四至范围忽略掉。

-a_nodata value:

指定一个无意义值到输出波段。从GDAl1.8.0开始,可以设置为none来使用原文件中的nodata值作为输出文件的nodata值。

-mo "META-TAG=VALUE":

如果可以,给输出数据设置一个元数据的键和其对应的值。

-co "NAME=VALUE":

通过一个创建参数来指定输出格式特殊创建要求。多个-co 参数可以组合起来使用。创建参数可以参考各个数据格式本身说明。

-gcp pixel line easting northingelevation:

添加指定地面控制点到输出数据集。这个选项可以被多次使用,以提供一系列的地面控制点GCPs 。GCP格式为:列号 行号 横坐标 纵坐标 高程值。

-q:

安静模式,不输出进度信息以及其他非错误信息。

-sds:

拷贝文件中所有子数据集到各自的输出文件中。通常这个参数用在HDF或者OGDI这样有子数据集的格式中。

-stats:

强制计算(重新计算)数据的统计信息。自GDAL1.8.0开始支持该参数。

src_dataset:

输入数据集名称,可以是文件名,或者是一个多数据集文件中的一个子数据集的URL地址(比如HDF数据集中的一个子数据集)。

dst_dataset:

输出文件名。

举例:

将utm.tif转换为一个以分块存储的GeoTiff文件。

gdal_translate -of GTiff-co "TILED=YES" utm.tif utm_tiled.tif

创建一个JPEG压缩的Tiff图像,同时使用内部掩码从一个RGBA数据集中。

gdal_translate rgba.tifwithmask.tif -b 1 -b 2 -b 3 -mask 4 -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR--config GDAL_TIFF_INTERNAL_MASK YES

创建一个RGBA图像从一个RGB数据中使用一个掩码。

gdal_translatewithmask.tif rgba.tif -b 1 -b 2 -b 3 -b mask

3.             gdaladdo 建立金字塔

用法:

gdaladdo[-r {nearest,average,gauss,cubic,average_mp,average_magphase,mode}]

         [-ro] [-clean] [--help-general]filename levels

参数说明:

gdaladdo工具可以用于为大多数支持的格式建立或者重建金字塔。可以使用下面几种重采样算法中的一种来进行缩小重采样操作。

-r {nearest(default),average,gauss,cubic,average_mp,average_magphase,mode}:

指定重采样方法,分别是最邻近(默认),均值,高斯,立方卷积等。

-ro:

(从GDAL1.6.0开始有效),以只读的方式打开数据,来创建外部金字塔(特别对于GeoTIFF来说)。

-clean:

删除所有的金字塔。(从GDAL1.7.0开始有效)。

filename:

要建立金字塔的文件名。

levels:

要建立略缩图的层号的列表。 如果使用-clean选项是将被忽略。

模式,(从GDAL1.6.0开始有效)选择最常用的重采样方式。average_mp 是不适合使用的, Average_magphase用于复数数据空间的图像。Nearest 和 average 用于普通的图像。Nearest 使用最邻近采样(简单采样),它计算所有的有效值的均值来进行计算。Cubic 采样(从GDAL1.7.0开始有效)使用一个4x4的近似立方卷积内核。 Gauss 采样(从GDAL1.6.0开始有效)使用高斯内核计算。这种对于高对比度和图案边界比较明显的图像效果比较好。一般建议的采样比值是2,4,8,…,使用3x3重采样作为高斯采样的计算窗口。

gdaladdo将遵守正确NODATA_VALUES元组(特殊的数据集元数据),因此,只有一个给定的的RGB三元组(在一个RGB图像的情况下)作为NODATA值,而不是每个波段有独立的NODATA值。

选择一个缩放级别值如2表示略缩图缩放程度是源图像每个维上分辨率的1/2。如果文件在所选缩放级别上已经存在略缩图,那么这个缩放级别上的缩略图将被重新计算并覆盖写入。

一些格式根本不支持金字塔。所以许多格式在文件以外以扩展名.ovr存储金字塔,TIFF就是如此。GeoTIFF格式直接把金字塔存储到原有的文件中。除非使用-ro标记来指定。在TIFF中创建金字塔可以通过用COMPRESS_OVERVIEW配置参数进行压缩。所有GeoTIFF支持的压缩方法,可以在这里获得(如:--config COMPRESS_OVERVIEW DEFLATE)。

大多数驱动也支持一个备用的略缩图格式(使用的是Erdas图像格式)。要使用这个备用格式使用USE_RRD=YES 来设置参数。这样做会把GDAL程序创建的金字塔放到一个辅助的.aux文件中使得可以该金字塔可以直接在Erdas中使用或者也可以在ArcGIS中使用。关于如何使用GDAL创建Erdas格式的金字塔,请参考我的博文:http://blog.csdn.net/liminlu0314/article/details/6127755。

举例:

在所指定的TIFF文件内部创建金字塔:

gdaladdo -r average abc.tif 2 4 8 16

从一个ERDAS.IMG文件中创建一个外部的压缩的金字塔文件:

gdaladdo --config COMPRESS_OVERVIEWDEFLATE erdas.img 2 4 8 16

为给定JPEG文件创建一个Erdas Imagine 格式金字塔:

gdaladdo --config USE_RRD YES airphoto.jpg3 9 27 81




1. gdalwarp 图像纠正

用法:

gdalwarp [--help-general] [--formats]

    [-s_srs srs_def] [-t_srs srs_def] [-to "NAME=VALUE"]

    [-order n | -tps | -rpc | -geoloc] [-et err_threshold]

    [-refine_gcps tolerance [minimum_gcps]]

    [-te xmin ymin xmax ymax] [-tr xres yres] [-tap] [-ts width height]

    [-wo "NAME=VALUE"] [-ot Byte/Int16/...] [-wt Byte/Int16]

    [-srcnodata "value [value...]"] [-dstnodata "value [value...]"] -dstalpha

    [-r resampling_method] [-wm memory_in_mb] [-multi] [-q]

    [-cutline datasource] [-cl layer] [-cwhere expression]

    [-csql statement] [-cblend dist_in_pixels] [-crop_to_cutline]

    [-of format] [-co "NAME=VALUE"]* [-overwrite]

    srcfile* dstfile

参数说明:

gdalwarp工具是一个图像镶嵌、重投影、和纠正的工具。程序可以重投影到任何支持的投影。

-s_srs srs def:

设置原始空间参考,坐标系统是可以使用函数OGRSpatialReference.SetFromUserInput()调用的就行,包括EPSG PCSPROJ4或者后缀名为.prfwkt文本文件。

-t_srs srs_def:

设置目标空间参考,坐标系统是可以使用函数OGRSpatialReference.SetFromUserInput()调用的就行,包括EPSG PCSPROJ4或者后缀名为.prfwkt文本文件。 

-to NAME=VALUE:

设置转换参数选项,具体选项参考函数GDALCreateGenImgProjTransformer2()支持的选项。 

-order n:

多项式纠正次数(13),默认的多项式次数根据输入的GCP点个数自动计算。 

-tps:

强制使用TPSthin plate spline)纠正方法来纠正图像。 

-rpc: 

强制使用RPC参数纠正。 

-geoloc:

强制使用Geolocation数组。(这个没用过,不太清楚)

-et err_threshold:

指定变换的近似误差阈值,默认为0.125个像元大小(使用像元为单位)。 

-refine_gcps tolerance minimum_gcps:

(GDAL >= 1.9.0) refines the GCPs by automatically eliminating outliers. Outliers will be eliminated until minimum_gcps are left or when no outliers can be detected. The tolerance is passed to adjust when a GCP will be eliminated. Not that GCP refinement only works with polynomial interpolation. The tolerance is in pixel units if no projection is available, otherwise it is in SRS units. If minimum_gcps is not provided, the minimum GCPs according to the polynomial model is used. (这个参数不太清楚,没用过)

-te xmin ymin xmax ymax:

设置输出文件的地理范围(在目标空间参考中)。

-tr xres yres:

设置输出图像的分辨率。 

-tap:

(GDAL >= 1.8.0) (target aligned pixels) align the coordinates of the extent of the output file to the values of the -tr, such that the aligned extent includes the minimum extent. 

-ts width height:

设置输出文件的宽高。如果宽或者高有一个为0那么将自动计算一个值,注意-ts-tr不能同时使用。 

-wo "NAME=VALUE":

设置纠正选项。具体参考GDALWarpOptions::papszWarpOptions的帮助文档。 

-ot type:

指定输出波段的数据类型。 

-wt type:

计算的数据类型。 

-r resampling_method:

重采样方式,主要有下面几种方式:

near: 

最邻近采样方法(默认值,算法较快,但是质量较差)。

bilinear: 

双线性内插采样。

cubic: 

立方卷积采样。 

cubicspline: 

立方样条采样。 

lanczos: 

Lanczos 窗口辛克采样。 

-srcnodata value [value...]:

设置输入波段的Nodata值,可以为不同的波段指定不同的值。。如果有多个值,就需要把他们用双引号括起来,以保持在命令参数中作为单一参数输入。掩膜值不会在内插中处理。 

-dstnodata value [value...]:

设置输出波段的Nodata值。 

-dstalpha:

创建一个Alpha波段在输出文件中。 

-wm memory_in_mb:

设置纠正API使用的内存大小,以MB为单位。 

-multi:

是否使用多线程纠正图像,多线程用来分块处理,同时在读取和写入图像均使用多线程技术。 

-q:

不在控制台输出提示信息。

-of format:

输出文件格式,默认为GeoTiff。 

-co "NAME=VALUE":

指定创建图像选项,具体参考不同的格式说明。 

-cutline datasource:

使用使用OGR支持的矢量数据进行裁切图像。 

-cl layername:

指定裁切矢量的图层名称。

-cwhere expression:

从裁切矢量中根据属性表查询指定的要素来裁切图像。 

-csql query:

使用SQL语句来从裁切矢量的属性表中查询要素来裁切图像。 

-cblend distance:

Set a blend distance to use to blend over cutlines (in pixels).(这个参数不太清楚,没用过) 

-crop_to_cutline:

(GDAL >= 1.8.0) 使用矢量边界的外接矩形大小作为输出影像的范围。

-overwrite:

(GDAL >= 1.8.0) 如果结果数据存在,那么覆盖结果数据。

srcfile:

输入数据文件名(可以为多个,使用空格隔开)。 

dstfile:

输出数据文件名。 

如果输出文件已经存在,那么镶嵌到这个文件是可以的。但是数据的空间范围等信息不会被修改,如果要修改为新的数据的空间信息,那么需要使用-overwrite选项来覆盖原文件。

举例:

在此不再列举例子,后面会对gdalwarp做一个比较详细的介绍。

2. gdaltindex 创建一个栅格文件块索引Shp文件

用法:

gdaltindex [-tileindex field_name] [-write_absolute_path] [-skip_different_projection] index_file [gdal_file]*

参数说明:

这个程序创建一个shape文件,里面记录每一个输入的栅格文件的文件路径,以及栅格数据的落图文件。这个输出文件主要是为MapServer 来使用的。应该是创建栅格图像的四至范围矢量文件。

· 如果shape文件不存在会自己创建,如果存在,将被追加到存在的文件中。 

· 默认的索引字段为location。 

· 默认填写的是栅格文件名,如果指定了-write_absolute_path 选项,那么写入的是栅格文件的绝对路径。

· 如果指定-skip_different_projection参数,只用相同的投影的栅格文件会被插入到tileindex文件中。 

· 生成一个简单的矩形多边形,其坐标系统和栅格的坐标系统相同。 

举例:

gdaltindex doq_index.shp doq/*.tif

3. gdalbuildvrt 创建VRT数据

用法:

gdalbuildvrt [-tileindex field_name] [-resolution {highest|lowest|average|user}]

             [-tr xres yres] [-tap] [-separate] [-allow_projection_difference] [-q]

             [-te xmin ymin xmax ymax] [-addalpha] [-hidenodata]

             [-srcnodata "value [value...]"] [-vrtnodata "value [value...]"]

             [-input_file_list my_liste.txt] [-overwrite] output.vrt [gdalfile]*

参数说明:

从指定的输入栅格文件中创建一个VRT数据。从gdal1.6开始支持。

该工具没有进行说明。

4. gdal_contour DEM生成等高线

用法:

gdal_contour [-b <band>] [-a <attribute_name>] [-3d] [-inodata]

                    [-snodata n] [-f <formatname>] [-i <interval>]

                    [-off <offset>] [-fl <level> <level>...]

                    [-nln <outlayername>]

                    <src_filename> <dst_filename> 

参数说明:

使用DEM生成等高线矢量数据。

-b band:

指定要处理的波段序号,默认为第一个波段。

-a name:

指定一个属性表的字段名称用于保存高程值,如果不指定则不会在属性表中填写。 

-3d: 

强制使用3D定点而不是2D,即高程值将被写入等高线矢量中。

-inodata: 

忽略任何nodata值。

-snodata value:

设置输入文件的nodata值。 

-f format: 

创建输出矢量的格式,默认为ESRIshape文件。

-i interval:

等高线间距。

-off offset:

设置高程相对系数。

-fl level: 

Name one or more "fixed levels" to extract. 

-nln outlayername: 

指定输出矢量文件的图层名称,默认为“contour”

举例:

使用dem.tif生成一个等高距为10米的等高线矢量文件contour.shp。

gdal_contour -a elev dem.tif contour.shp -i 10.0

5. gdaldem DEM算法

用法:

- To generate a shaded relief map from any GDAL-supported elevation raster :

    gdaldem hillshade input_dem output_hillshade

                [-z ZFactor (default=1)] [-s scale* (default=1)]"

                [-az Azimuth (default=315)] [-alt Altitude (default=45)]

                [-alg ZevenbergenThorne]

                [-compute_edges] [-b Band (default=1)] [-of format] [-co "NAME=VALUE"]* [-q]

- To generate a slope map from any GDAL-supported elevation raster :

    gdaldem slope input_dem output_slope_map"

                [-p use percent slope (default=degrees)] [-s scale* (default=1)]

                [-alg ZevenbergenThorne]

                [-compute_edges] [-b Band (default=1)] [-of format] [-co "NAME=VALUE"]* [-q]

- To generate an aspect map from any GDAL-supported elevation raster

  Outputs a 32-bit float raster with pixel values from 0-360 indicating azimuth :

    gdaldem aspect input_dem output_aspect_map"

                [-trigonometric] [-zero_for_flat]

                [-alg ZevenbergenThorne]

                [-compute_edges] [-b Band (default=1)] [-of format] [-co "NAME=VALUE"]* [-q]

- To generate a color relief map from any GDAL-supported elevation raster

    gdaldem color-relief input_dem color_text_file output_color_relief_map

                [-alpha] [-exact_color_entry | -nearest_color_entry]

                [-b Band (default=1)] [-of format] [-co "NAME=VALUE"]* [-q]

    where color_text_file contains lines of the format "elevation_value red green blue"

    

- To generate a Terrain Ruggedness Index (TRI) map from any GDAL-supported elevation raster:

    gdaldem TRI input_dem output_TRI_map

                [-compute_edges] [-b Band (default=1)] [-of format] [-q]

            

- To generate a Topographic Position Index (TPI) map from any GDAL-supported elevation raster:

    gdaldem TPI input_dem output_TPI_map

                [-compute_edges] [-b Band (default=1)] [-of format] [-q]

            

- To generate a roughness map from any GDAL-supported elevation raster:

    gdaldem roughness input_dem output_roughness_map

                [-compute_edges] [-b Band (default=1)] [-of format] [-q]

参数说明:

该工具提供了7个模块。分别如下:

hillshade(山地阴影)

用来生成山地阴影图像。

slope

用来生成坡度图像。 

aspect

用来生成坡向图像。 

color-relief

用来生成一个颜色渲染地图。

TRI

用来生成地表耐用指数(TRI)图像。

TPI

用来生成地形位置指数(TPI)图像。

roughness

用来生成粗糙度图像。

下面这些选项是通用选项:

input_dem:

输入DEM数据。

output_xxx_map:

输出处理的结果数据。 

-of format:

输出文件格式,默认为GeoTiff。 

-compute_edges:

(GDAL >= 1.8.0) 处理栅格边界数据和nodata附近的数据。 

-alg ZevenbergenThorne:

(GDAL >= 1.8.0) 使用Zevenbergen & Thorne 规则代替Horn规则计算坡度坡向。研究表明Zevenbergen & Thorne用于平缓的地形,而Horn在处理比较粗糙的地形比较好。

-b band:

选择要处理的波段序号,默认为1. 

-co "NAME=VALUE":

创建输出文件选项,根据创建的文件格式不同而不同。 

-q:

安静模式,不输出进度信息。

在所有的算法中,除了颜色渲染,其他的算法全部是基于一个3x3的窗口运算,如果在这个窗口中有一个值为nodata,那么结果值就是nodata,在GDAL1.8之后,如果指定了-compute_edges那么会在遇到nodata值时,会使用插值方式来确定nodata值,然后再进行处理。

算法模块

山地阴影

这个模块输出是一个8位栅格图,他在地形可视化中非常有用。您可以指定太阳高度角和太阳方位角海拔高度,垂直夸张因子和比例因子来改变结果。0作为输出的nodata值,具体的其他参数如下:

-z zFactor:

垂直夸张系数。

-s scale:

垂直系数的单位,如果水平单位是度,比如WGS84投影下的经纬度,可以将该参数设置为111120那么垂直单位是米,如果设置为370400,那么垂直单位为英尺。 

-az azimuth:

光线方位角,度单位,0为正上方,90度为东边(右边)以此类推,默认值为315度。 

-alt altitude:

光线的高度角,度单位,90度为DEM的正上方,0度为水平。 

坡度

此模块将DEM栅格计算输出坡度值是32位浮数的栅格图像。你必须指定你想要的坡度值类型的选项:度或百分比坡度。同时也可以提供一个比例因子。-9999的值是用来作为输出NODATA值。以下具体的选项可供选择: 

-p :

如果指定该选项,将使用坡度百分比计算,其他情况下使用度单位计算。 

-s scale:

垂直系数的单位,如果水平单位是度,比如WGS84投影下的经纬度,可以将该参数设置为111120那么垂直单位是米,如果设置为370400,那么垂直单位为英尺。  

坡向

该模块输出为一个32位浮点数的栅格数据,其值范围为0度到360度之间的坡向图, 0°表示坡向超正北方, 90°坡向朝向正东方,180°坡向朝向正南方,270°坡向朝向正西方。-9999表示无效值包括平地即坡度等于0的地方,详细的参数说明如下: 

-trigonometric:

返回三角角度而不是方位,0°是指北,90°东,180°西,270°南。 

-zero_for_flat:

返回0表示平地,而不是-9999。

如果使用这两个选项,使用gdaldem工具生成的坡度坡向结果同GRASS中的r.slope.aspect工具生成的结果一致。否则结果和Matthew Perry的aspect.cpp工具计算的结果一致。

color-relief

该功能是使用DEM数据和一个文本存储的颜色配置文件计算输出一个三波段(RGB)或者四波段(RGBA)的栅格图像。颜色配置文件中存储的是高程值和其对应的颜色值。默认情况下,给定的两个高程值之间的颜色使用该高程值对应的颜色插值来进行计算。参数-exact_color_entry或者参数-nearest_color_entry可以避免使用线性插值来确定从配置文件中没有找到对应的颜色值。

同时还有下面的选项可以使用:

color_text_file:

基于文本的颜色配置文件 

-alpha :

在输出文件中添加Alpha通道 

-exact_color_entry :

使用严格的匹配,在配置文件中搜索对应的高程值,如果没有找到匹配的颜色,使用“0,0,0,0”来进行填充。 

-nearest_color_entry :

在颜色配置文件中使用与RGBA颜色相近的颜色进行填充

color-relief是支持输出VRT格式的,在这种情形下,会将颜色配置文件转换为一个LUTLook up table颜色查找表)。值得注意的是,使用百分比指定的高程值会被转换为绝对高程值。

基于文本格式的颜色配置文件一般每行都有四列,分别是:高程值,红,绿,蓝(0-255之间)。高程值可以是任何浮点数,或者使用nv来表示无效值。高程值统一可以使用百分比来表示,0%表示DEM中的最小值,100%表示DEM数据中的最大值。

此外还有一列是可选的就是Alpha部分,如果没有指定,默认值为255,表示不透明。同时每列之间的分隔符可以是:逗号(,),制表符(tab键),空格( ),冒号(:),以上符合均为英文输入法下的符号。通常使用的颜色单词也可以用来替换RGB值,包括: white白色, black黑色, red红色, green绿色, blue蓝色, yellow黄色, magenta品红, cyan青色, aqua浅绿色, grey/gray灰色, orange橙色, brown棕色, purple/violet 紫色和indigo靛蓝色。

从GDAL1.8.0开始,GMT.cpt调色板文件页可以支持(仅在COLOR_MODEL = RGB时可用)。

注意:颜色配置文件的句法同GRASS中的r.colors工具一致,ESRI的HDR颜色表文件(.clr)也是这种格式,Alpha部分的支持是GDAL的一个特殊扩展。

颜色配置文件示例: 

3500   white

2500   235:220:175

50%   190 185 135

700    240 250 150

0      50  180  50

nv     0   0   0   0 

TRI

该工具生成一个单波段的栅格图像,TRI是地形粗糙指数(Terrain Ruggedness Index)的缩写,代表的是中心点象元与周围8个象元点的高程差的绝对值的平均值。(参考Wilson et al 2007, Marine Geodesy 30:3-35)。

输出文件中的-9999代表无效值。该功能没有其他选项。

TPI

该工具生成一个单波段的栅格图像,TPI地形方位指数(Topographic Position Index)的缩写,代表的是中心点象元高程与周围8个象元点的高程平均值的差值。(参考Wilson et al 2007, Marine Geodesy 30:3-35)。

输出文件中的-9999代表无效值。该功能没有其他选项。

roughness

该工具使用DEM数据计算一个单波段的栅格图像, 粗糙度是指当前窗口中的最大值和最小值的差值。(参考Wilson et al 2007, Marine Geodesy 30:3-35)。

输出文件中的-9999代表无效值。该功能没有其他选项。

6. gdal_rasterize 矢量栅格化

用法:

gdal_rasterize [-b band]* [-i] [-at]

       [-burn value]* | [-a attribute_name] [-3d]

       [-l layername]* [-where expression] [-sql select_statement]

       [-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>

参数说明:

该程序将矢量几何图形(点,线,面)栅格化到栅格波段中。矢量必须是OGR库支持的矢量格式。注意的是矢量数据和栅格数据必须具有相同的坐标系统,不支持动态重投影功能。从GDAL1.8.0开始,支持创建结果图像,必须使用-tr或者-ts选项才行。

-b band:

要写入的栅格波段,可以使用-b参数来进行多选,默认是写入第一个波段中。

-i:

栅格反转,. Burn the fixed burn value, or the burn value associated with the first feature into all parts of the image not inside the provided a polygon.

-at:

Enables the ALL_TOUCHED rasterization option so that all pixels touched by lines or polygons will be updated not just those one the line render path, or whose center point is within the polygon. Defaults to disabled for normal rendering rules.

-burn value:

栅格象元值,将所有的对象都用该值写入波段中,可以使用一个列表,来指定每个波段写入的象元值。

-a attribute_name:

指定属性字段中的字段值作为栅格值写入栅格文件中。

-3d:

将坐标点的Z值写入栅格中,假如参数-burn-a attribute_name 被指定,那么该参数将会无效,目前仅仅支持3D的点和线数据。

-l layername:

指定矢量文件中的图层名作为输入要素,可以指定多次,但是至少有一个图层名或者-sql必须被指定。

-where expression:

SQL WHERE格式的查询语句,从指定的图层中选择特殊的要素。

-sql select_statement:

使用SQL语句来指定矢量数据中那些要素将要被栅格化。

-of format:

(GDAL >= 1.8.0)输出文件格式,默认为GeoTiff格式,使用短格式名称。

-a_nodata value:

(GDAL >= 1.8.0) 指定输出文件的无效值。

-init value:

(GDAL >= 1.8.0) 指定初始化栅格波段中的象元值,但是该值不能作为输出文件的无效值,如果只指定了一个值,那么其他的波段都会使用该值来填充。

-a_srs srs_def:

(GDAL >= 1.8.0) 覆盖输出文件的投影,如果没有指定,将使用输入的矢量文件中的投影作为输出投影,如果输入和输出投影不一致,将尝试重投影矢量。该参数的格式可以是GDAL/OGR支持的各种投影格式,如完整的WKTPROJ.4EPSG:n或者存储WKT的文本文件。

-co "NAME=VALUE":

(GDAL >= 1.8.0) 创建图像选项,具体参考不同的栅格格式。

-te xmin ymin xmax ymax :

(GDAL >= 1.8.0) 设置地理范围,该值必须使用地理单位,如果没有指定,该范围同输入的矢量图层范围一致。

-tr xres yres :

(GDAL >= 1.8.0)设置输出分辨率,该值必须是有地理单位,两个必须都是正数。

-tap:

(GDAL >= 1.8.0) (target aligned pixels) align the coordinates of the extent of the output file to the values of the -tr, such that the aligned extent includes the minimum extent.(不清楚该参数,同gdalwarp中的-tap

-ts width height:

(GDAL >= 1.8.0) 设置输出文件大小,注意使用-ts是不能同时使用-tr

-ot type:

(GDAL >= 1.8.0) 输出波段的数据类型,默认为64位浮点数。

-q:

(GDAL >= 1.8.0) 不输出进度信息和错误信息。

src_datasource:

任何OGR支持的矢量数据。

dst_filename:

GDAL支持的输出文件,必须支持更新模式访问,在GDAL1.8.0之前,该工具不能创建结果图像。

举例:

下面的例子,将mask.shp中的所有多边形栅格化为一个RGBTif图像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

下面的例子将所有的class属性值为A的全部要素输出到一个高程文件中,高程文件的高程值为属性字段ROOF_H 的属性值。

gdal_rasterize -a ROOF_H -where 'class="A"' -l footprints footprints.shp city_dem.tif

7. gdaltransform 坐标系转换工具

用法:

gdaltransform [--help-general]

    [-i] [-s_srs srs_def] [-t_srs srs_def] [-to "NAME=VALUE"]

    [-order n] [-tps] [-rpc] [-geoloc]

    [-gcp pixel line easting northing [elevation]]*

    [srcfile [dstfile]]

参数说明:

gdaltransform工具用来转换坐标,从支持的投影,包括GCP点的变换。

-s_srs srs def:

原始空间参考,该值将被OGRSpatialReference.SetFromUserInput()函数调用,支持包括EPSG PCS 和GCSes (如EPSG:4296), PROJ.4声明或者一个后缀名为.prf的文件存储的WKT串。

-t_srs srs_def:

目标空间参考,该值将被OGRSpatialReference.SetFromUserInput()函数调用,支持包括EPSG PCS 和GCSes (如EPSG:4296), PROJ.4声明或者一个后缀名为.prf的文件存储的WKT串。

-to NAME=VALUE:

设置转换参数,将会使函数GDALCreateGenImgProjTransformer2()来调用。

-order n:

几何多项式变换次数(13),默认情况下会根据输入的GCP点的个数自动确定。

-tps:

强制将GCP点使用TPS转换方式转换。

-rpc:

强制使用RPC参数转换。

-geoloc:

强制使用Geolocation数组转换。

-i

逆转换,从目标到原始投影转换。

-gcppixel line easting northing [elevation]:

指定GCP点,通常至少需要三个。

srcfile:

原始投影下定义的GCP点文件,如果没有指定,需要从命令行-s_srs或者-gcp参数输入。

dstfile:

目标投影定义文件。

读取的坐标必须是成对出现(或者三个一组),输出也以同样的方式输出,所有的变换共gdalwarp相同,包括使用GCP的变换。注意输入输出必须使用十进制小数,当前不支持DMS(度分秒)的输入输出。如果指定了输入图像,那么输入的坐标是基于图像的行列号,如果输出图像指定,输出的坐标也是图像的行列号。

举例:

重投影示例

简单的投影转换,从一个投影转换到另一个投影:

gdaltransform -s_srs EPSG:28992 -t_srs EPSG:31370

177502 311865

Produces the following output in meters in the "Belge 1972 / Belgian Lambert 72" projection:

244510.77404604 166154.532871342 -1046.79270555763

图像RPC变换示例:

下面的命令行使用基于RPC变换,并且使用-i选项来将经纬度坐标转为图像的行列号:

gdaltransform -i -rpc 06OCT20025052-P2AS-005553965230_01_P001.TIF

125.67206 39.85307 50                    

Produces this output measured in pixels and lines on the image:

3499.49282422381 2910.83892848414 50

8. nearblack

用法:

gdalinfo [--help-general] [-mm] [-stats] [-hist] [-nogcp] [-nomd]

         [-noct] [-nofl] [-checksum] [-proj4] [-mdd domain]*

 [-sd subdataset] datasetname

参数说明:

该工具没有进行说明。

9. gdal_grid 插值工具

用法:

gdal_grid [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/

          CInt16/CInt32/CFloat32/CFloat64}]

  [-of format] [-co "NAME=VALUE"]

  [-zfield field_name]

  [-a_srs srs_def] [-spat xmin ymin xmax ymax]

          [-clipsrc <xmin ymin xmax ymax>|WKT|datasource|spat_extent]

          [-clipsrcsql sql_statement] [-clipsrclayer layer]

          [-clipsrcwhere expression]

  [-l layername]* [-where expression] [-sql select_statement]

  [-txe xmin xmax] [-tye ymin ymax] [-outsize xsize ysize]

  [-a algorithm[:parameter1=value1]*] [-q]

  <src_datasource> <dst_filename>

参数说明:

该程序从OGR支持的矢量数据中创建一个规则的栅格数据。输入数据必须有用来插值的数据,可以选择下面的插值方法。

-ot type:

指定输出文件个数据类型。

-of format:

输出文件格式,默认为GeoTiff格式。

-txe xmin xmax:

设置输出文件的地理范围X

-tye ymin ymax:

设置输出文件的地理范围Y

-outsize xsize ysize:

设置输出文件的大小。

-a_srs srs_def:

设置输出文件的投影,可以是WKT串,PROJ.4EPSG:n或者含有wkt的文件。

-zfield field_name:

指定矢量要素中获取Z值的字段。

-a [algorithm[:parameter1=value1][:parameter2=value2]...]:

设置插值算法或者数据单位参数,具体参考 INTERPOLATION ALGORITHMS 和DATA METRICS 。

-spat xmin ymin xmax ymax:

指定空间范围进行过滤(xmin, ymin) - (xmax, ymax)。

-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent:

添加一个空间过滤来选择处理的要素,包括空间范围(SRS表示),WKT几何形状(POLYGON 或MULTIPOLYGON),也可以使用下面的参数来进行过滤:-clipsrclayer,-clipsrcwhere或-clipsrcsql。

-clipsrcsql sql_statement:

使用SQL语句对原始数据进行查询过滤。

-clipsrclayer layername:

指定源数据中图层名称。

-clipsrcwhere expression:

使用属性表来限制几何体。

-l layername:

指定图层名称。

-where expression:

使用SQL WHERE方式来过滤图层中的数据。

-sql select_statement:

使用SQL语句来过滤图层中的数据。

-co "NAME=VALUE":

创建文件参数选项。

-q:

不输出进度信息和错误信息。

src_datasource:

输入矢量,任何OGR库支持的矢量数据。

dst_filename:

输出栅格,GDAL支持的栅格数据。

INTERPOLATION ALGORITHMS(插值算法)

插值算法可以选择下面几种:

invdist

距离次方反比法,这个是默认算法,该算法还有下列参数:

power:

权重指数,默认为2.0

smoothing:

平滑参数,默认为0.0

radius1:

搜索椭圆第一半径(X轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

radius2:

搜索椭圆第二半径(Y轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

angle:

搜索椭圆的旋转角度,使用度单位。默认为0.0,逆时针方向。

max_points:

使用的数据点的最大个数,不会搜索多余这个数字的点,如果搜索椭圆设置将会使用该值(两个半径均不为0时)。默认为0,为0表示使用所有的点。

min_points:

使用的最小数据点个数,如果数据点小于该值,并且找到的网络节点值为空,将使用Nodata值来标记。该值仅仅当搜索椭圆设置(即两个半径均不为0),默认该值为0

nodata:

设置NODATA值,默认为0.0

average

移动均值算法,该算法参数如下:

radius1:

搜索椭圆第一半径(X轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

radius2:

搜索椭圆第二半径(Y轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

angle:

搜索椭圆的旋转角度,使用度单位。默认为0.0,逆时针方向。

min_points:

使用数据点的最小个数,如果数据点小于该值,并且找到的网络节点值为空,将使用Nodata值来标记,默认该值为0

nodata:

设置NODATA值。默认值为0.0

注意:使用移动均值算法必须设置搜索椭圆,当计算网格节点值时使用窗口的均值。

nearest

最邻近算法。该算法参数如下:

radius1:

搜索椭圆第一半径(X轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

radius2:

搜索椭圆第二半径(Y轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

angle:

搜索椭圆的旋转角度,使用度单位。默认为0.0,逆时针方向。

nodata:

设置NODATA值。默认值为0.0

DATA METRICS(数据单位)

Besides the interpolation functionality gdal_grid 除了插值功能外,还有使用指定窗口和输出网格来计算一些数据指标,这些指标有:

minimum:

搜索椭圆中网格节点的最小值。

maximum:

搜索椭圆中网格节点的最大值。

range:

在搜索椭圆中查找到的最大值和最小值的差值。

count:

在搜索椭圆中找到的点个数。

average_distance:

网格节点(搜索椭圆中心)和所有在网格节点搜索椭圆的数据点之间的平均距离。 

average_distance_pts:

在网格节点搜索椭圆中发现的数据点之间的平均距离。椭圆内每对点之间距离的计算和所有的距离平均是作为一个网格节点的值设置。 

所有的指标都具有下面相同的选项:

radius1:

搜索椭圆第一半径(X轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

radius2:

搜索椭圆第二半径(Y轴的旋转角度为0),设置该参数为0时将使用所有的点数组,默认为0.0

angle:

搜索椭圆的旋转角度,使用度单位。默认为0.0,逆时针方向。

min_points:

使用的数据点的最小个数。如果找到的数据点小于将设置为NODATA值,该值仅仅用于设置搜索椭圆时可用(两个半径均不为0时)。默认值为0

nodata:

设置NODATA值。默认值为0.0

READING COMMA SEPARATED VALUES(读取逗号分割符文件CSV)

通常使用一个文本文件,使用逗号分隔XYZ值,该文件通常叫做CSV文件。可以在gdal_grid中使用该文件。你需要做的就是要对你的CSV文件创建一个VRT文件头,并将该文件作为gdal_grid的输入数据。关于VRT格式详情参考 Virtual Format 页面。

下面有个小例子。假如我们有个CSV文件叫dem.csv ,里面内容为:

Easting,Northing,Elevation

86943.4,891957,139.13

87124.3,892075,135.01

86962.4,892321,182.04

87077.6,891995,135.01

...

对于上面的数据,创建一个dem.vrt 的头文件,内容如下:

<OGRVRTDataSource>

    <OGRVRTLayer name="dem">

        <SrcDataSource>dem.csv</SrcDataSource> 

<GeometryType>wkbPoint</GeometryType> 

<GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/> 

    </OGRVRTLayer>

</OGRVRTDataSource>

该说明是一个叫做2.5D的几何数据,含有三个坐标XYZZ值将被用来插值。现在可以使用dem.vrt来进行测试,可以先使用ogrinfo来测试该文件是否可用。数据中包括一个叫dem的点图层,数据包括在CSV文件中。使用这种方式,可以处理超过三列,交换列的CSV文件。

如果你的CSV文件不包括列头,那么可以在VRT头文件中加入下面的内容来进行处理:<GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>

Comma Separated Value 页面描述了OGR库对CSV文件的支持描述信息。

举例:

下面将创建一个TIFF的图像数据,使用VRT数据源,从一个CSV文件中,使用反距离次方算法来进行插值。

gdal_grid -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff

下面的命令行同上面的类似,但是读取的数据是使用-zfield 选项来指定的。

gdal_grid -zfield "Elevation" -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff

10. gdallocationinfo 栅格查询工具

用法:

gdallocationinfo [--help-general] [-xml] [-lifonly] [-valonly]

               [-b band]* [-l_srs srs_def] [-geoloc] [-wgs84]

               srcfile [x y]

参数说明:

Gdallocationinfo程序通过指定一种坐标系中的坐标来进行对其位置的像元值进行输出显示。

-xml:

输出XML格式,方便后期处理。

-lifonly:

输出LocationInfo 中的信息。

-valonly:

仅仅输出指定位置的每个波段的像元值。

-b band:

选择一个波段进行处理,多波段文件将被列出显示。默认是查询所有的波段。

-l_srs srs def:

指定输入的x,y坐标的坐标系。

-geoloc:

表示输入的x,y坐标是地理参考坐标系。

-wgs84:

表示输入的x,yWGS84坐标系下的经纬度坐标。

srcfile:

输入栅格图像的名称。

x:

查询的X坐标。默认为图像行列号,如果使用-l_srs,-wgs84或者-geoloc时按照指定的坐标来处理。

y:

查询的Y坐标。默认为图像行列号,如果使用-l_srs,-wgs84或者-geoloc时按照指定的坐标来处理

该工具的目的是输出一个像素的各种信息。目前支持下面四项:

· 像素的行列号。

· 输出元数据中的LocationInfo 信息,目前只支持VRT文件。

· 全部波段或子文件中的所有波段中的像元值。

· 未缩放的像元值,如果对波段进行了缩放和偏移操作。

输入xy坐标是,是通过命令行来进行输入的,一般是先xy,即先列号后行号;如果使用-geoloc, -wgs84, -l_srs 选项后,会自动根据输入进行交换。默认的输出信息是纯文本文件,也可以使用-xml选项将其使用xml格式进行输出。将来会添加其他的信息。

11. gdalsrsinfo 将给定的CRS按照不同的格式显示

用法:

gdalsrsinfo [options] srs_def

列出给定的CRS的各种表示方法。如ESRIwkt格式,OGCwkt格式和Proj4的格式等。

srs_def 可以是一个GDAL或者OGR支持的文件,或者是任何GDALOGR支持的CRS格式(包括WKT,PROJ4,EPSG:n等)。

参数说明:

Options: 

   [--help-general] [-h]   显示帮助信息并退出

   [-p]                输出信息(如WKT字串格式)

   [-V]                验证SRS

   [-o out_type]        输出类型,默认为all,所有类型见下:

                      {all,proj4,wkt,wkt_simple,wkt_old,wkt_esri,mapinfo,xml}

举例:

gdalsrsinfo  -o all  "EPSG:4326"

PROJ.4 : '+proj=longlat +datum=WGS84 +no_defs '

OGC WKT :

GEOGCS["WGS 84",

    DATUM["WGS_1984",

        SPHEROID["WGS 84",6378137,298.257223563,

            AUTHORITY["EPSG","7030"]],

        AUTHORITY["EPSG","6326"]],

    PRIMEM["Greenwich",0,

        AUTHORITY["EPSG","8901"]],

    UNIT["degree",0.0174532925199433,

        AUTHORITY["EPSG","9122"]],

    AUTHORITY["EPSG","4326"]]

OGC WKT (simple) :

GEOGCS["WGS 84",

    DATUM["WGS_1984",

        SPHEROID["WGS 84",6378137,298.257223563]],

    PRIMEM["Greenwich",0],

    UNIT["degree",0.0174532925199433]]

ESRI WKT :

GEOGCS["GCS_WGS_1984",

    DATUM["D_WGS_1984",

        SPHEROID["WGS_1984",6378137,298.257223563]],

    PRIMEM["Greenwich",0],

    UNIT["Degree",0.017453292519943295]]

12. gdal-config GDAL配置参数

用法:

gdal-config [OPTIONS]

Options:

        [--prefix[=DIR]]

        [--libs]

        [--cflags]

        [--version]

        [--ogr-enabled]

        [--formats]

参数说明:

该脚本工具可以用来查看关于GDAL的一些安装信息等内容。

--prefix:

显示GDAL的安装目录。

--libs:

显示GDAL所依赖的库。

--cflags:

编译GDAL时包括的宏定义等信息。

--version:

显示GDAL版本信息。

--ogr-enabled:

显示是否包含OGR库,如果输出"yes"说明OGR可以使用,如果是"no"则不能使用OGR库中的东西。

--formats:

输出GDAL支持的格式。


原创粉丝点击