部分GDAL工具功能简介

主要转自http://blog.csdn.net/liminlu0314?viewmode=contentsphp

部分GDAL工具功能简介

gdalinfo.exe 显示GDAL支持的各类栅格文件的信息。html

gdal_translate.exe 在不一样的格式间进行转换。同时,潜在的执行了一些切割、重采样和使像素比例变化的任务。web

gdalwarp.exe 投影转换和投影绑定。同时也能够进行图像镶嵌。这个程序能够从新投影所支持的投影,并且若是图像("raw" with)控制信息也能够把GCPs 和图像存储在一块儿算法

gdaltindex.exe 建立栅格索引的SHP 文件。它能为每一个栅格数据创建一个记录:一个包含栅格名称的属性,以及这个栅格的外边界所组成的多边形。浏览器

gdal_contour.exe 从一个栅格DEM生成矢量的等值线。缓存

gdaltransform.exe 与PROJ类似。进行投投影转换。dom

nearblack.exe 将栅格中接处黑\白的像元置成黑色或白色。这能够用来修补压缩丢失信息而形成的不许确,以便于在镶嵌时将其视为透明。工具

gdal_grid.exe 从分散的点生成栅格,有插值的意思。网站

ogrinfo.exe 显示OGR支持的矢量数据的信息ui

ogr2ogr.exe 进行不一样简单矢量格式转换。

gdaladdo - 在文件内创建金字塔,提升文件打开和浏览速度.

gdalbuildvrt - Build a VRT from a list of datasets.

gdaldem - DEM分析与可视化工具,可进行坡度、坡向和山影分析,以及高程分色渲染功能.

rgb2pct.py - 将24bit的RGB图像转换为8bit颜色表图像.

pct2rgb.py - 将8bit颜色表图像转换为24bit的RGB图像.

gdal_merge.py - Build a quick mosaic from a set of images.

gdal2tiles.py - 生成 TMS瓦片结构,可用Google Earth(KML)或通常web浏览器进行浏览.

gdal_rasterize - 将矢量数据栅格化.

gdal_retile.py - Retiles a set of tiles and/orbuild tiled pyramid levels.

gdal_proximity.py - Compute a raster proximity map.

gdal_polygonize.py - Generate polygons from raster.

gdal_sieve.py - Raster Sieve filter.

gdal_fillnodata.py - Interpolate in nodata regions.

gdal-config -Get options required to build software using GDAL.

 

 

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_UTF8NO”。同时对于每一种驱动都会有各自的配置,具体参考各个驱动的说明。更多的配置选项参考该网址: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就是空间参考系统spatialreference 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 WyomingWest 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工具能够用来在不一样格式间转换栅格数据。同时还能够作一些诸如提取子栅格、重采样和数据类型转换等操做。

-ot: type

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

-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、Proj四、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 -b2 -b 3 -mask 4 -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR--configGDAL_TIFF_INTERNAL_MASK YES

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

gdal_translatewithmask.tif rgba.tif -b 1 -b2 -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_OVERVIEWDEFLATE)。

大多数驱动也支持一个备用的略缩图格式(使用的是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_OVERVIEWDEFLATEerdas.img 2 4 8 16

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

 

gdaladdo --config USE_RRD YES airphoto.jpg39 27 81

相关文章
相关标签/搜索