gdal应用-gdal_translate

gdal应用-gdal_translate

[email protected]

2015年1月16日

 

1 gdal_translate:转换工具。包括裁剪,格式转换等。可能会进行重采样、取子集、变换分辨率等。

注意:只能使用nearest重采样方法。

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[_bn] [src_min src_max[dst_min dst_max]]]* [-exponent[_bn] exp_val]*

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

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

       [-oo NAME=VALUE]*

       src_dataset dst_dataset

注意:本方法自动进行overwrite

参考:http://www.gdal.org/gdal_translate.html

http://osdir.com/ml/gdal-development-gis-osgeo/2006-02/msg00037.html

2 应用

2.1 地理范围裁剪

目的:根据指定地理范围,获取源图像相应图像。

原理:根据指定的地理范围,从源图像的中copy数据到目标图像。

方法:gdal_translate

                        -a_nodata 目标图像无数据时指定值

                        -projwin地理范围,left,top,right,bottom。

注意:在相同分辨率下,此方法可以使用vrt(纯合成,不进行范围设定),只进行数据复制。能够保证左上角数据在范围内,但右下角可能会有一个像素的缺失(像素不一定就完全在给定范围,所以只匹配左上角)。如果分辨率不同,则有可能出现黑线。所以只能在相同分辨率下使用。

示例:

使用地理范围:

gdal_translate -a_nodata 0 -projwin 124.88936067344.2782385899 125.011173148 44.1042207686 -of GTiffD:/qgis-ppt/timeextent/Korea/test.tifD:/qgis-ppt/vector-cut/clipper-poly-alpha.tif

2.2 像素范围裁剪

目的:根据指定像素范围,获取源图像相应图像。

原理:根据指定像素范围,从源图像的中copy数据到目标图像。

方法:gdal_translate

-srcwin 输出范围,格式 x,y,width,hight

示例:

C:\OSGeo4W\bin>gdal_translate.exe -a_nodata 0-srcwin 0 0 100 200 -of GTiff D:/q

gis-ppt/timeextent/Korea/test.tifD:/qgis-ppt/vector-cut/clipper-srcwin.tif

2.3改变分辨率/缩放

目的:改变原始图像的分辨率。

原理:根据指定像素范围,从源图像的中copy数据到目标图像,并改变输出大小。

方法:gdal_translate

-outsize 输出范围,格式 xsize,ysize。如果有%,则按百分比输出。计算输入前后的分辨率比值,由此计算出输出文件的大小。通过文件大小控制分辨率。注意:虽然像素数目和%可能产生相同的输出,但有时因为精度问题,可能会有不同(像素大小)。

                注意:使用vrt时,相同分辨率的多个输入文件可以很好的完成缩放;不同分辨率时,直接缩放会有移位,应该先合成统一分辨率图像,然后缩放。

示例:

gdal_translate -outsize 200% 200% -of GTiff D:\qgis-ppt\mosaic\J1.tifD:/qgis-ppt/mosaic/J1-zoom.tif

2.4 格式转换(可用于合成)

目的:改变原始图像的格式。

原理:读取原始图像数据,复制到目标文件格式中(可能需要重采样,只能使用nearest)。

方法:gdal_translate

-of 输出格式,默认GTiff。可以修改为所有GDAL支持的格式

-co create option。每种格式都有规定的co,需要查看格式说明。如:JPEG格式,可以使用WORLDFILE=YES(生成worldfile文件),QUALITY=75(设置压缩率,默认是75%,只能取10~100范围的值,>95无法提高质量,但会增大文件)。

效率很高。

示例:

gdal_translate -of GTiff j50c.vrt translate.tif

gdal_translate -of JPEG j50c4.vrt translatejpeg.jpg

gdal_translate -of JPEG -co WORLDFILE=YES -coQUALITY=75 j50c4.vrt

 translatejpeg75.jpg

2.5 转换为JPEG

目的:将其它格式转换为JPEG的RGB格式。

原理:指定源数据的波段与目标JPEG的对应波段。

方法:gdal_translate

-b n:指定第几个波段对应的源数据波段数n。可以有多个。如果不指定,默认情况下是一一对应。

示例:将四波段RGBA的tif转换成JPEG RGB。

gdal_translate -of JPEG -b 1 -b 2 -b 3 source.tiftest.jpg

默认情况下:gdal_translate -of JPEG source.tif test.jpg 等效于 gdal_translate-of JPEG -b 1 -b 2 -b 3 -b 4 source.tif test.jpg,都是将RGBA转换为JPEG中,使用四个4BYTES存储一个像素,会被当作CMYK处理。

参考:http://osdir.com/ml/gdal-development-gis-osgeo/2014-06/msg00046.html

2.6 定义坐标系统(不能进行投影变换,只能定义)

目的:为源图像指定坐标系统。

原理:重新定义源图像的坐标系统(不能变换,只能定义,不改变图像值)。

方法:gdal_translate

-a_srs assign srs指定的坐标系统。

示例:

gdal_translate -a_srs EPSG:32650 -of GTiff J50_lonlat-L12.tif j50-2.tif

 

你可能感兴趣的:(应用,GDAL)