ошибка 00865!ArcMap геообработка.Растр в полигон - PullRequest
0 голосов
/ 02 декабря 2010

Я пытаюсь написать скрипт Python для обработки файлов изображений в шейп-файлы, а затем для буферизации этих файлов с помощью 5-метрового буфера.Сначала я сделал скрипт в конструкторе моделей в arcmap, но я пытаюсь запустить его для нескольких файлов изображений, начиная с букв LG.Я продолжаю получать ошибку 00865, которая утверждает, что входной растр (файл изображения) не существует !!Я проверил папку миллион раз, и она определенно существует!Вот мой код:

# Import system modules
import sys, string, os, arcgisscripting

# Create the Geoprocessor object
gp = arcgisscripting.create()

# Load required toolboxes...
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Conversion Tools.tbx")
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")

# Script arguments...

folder = "D:\\J04-0083\\IMAGEFILES"
for root, dirs, filenames in os.walk(folder): # returms root, dirs, and files
    for filename in filenames:
        filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1])
        filename_zero = filename_split[0]

        try:
            first_2_letters = filename_zero[0] + filename_zero[1]
        except:
            first_2_letters = "XX"

        if first_2_letters == "LG":
            Output_polygon_features = "D:\\J04-0083\\ShapeFiles.gdb\\" + "SH_" + filename + ".shp"

            # Process: Raster to Polygon...

            InRaster = filename_zero + ".png"
            gp.RasterToPolygon_conversion(InRaster, Output_polygon_features, "SIMPLIFY", "VALUE") # FILL IN THE CORRECT VALUES!

            Distance__value_or_field_ = "5 Meters"
            Raster_Buffer_shp = "D:\\J04-0083\\ShapeFiles.gdb\\" + "SB_" + filename + ".shp"
            # Process: Buffer...
            gp.Buffer_analysis(Output_polygon_features, Raster_Buffer_shp, Distance__value_or_field_, "FULL", "ROUND", "NONE", "")

У кого-нибудь есть идеи, почему он не работает?спасибо!

1 Ответ

0 голосов
/ 02 декабря 2010

Я не знаю, откуда вы запускаете скрипт, но когда вы вызываете gp.RasterToPolygon_conversion, вы только даете ему файл имя , а не полный путь. Если файл не находится в рабочем каталоге, он не найдет его. Попробуйте заменить строку:

InRaster = filename_zero + ".png"

С:

InRaster = os.path.join(root, filename_zero + ".png")
...