使用gdalwarp进行栅格影像裁剪
2015年09月18日

Usage1:

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] [-te_srs srs_def]
    [-tr xres yres] [-tap] [-ts width height]
    [-ovr level|AUTO|AUTO-n|NONE] [-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]
    [-nomd] [-cvmd meta_conflict_value] [-setci] [-oo NAME=VALUE]*
    [-doo NAME=VALUE]*
    srcfile* dstfile

裁剪命令如下:

gdalwarp --config GDAL_CACHEMAX 512 --config GDAL_FILENAME_IS_UTF8 NO --config SHAPE_ENCODING UTF-8 --config GDAL_DATA gdal_data_folder -crop_to_cutline -cutline region.shp -cwhere NAME='北京市' -multi -wo NUM_THREADS=ALL_CPUS -wm 512 -r cubic -overwrite china.tif 北京市.tif

参数说明:

--config GDAL_CACHEMAX              ---default GDAL raster block cache size
--config GDAL_FILENAME_IS_UTF8 NO   ---使GDAL支持中文路径
--config SHAPE_ENCODING UTF-8       ---使GDAL支持中文shapefile表格
--config GDAL_DATA gdal_data_folder ---设置GDAL数据目录,其中存放了各种投影、坐标系参数
-crop_to_cutline                    ---裁剪后去掉黑边
-cutline region.shp                 ---用于裁剪的shapefile文件
-cwhere NAME='北京市'                 ---选择用于裁剪的元素,如果不设置则使用整个shapefile边界进行裁剪
-multi                              ---利用多线程提高处理效率
-wo NUM_THREADS=ALL_CPUS            ---使用所有CPU资源进行计算,提高处理效率
-wm 512                             ---可以使用的内存大小(MB
-r cubic                            ---采用方式为双三次卷积
-overwrite                          ---如果结果文件已存在则覆盖
china.tif                           ---带裁剪影像
北京市.tif                            ---结果影像

下面是裁剪结果: 北京市TM

结果挺不错的,但是尽管采用了多线程并且调大了可用内存,裁减速度仍然不太理想。

参考资料

GDAL Configuration Options