【问题标题】:Arcpy multiple ring buffer error 000210: Cannot create outputArcpy 多环缓冲区错误 000210:无法创建输出
【发布时间】: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


【解决方案1】:

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

尝试将您的暂存文件夹设置为您确定可以正常工作的另一个地理数据库 (arcpy.env.scratchWorkspace = 'c:/example.gdb')。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。您的暂存 gdb 似乎已损坏。我所做的只是转到临时 gdb 所在的临时文件夹,将其删除并运行脚本。效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      • 2021-06-05
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      相关资源
      最近更新 更多