我有大约30个栅格,每个栅格各有4个,我试图创建复合材料,这样我最终可以将所有栅格组合成一个大栅格。但第一步是创建复合栅格。我想一下子完成所有这些,我在各个网站上找到了一些关于如何做到这一点的例子,包括ESRI&#39。我将它们拼凑在一起创建我自己的代码,不幸的是我一直收到错误000271:无法打开输入数据集。我知道路径是正确的,因为arcpy.ListRasters()返回大型列表中文件夹中的文件,所以问题肯定在于CompositeBands工具。我已经查找了这个问题的可能解决方案,但我不明白解决方案或它们是如何工作的,所以如果你有答案或建议,你可以评论你的代码(如果你写一个)或回答如此我知道发生了什么事,为什么?关于数据 - 它们都是ERDAS Imagine图像栅格,有4个图像色带:R,G,B和N是什么。除了少数栅格外,所有栅格都有名为Layer_1,Layer_2等的频段。少数被称为Band_1,Band_2等等。这是我的代码:
arcpy.env.workspace = r'\\network\folder\subfolder1\subfolder2\All_RGBN'
ws = arcpy.env.workspace
outws = r'\\network\folder\subfolder1\subfolder2\RGBN_Composit'
for ras in arcpy.ListRasters("*.img"):
name = outws+"\\"+ras
try:
arcpy.CompositeBands_management("Layer_1.img;Layer_2.img;Layer_3.img,Layer_4.img", name)
except:
arcpy.CompositeBands_management("Band_1.img;Band_2.img;Band_3.img,Band_4.img", name)
谢谢!
答案 0 :(得分:0)
如果你的栅格有多个波段,它们已经是复合的。当您的波段是要合并到一个栅格中的不同栅格数据集时,应使用复合波段。
如果要将所有栅格(复合或非合成)合并为一个数据集,则应创建Mosaic Dataset或Raster Catalog并将栅格加载到其中。
FYI,你在Composite Band工具中收到一条错误信息,因为你的栅格波段(输入)没有被正确引用,你应该这样写:
ras + "\\Layer_x"
代替"Layer_x.img"
但这样做会输出与原始栅格完全相同的栅格。