タグ付けされた質問 「tool-validation」

3
頻度を使用せずにツール検証を使用してArcGISで複数値選択リストを生成しますか?
「複数値選択リストの生成」というタイトルの ESRIのブログサイトにあるモデルとスクリプトの組み合わせを適応させようとしてい ます。 ただし、埋め込みスクリプトで使用される検証の一部は、適切に機能するために「周波数」ツールに依存していると結論付けましたが、これはAdvancedライセンス(lame)でのみ利用可能です。ブログの投稿では、ワークフローと、モデルとスクリプトをダウンロードする場所について説明しています(ただし、リクエストに応じてここに喜んで投稿します)。私が知る限り、私が求めている機能の中核は、複数値選択リストを生成することです。 ..は、検証スクリプトが適切に機能することを前提としています。検証を行わないと、フィールドから値を取得してリストとして表示できません。この検証スクリプトから削除して機能を取得できるものはありますか、または回避策はありますか?私は検証プロセスに不慣れです。検証用のコードを次に示します(コードサンプルとして投稿するつもりでしたが、これは従う方が簡単なようです) [ 編集者注:これは実際の検証コードです。画像は正しくありません] import arcpy class ToolValidator(object): """Class for validating a tool's parameter values and controlling the behavior of the tool's dialog.""" def __init__(self): """Setup arcpy and the list of tool parameters.""" self.params = arcpy.GetParameterInfo() def initializeParameters(self): """Refine the properties of a tool's parameters. This method …

1
Python Toolboxツールで値テーブルのデフォルト値を設定する
フィールドを並べ替え、並べ替えられたフィールドを使用して新しいフィーチャクラスを作成するPython Toolboxツールを作成しました。ツールは適切に機能し、値テーブルを使用して、ユーザーが選択した順序でフィールドを配置したり、各フィールドのランク値を入力したりできます。ただし、このツールの厄介な点は、すべてのフィールドを並べ替える前に、一度に1つずつ値テーブルに追加する必要があることです。 私はこれを設定して、デフォルトですべてのフィールドを値テーブルに取り込むようにしています。不要なフィールドは、並べ替える前に削除できます。誰かが以前にこのようなことをすることに成功したことがありますか?UpdateParametersメソッドでこれを実現しようとしています。これが私が試しているコードです: import arcpy import os class Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the name of the .pyt file).""" self.label = "Reorder Fields" self.alias = "Reorder Fields" # List of tool classes associated with this toolbox self.tools = [ReorderFields] class ReorderFields(object): def __init__(self): …

1
Pythonスクリプトツールのパラメーターでドロップダウンリストを設定しますか?
私が作成したpythonスクリプトからツールを作成しようとしています。これは、作成したリストを取得し、入力の1つとして完成したツールのドロップダウンメニューとして使用します(たとえば、添付の画像を参照)。 私が使用しているリストは、バーモント州のすべての町を含む大きなリストであり、スクリプトからテーブルから生成します(以下のコードを参照)。私の現在の問題は、ツールのプロパティを設定してこのリストを取得し、それを使用してユーザーのドロップダウンリストを作成することにあると思います。パラメータで使用するためのリストを作成するコードのブロックは次のとおりです。ツールのこのコードの終わりに問題が発生している人はいますか? import arcpy arcpy.env.workspace = "Z:\\OPS\\TechnicalServices\\Culverts\\GetCulverts\\GetCulverts.gdb" towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex" arcpy.MakeFeatureLayer_management(towns,"towns_lyr") NameList = [] NameListArray = set() rows = arcpy.SearchCursor("towns_lyr") for row in rows: value = row.getValue("TOWNNAME") if value not in NameListArray: NameList.append(value) town = NameList town = arcpy.GetParameterAsText(0) 以下は、デフォルトの検証コードを使用したツールプロパティの画像です。この検証コードを変更する必要がありますか? この検証コードの変更に関する情報を探しましたが、ドロップダウンリストのフォーマットに使用するための情報が見つかりませんでした。

1
ArcGIS Pythonスクリプトツールの実行中にユーザー入力を求めますか?
スクリプトツールにすべてのパラメーターを指定した後、ユーザー入力を求めるプロンプトを表示します。私はこれに関する多くのフォーラムの投稿とstackexchangeの質問を見てきましたが、それらはすべて不要であると結論付けていますが、私のケースは例外だと思います。GPS座標の数など、データを確認する機会をユーザーに提供したいと考えています。これらは「はい/いいえ」の質問(「このデータは明らかに正しくないのですか?」)であり、スクリプトツールのパラメーター入力フォームは、これにはうまく機能しないようです。 TkinterのイベントハンドラーがArcGISで問題を引き起こし、他のフレームワークでも同様の問題があることを知っています。私が見つけた回避策の1つは、別のプロセスとして実行される別のスクリプトをスクリプトで呼び出し、2番目のプロセスからGUIを表示することですが、これは少しハックしすぎるようです。 どうやらwxPython は機能しますが、Pythonには含まれていません。ArcGIS以外の追加要件なしでこれらのスクリプトを配布できるようにする必要があるので、私にはうまくいきません。 明確にするために、最も重要な用途は、ソフトウェア検証チェックでデータを検証できないときにユーザーにプロンプ​​トを表示することです。たとえば、検証するIDのリストがありますが、形式が一貫していません。ソフトウェアで検証できない場合(たとえば、IDが一般的なパターンの1つと一致しない場合)は、はい/いいえダイアログでユーザーにプロンプ​​トを表示できるようにしたいです。私の知らないうちに新しいID形式が作成される可能性があります。 別の例:とりわけ、開始時間と停止時間の表を含むファイルがあります。テーブルの各行を個別に検証し、そのすべてのデータに加えて他のチェックを警告ウィンドウに詰め込むと、非常に速くなります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.