Сбой цикла сценария растр-полигон !!ошибка 99999! - PullRequest
1 голос
/ 08 декабря 2010

Я пытаюсь создать скрипт, который выбирает каждый файл .png в папке, начинающейся с букв «LG».Затем я хочу, чтобы scipt создал шейп-файл, заменив «LG» на «SH», а затем я хочу, чтобы скрипт буферизовал этот шейп-файл и переименовал буфер с первыми двумя буквами, являющимися «SB»!продолжайте получать сообщение об ошибке 99999 в строке 37!

( gp.RasterToPolygon_conversion(INPUT_RASTER, Output_polygon_features, "SIMPLIFY", "VALUE") )

Кто-нибудь может понять, почему это не работает?Я очень, очень новичок в этом и смотрел на этот сценарий, вырывая мои волосы в течение многих дней!

Вот сценарий:

# 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...

            INPUT_RASTER = os.path.join(root + "\\" + filename_zero + ".png")
            gp.RasterToPolygon_conversion(INPUT_RASTER, Output_polygon_features, "SIMPLIFY", "VALUE") 

            Distance__value_or_field_ = "5 Meters"
            Raster_Buffer_shp = "SB_" + filename + ".shp"

            # Process: Buffer...
            gp.Buffer_analysis(Output_polygon_features, Raster_Buffer_shp, Distance__value_or_field_, "FULL", "ROUND", "NONE", "")

Ответы [ 2 ]

0 голосов
/ 06 января 2012

попробуйте использовать файл GRID или TIFF вместо PNG. Вы можете конвертировать PNG с: http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=raster_to_other_format_(multiple)_(conversion)

и затем обработать его вывод в преобразование Растр в Полигон.

Вы также можете проверить путь к файлу INPUT RASTER, чтобы убедиться, что он выглядит правильно:

INPUT_RASTER = os.path.join(root + "\\" + filename_zero + ".png")
print INPUT_RASTER
gp.RasterToPolygon_conversion(INPUT_RASTER, Output_polygon_features, "SIMPLIFY", "VALUE") 

Существует также метод построения пути к файлу:

import os
root + os.sep + filename_zero + '.png'
0 голосов
/ 08 декабря 2010

Является ли .png форматом, который хочет эта функция?PNG является сжатым форматом, поэтому я думаю, что что-то подобное будет ожидать несжатого формата.На самом деле, поскольку имя функции - RasterToPolygon_conversion, разве функция не будет ожидать растрового формата ? документы говорят, что ввод должен быть integer raster dataset.Кроме того, The input raster can have any cell size and may be any valid integer raster dataset. Во всяком случае, я подозреваю, что это реальная проблема.

Последнее, что нужно проверить, если файл имеет правильный формат, как указано выше, это наличие поля VALUEфайл.

...