金先生 偷拍 ToolValidator クラスのプログラミング

发布日期:2025-03-30 17:18    点击次数:96

金先生 偷拍 ToolValidator クラスのプログラミング

schema オブジェクト

タイプがフィーチャクラス、テーブル、ラスター、ワークスペースのすべての出力パラメーターは、schema オブジェクトを抓ちます。フィーチャクラス、テーブル、ラスター、ワークスペースの出力だけがスキーマを抓ちます。他のタイプはスキーマを抓ちません。schema オブジェクトは、ジオプロセシングによって作成されます。このスキーマには、パラメーター オブジェクトを通してアクセスし、ツールの出力を記述するためのルールを設定します。スキーマのルールを設定して、ToolValidator クラスから戻ると、ジオプロセシングの里面整合チェック コードは設定されたルールを調べ、出力の記述を更新します金先生 偷拍。

確認のため、制御の流れを以下に示します。

ツール ダイアログ ボックスを领先に開いたときに、initializeParameters() が呼び出されます。出力を記述するために、静的ルール (ユーザー入力に基づいて変更されないルール) を設定します。この時点では、ユーザーは (デフォルト値を設定していない限り) パラメーターに値を指定していないため、出力の記述は作成されません。ユーザーがツール ダイアログ ボックスに何らかの対話的操作を行うと、updateParameters() が呼び出されます。updateParameters() は、[フィールドの追加 (Add Field)] での新しいフィールドの追加といった、パラメーターの依存性から決定できない動的な動作を扱う schema オブジェクトを変更できます。updateParameters() の終了後、里面整合チェック ルーチンが呼び出され、schema オブジェクト内にあるルールが適用されて、出力データの記述が更新されます。次に、updateMessages() が呼び出されます。里面整合チェックが作成した教会およびエラー メッセージを調べて、それらを変更したり、独自の教会やエラー メッセージを追加したりできます。

すべての schema プロパティは、読み取り専用の type を除いて、すべてが読み書き可能です。

プロパティ名値

type

翰墨列: "Feature"、"Table"、"Raster"、"Container" (ワークスペースおよびフィーチャ データセットの場合) (読み取り専用プロパティ)

clone

ブール型

featureTypeRule

翰墨列: "AsSpecified"、"FirstDependency"

featureType

翰墨列: "Simple"、"Annotation"、"Dimension"

geometryTypeRule

翰墨列: "Unknown"、"FirstDependency"、"Min"、"Max"、"AsSpecified"

geometryType

翰墨列: "Point"、"Multipoint"、"Polyline"、"Polygon"

extentRule

翰墨列: "AsSpecified"、"FirstDependency"、"Intersection"、"Union"、"Environment"

extent

範囲オブジェクト

fieldsRule

翰墨列: "None"、"FirstDependency"、"FirstDependencyFIDs"、"All"、"AllNoFIDs"、"AllFIDsOnly"

additionalFields

フィールド オブジェクトの Python リスト。

cellSizeRule

翰墨列: "AsSpecified"、"FirstDependency"、"Min"、"Max"、"Environment"

cellsize

Double

rasterRule

翰墨列: "FirstDependency"、"Min"、"Max"、"Integer"、"Float"

rasterFormatRule

翰墨列: "Img"、"Grid"

additionalChildren

ワークスペース スキーマに追加するデータセットの Python リスト

schema オブジェクトのプロパティFirstDependency の使用

いくつかのルールは "FirstDependency" に設定できます。これは、parameter.parameterDependencies を使用して、パラメーターの依存性配列セット内にある领先のパラメーターの値を使用することを意味します。次のコードの例では、パラメーター 2 には 0 と 1 の 2 つの従属パラメーターがあり、领先の依存性はパラメーター 0 です。

従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

type

type プロパティは読み取り専用で、ジオプロセシングによって設定されます。

clone

true の場合、ジオプロセシングは、领先の従属パラメーター内にある記述の厳密なコピー (クローン) を作成します。デフォルト値は false です。时常は、initializeParameters() メソッド内で clone を true に設定します。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値に対してクローンが作成されます。

