Arcpy多环缓冲区错误000210:无法创建输出

问题描述:

我有使用Arcpy库中的MultipleRingBuffer_analysis问题。以前的工作(14天前),我还没有碰它现在突然停止工作,并开始返回此错误信息:Arcpy多环缓冲区错误000210:无法创建输出

MultipleRingBuffer C:\ Program Files文件(x86)\ ArcGIS \ Desktop10.2 \ arcpy \ arcpy \ analysis.py 854
ExecuteError:ERROR 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") 
+0

错误消息非常罕见,因为您没有输入任何形状文件 - 但错误消息指示联合操作的扩展名('.shp.shp')不合适。任何想法为什么在使用FGDB要素类时引用shapefile? – Borealis

看起来您的临时工作空间不被识别为地理数据库,而是作为文件夹识别。这可能意味着此地理数据库已损坏(例如,因为它错过了名为'gdb'的文件)。 Multiple Ring Buffer工具会将错误中提到的临时文件(如联合文件)写为shp或gdb数据。如果它认为scratch是一个文件夹,它将写入shp文件。

尝试将您的临时文件夹设置为您确定可以使用的另一个地理数据库(arcpy.env.scratchWorkspace = 'c:/example.gdb')。