1

我正在尝试制作一个脚本,它选择以字母“LG”开头的文件夹中的每个 .png 文件。然后,我希望 scipt 创建一个 shapefile,将“LG”替换为“SH”,然后我希望脚本缓冲该 shapefile 并将前 2 个字母为“SB”的缓冲区重命名!

我在第 37 行不断收到错误 99999 错误消息!

( 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", "")
4

2 回答 2

0

尝试使用 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'
于 2012-01-06T15:55:10.063 回答
0

.png 是这个函数想要的格式吗?PNG是一种压缩格式,所以我认为像这样的东西会期望一种未压缩的格式。实际上,由于函数的名称是 RasterToPolygon_conversion,所以该函数不是需要栅格格式吗?文档说输入应该integer raster dataset是. 另外,The input raster can have any cell size and may be any valid integer raster dataset.无论如何,我怀疑这是真正的问题。

最后要检查的是,如果文件的格式与上述正确,文件中是否有字段VALUE

于 2010-12-08T15:53:08.423 回答