python脚本中的按位置选择错误:“按位置选择”;“获取几何图形”;窗口

python脚本中的按位置选择错误:“按位置选择”;“获取几何图形”;窗口,python,arcgis,arcpy,Python,Arcgis,Arcpy,我有一个python脚本,用作ArcGIS中ScriptTool的源代码,该脚本应该使用遮罩(多边形要素类)从位置选择中选择道路段。在我修改代码为选择工具生成不同的遮罩之前,一切正常。 似乎自从修改之后,修改后的代码以及原始代码都给了我相同的执行错误,对于带有INTERSECT条件的SelectByLocation工具 以下是原始代码的具体部分: import arcpy, os, datetime from arcpy.sa import * if __name__ == "__main__

我有一个python脚本,用作ArcGIS中ScriptTool的源代码,该脚本应该使用遮罩(多边形要素类)从位置选择中选择道路段。在我修改代码为选择工具生成不同的遮罩之前,一切正常。 似乎自从修改之后,修改后的代码以及原始代码都给了我相同的执行错误,对于带有INTERSECT条件的SelectByLocation工具

以下是原始代码的具体部分:

import arcpy, os, datetime
from arcpy.sa import *

if __name__ == "__main__":

    inRas = r'path\Raster_for_mask'
    inRR = r'path\roads'
    arcpy.env.overwriteOutput = True

    # Mask creation based on the raster file
    arcpy.CheckOutExtension('Spatial')
    maskZIr = arcpy.Raster(inRas)>-10000
    maskZIs = 'Zone_inondee'
    arcpy.RasterToPolygon_conversion(maskZIr,maskZIs)

    # Road features selections by the mask ############################
    inRRLayer = 'inRRLayer'
    arcpy.MakeFeatureLayer_management(inRR, inRRLayer)
    arcpy.SelectLayerByLocation_management(inRRLayer,"INTERSECT",maskZIs)
下面是修改后的代码:

import arcpy, os, datetime
from arcpy.sa import *

if __name__ == "__main__":

inRas = r'path\Raster_for_mask'
inRR = r'path\roads'
arcpy.env.overwriteOutput = True

    ## Real mask to select road features that I want
    maskZIr = arcpy.Raster(inRas)
    maskZIr2 = SetNull(maskZIr,maskZIr,"VALUE = 0") # Erase the error zones of the raster before conversion to polygon
    maskZIr3 = Int(maskZIr2)
    maskZIr4 = 'Zone_inondee_multipart'
    arcpy.RasterToPolygon_conversion(maskZIr3,maskZIr4)
    maskZIs = 'Zone_inondee'
    arcpy.Dissolve_management(maskZIr4,maskZIs) # Singlepart polygon mask
    ##################################

    # Road features selections by the mask ############################
    inRRLayer = 'inRRLayer'
    arcpy.MakeFeatureLayer_management(inRR, inRRLayer)
    arcpy.SelectLayerByLocation_management(inRRLayer,"INTERSECT",maskZIs)
(文件的路径是假的,只是为了演示)

关于此错误,将出现一个名为“AddList”的小窗口,其中只写有“FetchGeometrics”,还有一个OK按钮。单击时,我得到SelectByLocation_management工具的函数执行错误(未知999999错误)。如果我运行未经修改的代码,这种情况也会发生,以前工作得很好。 我验证了用于运行选择工具的两个文件,但它们的格式都正确(shapefile、遮罩的多边形类型和道路的线条),并且填充正确。我在互联网上到处查找,似乎以前没有人有过这个问题

检查问题的屏幕截图:

问题不在于代码本身,因为它以前工作得很好,但我无法追溯错误的来源。代码块仅指示发生错误的上下文。我的直觉表明,MakeFeatureLayer\u管理工具在某个时候出了问题。此外,在不创建要素图层的情况下使用道路的源文件会导致选择工具的无效参数出错

所以我的问题是:你见过这个错误吗?如果是这样的话,它是用同一个地理处理工具的吗?你如何摆脱它

谢谢你们



我在两个月前刚刚开始学习python和arcpy进行实习。这是我第一次在这里发表文章,所以如果你们中的一些人不清楚我的问题,我提前向你们道歉。

我对ArcPy环境也比较陌生,并且在Arc 10.3上遇到了完全相同的问题

问题似乎是ArcMap失去了访问我正在使用的个人地理数据库(MDB)的权限,无法再对其进行读取或写入。对于文件地理数据库(GDB)或Windows文件系统上充满shapefile文件的文件夹,我没有这个问题


在Esri解决这一问题之前,最好的办法似乎是尽可能避免使用个人地理数据库。

我对ArcPy环境也比较陌生,在Arc 10.3上也遇到了同样的问题

问题似乎是ArcMap失去了访问我正在使用的个人地理数据库(MDB)的权限,无法再对其进行读取或写入。对于文件地理数据库(GDB)或Windows文件系统上充满shapefile文件的文件夹,我没有这个问题


在Esri解决这个问题之前,最好的办法似乎是尽可能避免使用个人地理数据库。

我终于解决了这个问题。我必须删除代码中当前使用的所有文件(光栅和形状文件),并从以前的备份文件夹中复制相同的“未接触”文件。通过这种方式解决这个问题,我想在某个时候,ArcGis地理处理工具或代码本身破坏了我使用的数据……或者我不再像你说的那样拥有权限@AlexTelionis!(顺便说一句,谢谢你的回答)问题是我让它重新工作了,但我永远不知道问题的确切来源,对不起,我终于解决了问题。我必须删除代码中当前使用的所有文件(光栅和形状文件),并从以前的备份文件夹中复制相同的“未接触”文件。通过这种方式解决这个问题,我想在某个时候,ArcGis地理处理工具或代码本身破坏了我使用的数据……或者我不再像你说的那样拥有权限@AlexTelionis!(顺便说一句,谢谢你的回答)问题是我让它再次工作了,但我永远不会知道问题的确切来源,对不起。