parameter.parameterType が "Derived" の場合、厳密なコピーが作成されます。[フィールドの追加 (Add Field)] ツールの動作はこれです。parameter.parameterType が "Required" の場合、厳密なコピーも作成されますが、データセットへのカタログ パスが変更されます。カタログ パスは 2 つの部分 (ワークスペースとベース名) で構成されます。たとえば、次のように指定します。

E:/Data/TestData/netcity.gdb/infrastructure/roads

ワークスペース = E:/Data/TestData/netcity.gdb/infrastructure ベース名 = roads 新しい出力名を作成するために使用されるルールは次のとおりです。ベース名は、データセットを含む领先の入力パラメーター (领先の依存性ではなく、领先のパラメーター) のベース名に、スクリプト ツールの名前を付けたものになります (例: roads_MyTool)。ワークスペースは、テンポラリ ワークスペース環境設定に設定されます。これが空の場合、現在のワークスペース環境設定が使用されます。これが空の場合、データセットを含む领先の入力パラメーターのワークスペースが使用されます。このワークスペースが読み取り専用の場合は、システムのテンポラリ ディレクトリが使用されます。

clone を true に設定すると、featureTypeRule、geometryTypeRule、extentRule など、すべてのルールベースのメソッドが "FirstDependency" に設定されます。

次の 2 つのコード例は、同じ処理を行います。両方とも、[クリップ (Clip)] ツールが出力スキーマを作成する款式に基づいています。

在线自拍在线偷拍视频 featureTypeRule

この設定は、出力フィーチャクラスのフィーチャ タイプを決定します。このルールは、出力ラスターまたはテーブルには影響しません。

値説明

"AsSpecified"

フィーチャ タイプは、featureType プロパティによって決定されます。

"FirstDependency"

フィーチャ タイプは、依存性の领先のパラメーターと同じになります。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

featureTypeRule の値featureType

featureTypeRule が "AsSpecified" のとき、featureType の値は出力のフィーチャ タイプを指定するために使用されます。

値説明

"Simple"

出力は、シンプル フィーチャを含みます。フィーチャのジオメトリ タイプは、geometryTypeRule を使用して指定されます。

"Annotation"

出力は、アノテーション フィーチャを含みます。

"Dimension"

出力は、ディメンション フィーチャを含みます。

featureType の値geometryTypeRule

この設定は、出力フィーチャクラスのジオメトリ タイプ (ポイントやポリゴンなど) を決定します。

値説明

"Unknown"

これがデフォルトです。时常は、他のパラメーターの値に基づいて、updateParameters() 内のジオメトリ タイプを判別できるはずです。ルールを "Unknown" に設定するのは、ジオメトリ タイプを判別するのに相等な情報がない場合だけです。

"FirstDependency"

ジオメトリ タイプは、领先の従属パラメーターと同じになります。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

"Min"、"Max"

すべての従属パラメーターのジオメトリを調べ、出力ジオメトリ タイプをその中の最小または最大タイプに設定します。"Min" と "Max" は、次のように定義されます。ポイントおよびマルチポイント = 0 ポリライン = 1ポリゴン = 2 従属パラメーターがポイントまたはポリゴン フィーチャクラスの場合、最小はポイントになり、最大はポリゴンになります。

"AsSpecified"

ジオメトリ タイプは、geometryType プロパティの値によって決定されます。

geometryTypeRule の値geometryType

geometryTypeRule が "AsSpecified" のときに、使用するジオメトリ タイプ ("Point"、"Multipoint"、"Polyline"、"Polygon" のいずれか) に設定します。

extentRule値説明

"AsSpecified"

出力範囲は、extent プロパティで指定されます。

"FirstDependency"

出力範囲は、领先の従属パラメーターと同じになります。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

"Intersection"

出力範囲は、すべての従属パラメーターの交差部分になります (以下に示すように、これは [クリップ (Clip)] ツールが使用する本体です)。

"Union"

出力範囲は、すべての従属パラメーターの幾何学的ユニオンになります。

"Environment"

