1

「LG」で始まるフォルダー内のすべての .png ファイルを選択するスクリプトを作成しようとしています。次に、スクリプトでシェープファイルを作成し、「LG」を「SH」に置き換えてから、スクリプトでそのシェープファイルをバッファリングし、バッファの名前を最初の 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

PNG の代わりに GRID または TIFF ファイルを使用してみてください。次の方法で 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 に答える