Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2007-02-24 07:42:51
Size: 5285
Editor: lilin
Comment:
Revision 5 as of 2007-02-26 06:37:39
Size: 7995
Editor: lilin
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

[[TableOfContents([maxdepth])]]
Line 6: Line 8:
Line 8: Line 9:

 *[::
gdalinfo] - 统计文件的信息。
 *[::gdal_translate] - 拷贝一个可以控制控制输出格式的栅格文件。
 *[::gdaladdo] - 为文件添加略缩图。
 *[::gdalwarp] - 把一个图像转换到一个新的坐标系统。
 *[::gdalindex] - 为MapServer建立一个栅格索引。
 *[::gdal_contour] - 给DEM创建等高线。
 *[::rgb2pct.py] - 把一个24位的图像转化成8位调色板图像。
 *[::pct2rgb.py] - 把一个8位调色板图像转化成24位位图。
 *[::gdal_merge.py] - 把一系列的图像创建一个快速的地图集。
 *[::gdal_rasterize] - 把一个矢量图层栅格化。
 *[::nearblack] - 转换临近的黑/白边框为精准数值。
 *[::gdal-config] - 获取建立使用gdal的软件需要的参数。
 * [:lilin/gdal-utils#gdalinfo: gdalinfo] - 统计文件的信息。
 * [::gdal_translate] - 拷贝一个可以控制控制输出格式的栅格文件。
 * [::gdaladdo] - 为文件添加略缩图。
 * [::gdalwarp] - 把一个图像转换到一个新的坐标系统。
 * [::gdalindex] - 为!MapServer建立一个栅格索引。
 * [::gdal_contour] - 给DEM创建等高线。
 * [::rgb2pct.py] - 把一个24位的图像转化成8位调色板图像。
 * [::pct2rgb.py] - 把一个8位调色板图像转化成24位位图。
 * [::gdal_merge.py] - 把一系列的图像创建一个快速的地图集。
 * [::gdal_rasterize] - 把一个矢量图层栅格化。
 * [::nearblack] - 转换临近的黑/白边框为精准数值。
 * [::gdal-config] - 获取建立使用gdal的软件需要的参数。
Line 23: Line 22:
Line 28: Line 26:
  选择要创建新的文件的格式。这个格式被指定为类似GTiff(GeoTIFF格式)或者HFA(ERDAS格式)。所有的格式列表可以用--formats参数列出来。只有格式列表“(rw)”可以被写入。

 
许多工具如果没有指定,默认是创建GeoTIFF文件。文件扩展名不能用来猜测输出格式,如果没有指定文件名,gdal一般不会添加任何扩展名。
 . 选择要创建新的文件的格式。这个格式被指定为类似GTiff(GeoTIFF格式)或者HFA(ERDAS格式)。所有的格式列表可以用--formats参数列出来。只有格式列表“(rw)”可以被写入。 许多工具如果没有指定,默认是创建GeoTIFF文件。文件扩展名不能用来猜测输出格式,如果没有指定文件名,gdal一般不会添加任何扩展名。
Line 34: Line 29:
  许多格式会有一个或者更多的创建参数来控制文件创建的细节。比如GeoTIFF可以用创建参数控制压缩,或者控制是否用分片还是分带来进行存储。

 
可以使用的创建参数根据格式驱动不同而不同。而一些简单的格式根本就没有创建参数。虽然某个格式可以用"--format <format>"参数列出所有可用的参数列表,但是更详细的信息可以在格式介绍网页中查到。
 . 许多格式会有一个或者更多的创建参数来控制文件创建的细节。比如GeoTIFF可以用创建参数控制压缩,或者控制是否用分片还是分带来进行存储。
 可以使用的创建参数根据格式驱动不同而不同。而一些简单的格式根本就没有创建参数。虽然某个格式可以用"--format <format>"参数列出所有可用的参数列表,但是更详细的信息可以在格式介绍网页中查到。
Line 40: Line 33:
  有几个工具(gdal_translate,gdalwarp)可以在命令行中通过类似-a_srs(分配输出SRS)、-s_srs(源SRS)、-t_srs(目标SRS)来指定坐标系统

 
这些工具允许以一系列格式定义坐标系统(SRS就是空间参考系统)。

 
* NAD27/NAD83/WGS84/WGS72:这些常见的地理坐标系统可以通过名字来直接使用。
  * EPSG:n坐标系统(投影或者地理坐标)可以通过EPSG码来选择。例如EPSG 27700是英国国家网格。一系列的EPSG坐标系统可以在GDAL数据文件gcs.csv和pcs.csv中找到。
  * PROJ.4定义: 一个PROJ4定义字符串可以用作坐标系统定义。例如“+proj=utm +zone=11 +datum=WGS84”。注意在命令行中要保持Proj4字符串在一起作为一个单独的参数(一般用双引号引起来)。
  * OpenGIS 知名文本: OpenGIS标准定义了一个文本格式来描述坐标系统作为简单要素规范的一个部分。这个格式是gdal中使用的坐标系统的内部工作格式。包含wkt坐标系统描述的文件的文件名可以被用来作为坐标系统参数,或者坐标系统元素本身也可以被用来作为命令行参数(虽然wkt中释放所有引号是很有争议的)。
  * ESRI知名文本:ESRI在他们的ArcGIS产品(ArcGIS .prj文件)中使用了一种经过精简OGC WKT的格式,而且这个格式被用在一个和wkt相似的风格的文件中。但是文件名要被加以ESRI::前缀。比如"ESRI::NAD 1927 StatePlane Wyoming West FIPS 4904.prj"。
 . 有几个工具(gdal_translate,gdalwarp)可以在命令行中通过类似-a_srs(分配输出SRS)、-s_srs(源SRS)、-t_srs(目标SRS)来指定坐标系统 这些工具允许以一系列格式定义坐标系统(SRS就是空间参考系统)。
 * '''NAD27/NAD83/WGS84/WGS72:'''这些常见的地理坐标系统可以通过名字来直接使用。
 * '''EPSG:'''n坐标系统(投影或者地理坐标)可以通过EPSG码来选择。例如EPSG 27700是英国国家网格。一系列的EPSG坐标系统可以在GDAL数据文件gcs.csv和pcs.csv中找到。
 * '''PROJ.4定义:''' 一个PROJ4定义字符串可以用作坐标系统定义。例如“+proj=utm +zone=11 +datum=WGS84”。注意在命令行中要保持Proj4字符串在一起作为一个单独的参数(一般用双引号引起来)。
 * '''OpenGIS 知名文本:''' OpenGIS标准定义了一个文本格式来描述坐标系统作为简单要素规范的一个部分。这个格式是gdal中使用的坐标系统的内部工作格式。包含wkt坐标系统描述的文件的文件名可以被用来作为坐标系统参数,或者坐标系统元素本身也可以被用来作为命令行参数(虽然wkt中释放所有引号是很有争议的)。
 * '''ESRI知名文本:'''ESRI在他们的ArcGIS产品(ArcGIS .prj文件)中使用了一种经过精简OGC WKT的格式,而且这个格式被用在一个和wkt相似的风格的文件中。但是文件名要被加以ESRI::前缀。比如"ESRI::NAD 1927 !StatePlane Wyoming West FIPS 4904.prj"。
Line 51: Line 40:
Line 56: Line 44:
    登记gdal版本并退出。
 . 登记gdal版本并退出。
Line 60: Line 47:
    列出所有gdal支持的栅格格式(只读和读写的)并退出。格式支持描述如下:"ro"是只读驱动,'rw'是读写驱动(比如支持CreateCopy);"rw+"是读写和更新驱动(比如支持Create)。
 . 列出所有gdal支持的栅格格式(只读和读写的)并退出。格式支持描述如下:"ro"是只读驱动,'rw'是读写驱动(比如支持!CreateCopy);"rw+"是读写和更新驱动(比如支持Create)。
Line 64: Line 50:
    列出单个格式驱动的细节信息。格式名需要是在--formats 中列出的格式名。比如GTiff。
 . 列出单个格式驱动的细节信息。格式名需要是在--formats 中列出的格式名。比如GTiff。
Line 68: Line 53:
    读取指定名称的文件并把其中的内容当成参数传入命令行列表。行首以#开头的行将被忽略。多字组成的参数需要用双引号来保正其为单一的参数。
 . 读取指定名称的文件并把其中的内容当成参数传入命令行列表。行首以#开头的行将被忽略。多字组成的参数需要用双引号来保正其为单一的参数。
Line 72: Line 56:
    设置配置把指定键设置为某个值,而不必把他们设置为环境变量。一些命令参数键是GDAL_CACHEMAX(用于缓存的内存有多少M)以及GDAL_DATA(gdal的数据路径)。单一的驱动会被其他配置参数影响。
 . 设置配置把指定键设置为某个值,而不必把他们设置为环境变量。一些命令参数键是GDAL_CACHEMAX(用于缓存的内存有多少M)以及GDAL_DATA(gdal的数据路径)。单一的驱动会被其他配置参数影响。
Line 76: Line 59:
    控制调试信息的打印。ON值表示允许调试信息输出,OFF值表示不要输出调试信息。只有在调试信息包含了调试前缀编码中的字符串后其他值才会有选择。
 . 控制调试信息的打印。ON值表示允许调试信息输出,OFF值表示不要输出调试信息。只有在调试信息包含了调试前缀编码中的字符串后其他值才会有选择。
Line 80: Line 62:
    给出一个简短的普通的GDAL命令行参数用法信息然后退出。  . 给出一个简短的普通的GDAL命令行参数用法信息然后退出。

= 各工具程序详解 =
== gdalinfo ==

[#gdalinfo 列出栅格数据集的信息]



用法:

{{{
gdalinfo [--help-general] [-mm] [-stats] [-nogcp] [-nomd]
 [-mdd domain] * datasetname
}}}
----

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

'''-mm'''

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

'''-stats'''

  牵制计算栅格的统计值

'''-nogcp'''

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

'''-nomd'''

  抑制原数据打印,一些数据集可能包含极多的原数据字符串。

'''-mdd domain'''

  给出指定域的原数据信息。

gdalinfo会给出如下的信息(如果有的话):

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

例子:
{{{
gdalinfo ~/openev/utm.tif
Driver: GTiff/GeoTIFF
Size is 512, 512
Coordinate System is:
PROJCS["NAD27 / UTM zone 11N",
    GEOGCS["NAD27",
        DATUM["North_American_Datum_1927",
            SPHEROID["Clarke 1866",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)
Pixel Size = (60.000000,-60.000000)
Corner Coordinates:
Upper Left ( 440720.000, 3751320.000) (117d38'28.21"W, 33d54'8.47"N)
Lower Left ( 440720.000, 3720600.000) (117d38'20.79"W, 33d37'31.04"N)
Upper Right ( 471440.000, 3751320.000) (117d18'32.07"W, 33d54'13.08"N)
Lower Right ( 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)
Band 1 Block=512x16 Type=Byte, ColorInterp=Gray
}}}
----

gdal是一个库,所以它附带的程序本身是很容易被忽略的。可是这些程序又是极其有用的。

TableOfContents([maxdepth])

下面介绍gdal的工具程序,先翻译:

GDAL工具

GDAL创建了下面的工具程序

  • [:lilin/gdal-utils#gdalinfo: gdalinfo] - 统计文件的信息。
  • [::gdal_translate] - 拷贝一个可以控制控制输出格式的栅格文件。
  • [::gdaladdo] - 为文件添加略缩图。
  • [::gdalwarp] - 把一个图像转换到一个新的坐标系统。
  • [::gdalindex] - 为MapServer建立一个栅格索引。

  • [::gdal_contour] - 给DEM创建等高线。
  • [::rgb2pct.py] - 把一个24位的图像转化成8位调色板图像。
  • [::pct2rgb.py] - 把一个8位调色板图像转化成24位位图。
  • [::gdal_merge.py] - 把一系列的图像创建一个快速的地图集。
  • [::gdal_rasterize] - 把一个矢量图层栅格化。
  • [::nearblack] - 转换临近的黑/白边框为精准数值。
  • [::gdal-config] - 获取建立使用gdal的软件需要的参数。

创建新的文件

存取一个已存在的文件来读取是一件很容易的事情,只要在命令行中指定文件或者数据集的名字。但是,创建一个文件是一件非常复杂的事情。你可能需要指定创建格式,各种创建参数,以及指定一个坐标系统。在不同的GDAL工具中有许多参数都是差不多的,这里列举出来。

-of format

  • 选择要创建新的文件的格式。这个格式被指定为类似GTiff(GeoTIFF格式)或者HFA(ERDAS格式)。所有的格式列表可以用--formats参数列出来。只有格式列表“(rw)”可以被写入。 许多工具如果没有指定,默认是创建GeoTIFF文件。文件扩展名不能用来猜测输出格式,如果没有指定文件名,gdal一般不会添加任何扩展名。

-co NAME=VALUE

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

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

-a_srs SRS

  • 有几个工具(gdal_translate,gdalwarp)可以在命令行中通过类似-a_srs(分配输出SRS)、-s_srs(源SRS)、-t_srs(目标SRS)来指定坐标系统 这些工具允许以一系列格式定义坐标系统(SRS就是空间参考系统)。
  • NAD27/NAD83/WGS84/WGS72:这些常见的地理坐标系统可以通过名字来直接使用。

  • EPSG:n坐标系统(投影或者地理坐标)可以通过EPSG码来选择。例如EPSG 27700是英国国家网格。一系列的EPSG坐标系统可以在GDAL数据文件gcs.csv和pcs.csv中找到。

  • PROJ.4定义: 一个PROJ4定义字符串可以用作坐标系统定义。例如“+proj=utm +zone=11 +datum=WGS84”。注意在命令行中要保持Proj4字符串在一起作为一个单独的参数(一般用双引号引起来)。

  • OpenGIS 知名文本: OpenGIS标准定义了一个文本格式来描述坐标系统作为简单要素规范的一个部分。这个格式是gdal中使用的坐标系统的内部工作格式。包含wkt坐标系统描述的文件的文件名可以被用来作为坐标系统参数,或者坐标系统元素本身也可以被用来作为命令行参数(虽然wkt中释放所有引号是很有争议的)。

  • ESRI知名文本:ESRI在他们的ArcGIS产品(ArcGIS .prj文件)中使用了一种经过精简OGC WKT的格式,而且这个格式被用在一个和wkt相似的风格的文件中。但是文件名要被加以ESRI::前缀。比如"ESRI::NAD 1927 StatePlane Wyoming West FIPS 4904.prj"。

总的命令行参数

所有的GDAL命令行工具程序都支持下面的“总的”命令行参数。

--version

  • 登记gdal版本并退出。

--formats

  • 列出所有gdal支持的栅格格式(只读和读写的)并退出。格式支持描述如下:"ro"是只读驱动,'rw'是读写驱动(比如支持CreateCopy);"rw+"是读写和更新驱动(比如支持Create)。

--format format

  • 列出单个格式驱动的细节信息。格式名需要是在--formats 中列出的格式名。比如GTiff。

--optfile file

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

--config key value

  • 设置配置把指定键设置为某个值,而不必把他们设置为环境变量。一些命令参数键是GDAL_CACHEMAX(用于缓存的内存有多少M)以及GDAL_DATA(gdal的数据路径)。单一的驱动会被其他配置参数影响。

--debug value

  • 控制调试信息的打印。ON值表示允许调试信息输出,OFF值表示不要输出调试信息。只有在调试信息包含了调试前缀编码中的字符串后其他值才会有选择。

--help-general

  • 给出一个简短的普通的GDAL命令行参数用法信息然后退出。

各工具程序详解

gdalinfo

[#gdalinfo 列出栅格数据集的信息]

用法:

gdalinfo [--help-general] [-mm] [-stats] [-nogcp] [-nomd]
        [-mdd domain] * datasetname


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

-mm

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

-stats

  • 牵制计算栅格的统计值

-nogcp

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

-nomd

  • 抑制原数据打印,一些数据集可能包含极多的原数据字符串。

-mdd domain

  • 给出指定域的原数据信息。

gdalinfo会给出如下的信息(如果有的话):

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

例子:

gdalinfo ~/openev/utm.tif 
Driver: GTiff/GeoTIFF
Size is 512, 512
Coordinate System is:
PROJCS["NAD27 / UTM zone 11N",
    GEOGCS["NAD27",
        DATUM["North_American_Datum_1927",
            SPHEROID["Clarke 1866",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)
Pixel Size = (60.000000,-60.000000)
Corner Coordinates:
Upper Left  (  440720.000, 3751320.000) (117d38'28.21"W, 33d54'8.47"N)
Lower Left  (  440720.000, 3720600.000) (117d38'20.79"W, 33d37'31.04"N)
Upper Right (  471440.000, 3751320.000) (117d18'32.07"W, 33d54'13.08"N)
Lower Right (  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)
Band 1 Block=512x16 Type=Byte, ColorInterp=Gray


lilin/gdal-utils (last edited 2009-12-25 07:16:33 by localhost)