出力範囲は、出力範囲環境設定に基づき計算されます。

extentRule の値

extent

extentRule が "AsSpecified" のときに、使用する範囲に設定します。範囲は、4 つの値を抓つスペースで区切られた翰墨列または Python リスト オブジェクトで設定できます。順序は、xmin、ymin、xmax、ymax です。

Python リストを使用した場合

fieldsRule

fieldsRule は、出力フィーチャクラスまたはテーブルに存在するフィールドを決定します。

次の表で、FID はフィーチャ ID を表していますが、実際は、すべてのフィーチャクラスまたはテーブルにある ObjectID フィールドを参照しています。

値説明

"None"

オブジェクト ID 除外のフィールドは出力されません。

"FirstDependency"

出力フィールドは、领先の従属パラメーターと同じになります。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

"FirstDependencyFIDs"

领先の従属入力の ObjectID だけが出力に書き込まれます。

"All"

従属パラメーターのリスト内にあるすべてのフィールドが出力されます。

"AllNoFIDs"

ObjectID を除くすべてのフィールドが出力に書き込まれます。

"AllFIDsOnly"

すべての ObjectID フィールドが出力に書き込まれますが、入力のその他のフィールドは書き込まれません。

fieldsRule の値

fieldsRule に "FirstDependency" を使用した [クリップ (Clip)] の例

additionalFields

fieldsRule を使用して追加されたフィールドの他にも、追加フィールドを出力に追加できます。additionalFields は、 フィールド オブジェクトの Python リストを使用します。

AdditionalFields を使用した例を暗示する

cellSizeRule

出力ラスターまたはグリッドのセルサイズを決定します。

値説明

"AsSpecified"

出力セルサイズは、cellSize プロパティで指定されます。

"FirstDependency"

セル サイズは、领先の従属パラメーターから計算されます。従属パラメーターがラスターの場合、そのセルサイズが使用されます。従属パラメーターがフィーチャクラスやフィーチャ データセットなど、他のタイプの場合、データの範囲を使用してセルサイズが計算されます。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

"Min"、"Max"

"Min" の場合、出力セルサイズは従属パラメーターの最小セルサイズになります。"Max" の場合、出力セルサイズは従属パラメーターの最大セルサイズになります。

"Environment"

出力セルサイズは、セルサイズ環境設定に基づいて計算されます。

cellSizeRule の値cellSize

cellSizeRule が "AsSpecified" のときに、使用するセルサイズに設定します。

rasterRule

出力ラスターに含まれるデータ タイプ (整数または浮動极少) を決定します。

値説明

"FirstDependency"

データ タイプ (整数または浮動极少) は、领先の従属パラメーターと同じになります。领先の従属パラメーターが複数値 (値のリスト) の場合、複数値リストの领先の値が使用されます。

"Min"、"Max"

整数は浮動极少より小さいと見なされます。たとえば、2 つの従属パラメーターがあり、一方は整数を含み、他方は浮動极少を含む場合、"Min" は整数の出力を作成し、"Max" は浮動极少の出力を作成します。

"Integer"

出力ラスターには整数 (当然数) が含まれます。

"Float"

出力ラスターには浮動极少 (有理数) が含まれます。

rasterRule の値rasterFormatRule

出力ラスターの样貌 ("Grid" または "Img") を決定します。デフォルトは "Img" です。これは、ERDAS IMAGINE 样貌です。"Grid" は Esri の样貌です。

ラスター データ样貌の詳細

additionalChildren

ワークスペースは、データセット (フィーチャ、テーブル、ラスター) のコンテナーです。これらのデータセットは、ワークスペースの子です (ワークスペースは親と考えます)。ツールがデータセットを新規または既存のワークスペースに追加する場合、子の記述を追加することで、ワークスペースの記述を更新することができます。たとえば、フィーチャクラスのリスト (複数値) を使用して、何らかの款式でそれらのフィーチャクラスを変更してから、変更したフィーチャクラスを既存のワークスペースに書き込むツールがあるとします。ModelBuilder でこのツールを使用する場合、ワークスペースはツールの派生出力となり、このワークスペースを [データの選択 (Select Data)] ツールへの入力として使用できます。[データの選択 (Select Data)] では、コンテナー内にある子のデータセットを選択して、それを別のツールの入力として使用できます。

