栅格到多边形脚本循环失败!错误99999!
问题描述:
我想制作一个脚本,选择以字母“LG”开头的文件夹中的每个.png文件。然后,我希望scipt创建一个shapefile,用“SH”替换“LG”,然后我想让脚本缓冲该shapefile,并用前两个字母为“SB”重命名该缓冲区!栅格到多边形脚本循环失败!错误99999!
我在第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", "")
答
是png格式,这个函数希望的格式? PNG是一种压缩格式,所以我会认为像这样的东西会期待未压缩的格式。实际上,由于该函数的名称是RasterToPolygon_conversion,函数是不是期望raster format? docs表示输入应该是integer raster dataset
。另外,The input raster can have any cell size and may be any valid integer raster dataset.
无论如何,我怀疑这是真正的问题。
要检查的最后一件事情是,如果文件格式与上面的格式相符,那么文件中有一个字段VALUE
。
答
尝试使用GRID或TIFF文件而不是PNG。 您可以将PNG转换为: http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=raster_to_other_format_(multiple)_(conversion)
然后将其输出到栅格到多边形转换中。
你也可以查看输入栅格的文件路径,以确保它看起来是正确的:
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'
你很兴奋! – 2010-12-08 08:52:24
它没有兴奋,它是“盯着一个不能工作3天的脚本”诱发疯狂(!!!) – 2010-12-08 08:58:16