gdal_translate包含输入文件列表和输出文件列表

时间:2014-02-04 16:48:44

标签: linux gdal

我在我的linux shell中使用gdal_translate -of ENVI inputpath1/RE1.tif outputpath1/RE1来转换一个文件。
现在,我想和其他50个文件一样。这些文件与其他tif文件一起放在不同的子目录中,我不想转换它们,我也有不同的输出目录。所以,我准备了两个ascii文件作为输入和输出文件列表:

input_list.txt:
inputpath1 / RE1.tif
inputpath2 / RE2.tif
输入路径3 / RE3 tif

output_list.txt:
outputpath1 / RE1
outputpath2 / RE2
outputpath3 / RE3

有没有办法像这样使用gdal_translategdal_translate -of ENVI input_list.txt output_list.txt

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以编写一个简短的程序(使用python,或perl,或bash,或您喜欢的语言)来读取输入路径,输出路径,然后调用gdal_translate。像这样的伪代码:

input_paths = open(input_list.txt)
output_paths = open(output_list.txt)

while (input_paths.hasNextLine()) {
  current_input_path = input_paths.getNextLine()
  current_output_path = output_paths.getNextLine()
  system_call("gdal_translate -of ENVI " + current_input_path + " " + current_output_path)
}

*实际代码会有所不同。

答案 1 :(得分:0)

如果您希望翻译的文件位于同一目录中,那么这很容易。假设您有input_list.txt个以.tif结尾的GeoTIFF文件的路径名,并且需要它们作为以.bsq结尾的ENVI文件,这应该来自BASH shell:

while read f; do
    gdal_translate -of ENVI "$f" "`basename "$f" .tif`.bsq"
done < input_list.txt