Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Arcpy.CompositeBand无法访问输入数据集,但路径正确。有什么想法吗?_Python 2.7_Image Processing_Arcgis_Raster_Arcpy - Fatal编程技术网

Python 2.7 Arcpy.CompositeBand无法访问输入数据集,但路径正确。有什么想法吗?

Python 2.7 Arcpy.CompositeBand无法访问输入数据集,但路径正确。有什么想法吗?,python-2.7,image-processing,arcgis,raster,arcpy,Python 2.7,Image Processing,Arcgis,Raster,Arcpy,我有大约30个光栅,每个带4个波段,我正在尝试创建复合材质,以便最终将所有光栅合并成一个大光栅。但第一步是创建复合光栅。我想一次完成这一切,我在不同的网站上找到了一些关于如何做到这一点的例子,包括ESRI。我将它们拼凑在一起创建自己的代码,不幸的是,我不断收到错误000271:无法打开输入数据集。我知道路径是正确的,因为arcpy.ListRasters会返回一个大列表中文件夹中的文件,所以问题肯定出在CompositeBands工具上。我已经找到了这个问题的可能解决方案,但我不了解这些解决方案

我有大约30个光栅,每个带4个波段,我正在尝试创建复合材质,以便最终将所有光栅合并成一个大光栅。但第一步是创建复合光栅。我想一次完成这一切,我在不同的网站上找到了一些关于如何做到这一点的例子,包括ESRI。我将它们拼凑在一起创建自己的代码,不幸的是,我不断收到错误000271:无法打开输入数据集。我知道路径是正确的,因为arcpy.ListRasters会返回一个大列表中文件夹中的文件,所以问题肯定出在CompositeBands工具上。我已经找到了这个问题的可能解决方案,但我不了解这些解决方案或它们是如何工作的,所以如果您有答案或建议,您是否可以在编写代码或答案时对代码进行评论,以便我知道发生了什么以及原因?关于数据-它们都是ERDAS Imagine图像光栅,具有4个图像色带:R、G、B和任意N。除少数光栅外,所有光栅都具有名为Layer_1、Layer_2等的条带。少数被称为波段1、波段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)

谢谢

如果光栅有多个波段,则它们已经合成。如果标注栏是要合并到一个光栅中的不同光栅数据集,则应使用复合标注栏

如果要将所有光栅组合或不合并到单个数据集中,则应创建或并将光栅加载到其中

仅供参考,由于光栅标注栏输入未被正确引用,因此复合标注栏工具中会显示一条错误消息,您应该编写如下内容:

ras+\\Layer\u x代替Layer\u x.img


但这样做将输出与原始光栅完全相同的光栅。

另一个问题,为什么复合光栅没有属性表,而各个波段有属性表?在创建马赛克之前,我需要向光栅中添加一个日期字段,但没有可添加字段的属性表。有什么想法吗?这个光栅数据集属性表包含什么?属性链接到单元值,单元值特定于每个标注栏。如果你想添加一个日期字段,你应该将它添加到每个乐队的属性表中。谢谢你的回答,我问了这个问题,但是没有人回答,也许你可以?