Python の実行とデバッグ
以下の手順は、「Python スクリプトの新規作成」で作成したスクリプトを基にしています。
- PythonWin の [Standard] ツールバーで、[Check] ボタン をクリックして、スクリプトに構文エラーやインデント エラーがないかチェックします。エラーが見つかった場合は、カーソルがその場所に移動します。エラーがなくなるまで、構文を修正して再チェックします。
- [Run] ボタン をクリックして、[Run Script] ダイアログ ボックスを表示します。
- スクリプトに必要なパラメータを入力します。入力ワークスペース、クリップ フィーチャクラス、出力ワークスペース、XY 許容値があります。独自のデータを指定するか、チュートリアル データを使用することができます。使用できるチュートリアル データを次の表に示します。データのパスにはスペースが含まれているため、パラメータとして使用するときはパス全体を引用符で囲んでください。
- デバッグ オプションとして [Step-through in the debugger] を選択し、[OK] をクリックします。
- [Step Over] ボタン をクリックします。コードの現在の行が実行され(指定したすべてのモジュールをインポート)、次の行に移動します。
- Step:現在の行を実行し、次の行で待機します。
- Step Over:現在の行を実行します。この行に Python のモジュール、関数、メソッドの呼び出しが含まれていた場合は、該当するモジュール、関数、メソッドが実行されます。
- Step Out:モジュール、関数、メソッド内部では、そのコードが実行され、デバッガはそのモジュール、関数、メソッドに続くコードに戻ります。
- [Step Over] ボタンを数回クリックして、try ステートメントまで進みます。
- [Stack] ウィンドウで _main_module node をクリックします。
- [Locals (Dict)] ノードをクリックして、すべてのローカル変数とその値を表示します。
- [Step Over] ボタンを数回クリックして、カーソルを while ステートメントまで移動します。実行した 3 行により、使用可能なフィーチャクラスのリストが作成され、変数 fc に 1 つ目の名前が入ります。
- [Watch] ウィンドウで、<New Item> をクリックし、「"fc"」と入力します。Enter キーを押して、式を変数名に変更します。変数の値が表示されます。
- [Step Over] ボタンを 2 回クリックして出力ワークスペースを設定し、if ステートメントまで移動します。
- [Step Over] ボタンをクリックして、if ステートメント内の [クリップ(Clip)] ツールを実行するコード ブロックに移動します。
- [Step Over] ボタンを 2 回クリックしてツールを実行し、列挙されたフィーチャクラス名から次のフィーチャクラス名を取得します。fc 変数の値を [Watch] ウィンドウで確認してください。
- [Debugging] ツールバーの [Watch] ウィンドウと [Stack] ウィンドウのボタン をクリックして、ウィンドウを閉じます。
- [Interactive window] ボタン をクリックします。次のコードを追加して、Enter キーを押します。
- [Debugging] ツールバーで [Close] ボタン をクリックして、スクリプトの実行を停止します。
パス | パラメータ |
---|---|
"C:\ArcGIS\ArcTutor\GP Service Examples\DriveTimePolygons\ToolData\SanFrancisco.gdb\Transportation" | 入力ワークスペース |
"D:\ArcGIS\ArcTutor\GP Service Examples\DriveTimePolygons\ToolData\SanFrancisco.gdb\BaseMap\Parks" | クリップ フィーチャクラス |
"D:\ArcGIS\ArcTutor\GP Service Examples\DriveTimePolygons\Scratch\Scratch.gdb" | 出力ワークスペース |
5 | XY 許容値 |
XY 許容値は [クリップ(Clip)] ツールではオプションになるため、各入力フィーチャクラスに対してデフォルトの XY 許容値を使用する場合は省略することができます。
2 つのウィンドウが表示されます。[Watch] ウィンドウには定義した式の値が表示され、[Stack] ウィンドウにはシステムのコール スタックにある変数の値が表示されます([Watch] ウィンドウと [Stack] ウィンドウは、[Debugging] ツールバーのそれぞれのボタン をクリックすることにより、表示と非表示を切り替えることができます)。カーソルが置かれているスクリプトの 1 行目が Python によって解釈されます。ここでは import ステートメントになります。新しいウィンドウが適切に表示されるように、必要に応じて Python アプリケーション ウィンドウのサイズを調整します。
[Debugging] ツールバーには、[Step Over] ボタンの他に [Step] ボタン と [Step Out] ボタン もあります。
対話形式のウィンドウで設定したすべての変数と multi_clip スクリプトの他、インポートしたモジュールも表示されます。[Stack] ウィンドウを使用して、変数の範囲と各変数の値、使用可能なすべてのモジュールの内容を確認します。
arcpy.GetMessages()
[クリップ(Clip)] ツールからのすべてのメッセージが [Interactive window] に表示されます。[Interactive window] ではデバッグ中も任意のオブジェクトや変数を使用できるので、オブジェクトの照会や変数の操作に使用することができます。