2016-05-31 3 views
1

ArcGISのScriptToolのソースコードとして使用されているPythonスクリプトは、マスクを使用して選択範囲から道路セグメントを選択することになっています(ポリゴンフィーチャクラス)選択ツールの別のマスクを生成するようにコードを修正するまで、すべて正常に機能しました。 その変更以来、変更されたコードと元のコードの両方が、INTERSECT条件を持つSelectByLocationツールに対して同じ実行エラーを与えるようです。ここでpythonスクリプトの場所によって選択エラー:「フェッチジオメトリ」ウィンドウ

は、元のコードの特定の部分である:

import arcpy, os, datetime 
from arcpy.sa import * 

if __name__ == "__main__": 

    inRas = r'path\Raster_for_mask' 
    inRR = r'path\roads' 
    arcpy.env.overwriteOutput = True 

    # Mask creation based on the raster file 
    arcpy.CheckOutExtension('Spatial') 
    maskZIr = arcpy.Raster(inRas)>-10000 
    maskZIs = 'Zone_inondee' 
    arcpy.RasterToPolygon_conversion(maskZIr,maskZIs) 

    # Road features selections by the mask ############################ 
    inRRLayer = 'inRRLayer' 
    arcpy.MakeFeatureLayer_management(inRR, inRRLayer) 
    arcpy.SelectLayerByLocation_management(inRRLayer,"INTERSECT",maskZIs) 

そしてここでは、変更されたコードです:

import arcpy, os, datetime 
from arcpy.sa import * 

if __name__ == "__main__": 

inRas = r'path\Raster_for_mask' 
inRR = r'path\roads' 
arcpy.env.overwriteOutput = True 

    ## Real mask to select road features that I want 
    maskZIr = arcpy.Raster(inRas) 
    maskZIr2 = SetNull(maskZIr,maskZIr,"VALUE = 0") # Erase the error zones of the raster before conversion to polygon 
    maskZIr3 = Int(maskZIr2) 
    maskZIr4 = 'Zone_inondee_multipart' 
    arcpy.RasterToPolygon_conversion(maskZIr3,maskZIr4) 
    maskZIs = 'Zone_inondee' 
    arcpy.Dissolve_management(maskZIr4,maskZIs) # Singlepart polygon mask 
    ################################## 

    # Road features selections by the mask ############################ 
    inRRLayer = 'inRRLayer' 
    arcpy.MakeFeatureLayer_management(inRR, inRRLayer) 
    arcpy.SelectLayerByLocation_management(inRRLayer,"INTERSECT",maskZIs) 

は、(ファイルのパスがちょうどデモの目的のために偽のものです)

エラーについては、「AddList」という名前の小さなウィンドウが表示され、「FetchGeometries」と「OK」ボタンが記載されています。クリックすると、SelectByLocation_managementツール(不明な999999エラー)の関数実行エラーが発生します。私が変更されていないコードを実行した場合、これもうまくいきます。 選択ツールを実行するために使用された両方のファイルを検証しましたが、どちらも正しいフォーマット(シェイプファイル、マスクのポリゴンタイプ、道路のライン)と右に配置されています。私はインターネット上のあらゆる場所を調べました。その前に誰もその問題を抱えていないようです...

問題のスクリーンショットを確認してください:http://imgur.com/jltD0zl

問題はあまりコード自体ではありませんでした。なぜなら以前はうまくいきましたが、そのエラーの原因を追跡することができないからです。コードブロックは、エラーが発生したコンテキストを示します。私の勇気は、MakeFeatureLayer_managementツールで何かが間違っていたことを示唆しています。また、フィーチャレイヤを作成せずに道路のソースファイルを使用すると、選択ツールの有効でないパラメータにエラーが発生します。

ここで私の質問です:これまでにこのエラーを見たことがありますか?もしそうなら、同じジオプロセシングツールを使っていたのですが、どうやってそれを取り除きますか?

ありがとうございます。


私はちょうど2ヶ月前にインターンシップのためにpythonとarcpyを学び始めました。これは私の最初の投稿ですので、私の問題があなたの中には不明な場合は事前にお詫びします。

答えて

0

私はArcPy環境では比較的新しいので、Arc 10.3ではまったく同じ問題がありました。

問題は、ArcMapが私が作業していたパーソナルジオデータベース(MDB)にアクセスする権限を失っているため、読み書きできなくなったようです。私は、ファイルジオデータベース(GDB)やWindowsファイルシステム上のシェープファイルでいっぱいのフォルダにこの問題はありません。

これはEsriによって解決されるまで、できる限り個人用のジオデータベースを避けることが最良の方法だと思われます。

+0

私はついにこの問題を解決しました。 私は現在自分のコードで使用していたすべてのファイル(ラスタとシェイプファイル)を消去し、前のバックアップフォルダから同じ "手を使わない"ファイルをコピーしなければなりませんでした。 このように問題を解決することで、ArcGisジオプロセシングツールまたはコード自体が私が使用していたデータを破損していると推測されます...あるいは、あなたが@AlexTelionisと言ったように、 (途中で答えてくれてありがとう) 問題は私がもう一度働いていることですが、問題の正確な情報源はわかりません。 –

関連する問題