我写了这个快速脚本来找到分钟。测深多边形的深度基于边界线的等高线:
# Import system modules
import arcpy
import arcpy.da
# Set environment settings
arcpy.env.workspace = "C:\Working"
area ="conta"
line = "contl"
for i in area:
arcpy.SelectLayerByLocation_management(line, 'intersect', area)
arcpy.SelectLayerByAttribute_management(line, 'subset_selection',
"""[DEPTH] in (SELECT min( [DEPTH] ) FROM contl)""")
cursor = arcpy.UpdateCursor(i)
for row in cursor:
row.setValue('DEPTHMIN',row.getValue(line['DEPTH']))
cursor.updateRow(row)
del cursor
选择工作正常,但是当我尝试通过更新游标运行我的实例时,我收到以下错误:
Traceback (most recent call last):
File "<string>", line 30, in <module>
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\__init__.py", line 1199, in UpdateCursor
return gp.updateCursor(dataset, where_clause, spatial_reference, fields, sort_fields)
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 364, in updateCursor
self._gp.UpdateCursor(*gp_fixargs(args, True)))
IOError: "c" does not exist
我不确定Python正在寻找的"c"
是什么。
答案 0 :(得分:3)
问题在于:arcpy.env.workspace = "C:\Working"
您需要做的是:
arcpy.env.workspace = r"C:\Working"
或
arcpy.env.workspace = "C:/Working"
编辑:
你的第一个线索是IO错误。无法输出(“O”部分)到您的环境路径。这可能由于多种原因而发生,但在您的情况下,它是路径,其中包含转义整个事物的转义字符\
。因此,您需要使用正斜杠/
或在字符串前放置r
,以向解释器指示它应作为raw
字符串处理。
答案 1 :(得分:0)
主要问题在于:
area ="conta"
for i in area:
area
是一个字符串,因此当您对字符串对象使用for i in ...
时,您将迭代字符串中的“字符”。迭代的第一步是字母“c”,它不作为数据源存在。
路径问题也必须修复。