【发布时间】:2016-11-18 10:44:31
【问题描述】:
我在使用 arcpy 库中的 MultipleRingBuffer_analysis 时遇到问题。以前工作的脚本(14 天前)我还没有碰过它现在突然停止工作并开始返回此错误消息:
MultipleRingBuffer C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\analysis.py 854
ExecuteError:错误 000210:无法创建输出 C:\Users\Mates\AppData\Local\Temp\scratch.gdb\union.shp.shp
错误 000354:名称包含无效字符
执行失败(联合)。
我刚刚发现,如果我将此脚本直接导入 arcmap 工具箱,它可以正常工作。它仅在从解释器运行时失败(我正在使用 pyscripter)
执行失败(MultipleRingBuffer)。
import arcpy
import csv
import sys
import os
from arcpy import env
env.workspace = "E:\\BAKALARKA\\databases\\test.gdb"
input_table = "C:\\temp\\csvTable.csv"
output = "E:\\BAKALARKA\\databases\\test.gdb\\test1"
arcpy.env.overwriteOutput=True
number_of_buffers = 4
spacing = 1000
distance = spacing*number_of_buffers
number_of_sectors = 8
x_field = 0
y_field = 0
angle = 360/number_of_sectors
buffers = []
for x in range(1,number_of_buffers+1):
x = x*spacing
buffers.append(x)
print buffers
##print buffers
path = "C:\\temp\\csvTable.csv"
def table():
try:
file = open(path,"wt")
writer = csv.writer(file)
writer.writerow(("x","y","bearing","distance"))
for i in range (number_of_sectors):
writer.writerow((int(x_field),int(y_field),int(angle*i),int(spacing*(i+1))))
file.close()
except:
print "Something went wrong :("
table()
##
##
##
arcpy.BearingDistanceToLine_management(input_table,"E:\\BAKALARKA\\databases\\test.gdb\\lines","x","y","distance","METERS","bearing","DEGREES")
arcpy.MultipleRingBuffer_analysis("E:\\BAKALARKA\\databases\\test.gdb\\origin_point","E:\\BAKALARKA\\databases\\test.gdb\\buffers_output",buffers,"meters")
arcpy.FeatureToLine_management("E:\\BAKALARKA\\databases\\test.gdb\\buffers_output","E:\\BAKALARKA\\databases\\test.gdb\\buffers_line")
arcpy.FeatureToPolygon_management(["lines","buffers_line"],"E:\\BAKALARKA\\databases\\test.gdb\\sectors")
【问题讨论】:
-
错误消息非常不寻常,因为您没有输入任何 shapefile——但错误消息表明联合操作的扩展名 (
.shp.shp) 错误。任何想法为什么在使用 FGDB 要素类时会引用 shapefile?
标签: python-2.7 arcpy