ArcGIS Pythonスクリプトツールの実行中にユーザー入力を求めますか?


9

スクリプトツールにすべてのパラメーターを指定した後、ユーザー入力を求めるプロンプトを表示します。私はこれに関する多くのフォーラムの投稿とstackexchangeの質問を見てきましたが、それらはすべて不要であると結論付けていますが、私のケースは例外だと思います。GPS座標の数など、データを確認する機会をユーザーに提供したいと考えています。これらは「はい/いいえ」の質問(「このデータは明らかに正しくないのですか?」)であり、スクリプトツールのパラメーター入力フォームは、これにはうまく機能しないようです。

TkinterのイベントハンドラーがArcGISで問題を引き起こし、他のフレームワークでも同様の問題があることを知っています。私が見つけた回避策の1つは、別のプロセスとして実行される別のスクリプトをスクリプトで呼び出し、2番目のプロセスからGUIを表示することですが、これは少しハックしすぎるようです。


どうやらwxPython 機能しますが、Pythonには含まれていません。ArcGIS以外の追加要件なしでこれらのスクリプトを配布できるようにする必要があるので、私にはうまくいきません。


明確にするために、最も重要な用途は、ソフトウェア検証チェックでデータを検証できないときにユーザーにプロンプ​​トを表示することです。たとえば、検証するIDのリストがありますが、形式が一貫していません。ソフトウェアで検証できない場合(たとえば、IDが一般的なパターンの1つと一致しない場合)は、はい/いいえダイアログでユーザーにプロンプ​​トを表示できるようにしたいです。私の知らないうちに新しいID形式が作成される可能性があります。


別の例:とりわけ、開始時間と停止時間の表を含むファイルがあります。テーブルの各行を個別に検証し、そのすべてのデータに加えて他のチェックを警告ウィンドウに詰め込むと、非常に速くなります。


11
私はそれに反対するでしょう。スクリプトツールは、[実行]をクリックすると、ユーザーの操作なしで実行できるようにするためのものです。ただし、検証コードを使用すると、より適切な警告/エラーメッセージを提供できる場合があります。
blah238 2013年

2
あなたはサブプロセスをハックとして呼び出すと述べていますが、ユーザー入力を取得する限り、これはpythonスクリプトツールを使用している場合の唯一の選択肢になると思います。ユーザーがPythonスクリプトツールを操作する必要がある場合に、C#サブプロセスを呼び出すことでそれを実行します。思い出すと、Pythonコードは停止し、サブプロセスが完了するのを待ってから続行します。これにより、C#に組み込まれた無制限のユーザー操作を含めることができます。ただし、オブジェクトをC#に渡すことはできないため、データを文字列形式で取得する必要があります。
bluefoot 2013年

記録のために私はblah238に同意しますが
ブルーフット

4
これがまさにスクリプトツールの検証の目的です。
user2856 2013年

検証はスクリプトによる検証のみであり、ユーザー入力を取得できないと思いましたか?バリデーターからのyes / noプロンプト、または同じ効果を持つ他の何かを表示できますか?
user14144 2013年

回答:


2

このオプションでうまくいくかどうかはわかりませんが、c#アプリケーションの作成について考えることができるかもしれません。

  1. このアプリケーションを通じて、すべてのユーザー操作とデータ検証を実行します。
  2. すべてのデータを検証した後、Pythonスクリプトを実行します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.