从GRASS导出多个栅格

时间:2014-08-08 16:16:35

标签: r spatial grass

我正在使用GRASS和R来分析一些高光谱数据。 我想将我的谱层导出到一个与ENVI兼容的.img文件中。 到目前为止,我已经使用g.mlist来选择合适的图层,现在我使用i.group从这些图层创建组,我可以用r.out.gdal导出。

我看到i.group采用了一个输入参数,即栅格图层名称列表 - 我有大约100个,所以我正在寻找一种方法来避免单独输入它们!

我的问题基本上是,我已经将名字从g.mlist导出到文本文件 - 有没有办法在输入参数中使用这个文件?

这可能是一个非常基本的问题,是由于我的编程缺乏经验。

我想使用类似的东西:

system(“i.group group = MSP1 input = / home / Documents / MSP / list.txt”)

除了/home/Documents/MSP/list.txt不是栅格地图。

或者,如果有人知道将多个图像层导出到一个文件的更好方法,那也会很棒。

1 个答案:

答案 0 :(得分:1)

我没有尝试在我发布的问题中从我的Rscript中调用GRASS,而是从一个单独的脚本调用i.group,它似乎有效。 所以现在我的电话是:

Rscript MSP.R
sh ExportENVI.sh

ExportENVI脚本是:

#!/bin/bash
#Exports corrected layers to single image file for ENVI

group_list=$(g.mlist type=rast pattern=msp* separator=,)
echo $group_list
i.group group=MSP1 input=$group_list
r.out.gdal input=MSP1 output=/home/Documents/MSP/group_output.img format=HFA
r.out.gdal input=MSP1 output=/home/Documents/MSP/group_output.img format=ENVI
exit 0

我不确定ENVI的正确格式,如果我需要同时执行.img和.hdr,但我会继续工作。