additionalChildren への入力は、1 つ以上の子の記述です。子の記述には、2 つの样貌があります。

样貌説明

value オブジェクト

value プロパティから返されるフィーチャクラス、テーブル、ラスター、ディメンション、またはアノテーション値。

[type, name, fields, extent, spatial reference] という样貌の Python リスト オブジェクト

追加する子の記述を含む Python リスト。リスト内の领先の 2 つのエントリであるタイプと名前だけが必須です。残りの引数はオプションです。

additionalChildren のメンバー リスト

複数の子を追加する場合、子の記述のリストを指定します。Python リスト オブジェクトの样貌で子を追加している場合、additionalChildren のリストのリストを作成します。

Python リストの样貌には、次の表に示したように 5 つの引数があります。

引数種類説明

type

必須

"Point"、"Multipoint"、"Polyline"、"Polygon"、"Table"、"Raster"、"Annotation"、"Dimension" のいずれか

name

必須

データセットの名前。データセットのベース名 ("streets") またはフル カタログ パス ("E:\mydata\test.gdb\infrastructure\streets") を使用できます。フル カタログ パスで指定した場合、ベース名 ("streets") 除外は無視されます。

fields

オプション

フィールド オブジェクトの Python リスト。これには、子にあるフィールドが含まれます (既知の場合)。

extent

オプション

子の空間範囲を含む翰墨列または Python リスト。

spatial reference

オプション

空間参照オブジェクト。

子のリストの本体

これらの引数は、この順序で指定する必要があります。オプションの引数をスキップするには、Python のキーワード None または "#" を使用します。

次に、ワークスペース スキーマを設定する例をいくつか示します。これらの例は、次の引数を抓つスクリプト ツールに基づいています。

パラメーター名プロパティ

0

入力フィーチャクラス

フィーチャクラス - 入力。

1

入力テーブル

テーブル - 入力。

2

入力ワークスペース

ワークスペース - 入力 (ツールの結果を抓つ既存のワークスペース)。

3

派生ワークスペース

ワークスペース - 派生出力、赢得元は Input_workspace。このワークスペースのスキーマは、追加の子を抓つように変更されます。

ツール例のパラメーター

このツールは、入力フィーチャクラスとテーブルを使い、両方をワークスペースにコピーして、新しいフィールドをフィーチャクラスに追加してから、新しいポリゴン フィーチャクラスをワークスペースに作成します (ここでの筹办はワークスペース スキーマの設定を示すことなので、ツールの実際の処理は要紧ではありません)。以下のコード例は互いを欺诈して構築されており、まず additionalChildren を単純に使用しています。以下のコード例をいくつか実装してテストする場合は、次のモデルを使用してコードをテストできます。

整合チェックの結果を暗示するのに使用されるモデル

initializeParameters() では、従属パラメーター (パラメーター 2) から、出力ワークスペースのクローンが作成されます。この依存性は、ツールのプロパティで設定されますが、initializeParameters() で設定して、ツールのプロパティで誰かが依存性を削除してしまうのを防ぐこともできます。

例: 2 つの入力 (未変更) を出力ワークスペースにコピーします。

例: ツールが、新しいポリゴン フィーチャクラスを作成します。この新しいフィーチャクラスについて (整合チェック時に) わかるプロパティは、名前 ("SummaryPolygon") とタイプ ("polygon") だけです。

例: 入力フィーチャクラスにフィールドを追加します。

SummaryPolygon(新しいポリゴン フィーチャクラス) のフィールドを作成するには、上記の例で示したパターンに似たフィールド オブジェクトのリストを作成します。

例: 複数値の入力

この例では、领先のパラメーターはフィーチャクラスの複数値です。複数値内の各フィーチャクラスは、派生ワークスペースにコピーされます。コピーされた各フィーチャクラスに、ProjectID という新しいフィールドが追加されます金先生 偷拍。