gdal应用-gdal_translate
2015年1月16日
注意:只能使用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
目的:根据指定地理范围,获取源图像相应图像。
原理:根据指定的地理范围,从源图像的中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
目的:根据指定像素范围,获取源图像相应图像。
原理:根据指定像素范围,从源图像的中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
目的:改变原始图像的分辨率。
原理:根据指定像素范围,从源图像的中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
目的:改变原始图像的格式。
原理:读取原始图像数据,复制到目标文件格式中(可能需要重采样,只能使用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
目的:将其它格式转换为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
目的:为源图像指定坐标系统。
原理:重新定义源图像的坐标系统(不能变换,只能定义,不改变图像值)。
方法:gdal_translate
-a_srs assign srs指定的坐标系统。
示例:
gdal_translate -a_srs EPSG:32650 -of GTiff J50_lonlat-L12.tif j50-2.tif