演習 3c:ソース属性を使用したデータの分離
この演習では、属性値に基づいてデータを分離する 2 つの手法を紹介します。これらの手法を使用すると、ソース データを分類し、共通の値を持つフィーチャ セットを生成する空間 ETL ツールを作成できます。
最初の手法では、ValueMapper トランスフォーマを参照表として使用してワークスペース内のデータを分離し、そのデータを特定の AutoCAD ブロック定義に送ります。2 つめの手法では、GML データセットに対して [属性によるファンアウト] ライタ パラメータを使用して書き込み時にデータを分離し、一意のフィーチャ タイプをリアルタイムに生成します。
Workbench を使用して、次の作業を行います。
- ValueMapper トランスフォーマと COVER フィールドのマップ固有の属性値を AutoCAD ブロック定義に追加し、AutoCAD テンプレート(*.dwg)ファイルに格納します。
- ブロック名、ブロック回転、ブロック参照(挿入)エンティティについて AutoCAD プロパティを公開します。
- チュートリアル データに含まれている AutoCAD テンプレート ファイルを指定します。
- GML データセットに対して 2 つめのデータ出力先を追加し、COVER フィールドの一意の値ごとに [属性によるファンアウト] パラメータを設定します。
ツール ボックスと空間 ETL ツールの作成
Data Interoperability エクステンションを有効にする必要があります。
- ArcMap を起動します。
- [標準] ツールバーの [カタログ ウィンドウ] ボタン をクリックします。
-
[場所] テキスト ボックスに「C:\arcgis\ArcTutor\Data Interoperability\birds_eggs\」と入力して、Enter キーを押します。
この場所がカタログ ツリーに追加されます。
- [birds_eggs] フォルダを右クリックして、[新規作成] → [ツールボックス] の順に選択します。
- ツールボックスを右クリックし、 [名前の変更] をクリックして、「nests」と入力します。
- [nests] ツールボックスを右クリックして、[新規作成] → [空間 ETL ツール] の順にクリックします。
[変換ワークスペースの作成ウィザード] が開きます。
変換ワークスペースの作成
FME リーダの選択
- [形式] の参照ボタンをクリックします。
[FME Reader Gallery] ダイアログ ボックスが開きます。
- [検索] テキスト ボックスに「gdb」と入力します。
- [Esri ジオデータベース(ファイルベース)] 形式を表示している行をクリックして、[OK] をクリックします。
[FME Reader Gallery] ダイアログ ボックスが閉じます。
- [Next] をクリックします。
データ ソースの指定
- [ソース データの特定] の参照ボタンをクリックします。
[ジオデータベースの選択] ダイアログ ボックスが表示されます。
- C:\arcgis\ArcTutor\Data Interoperability\birds_eggs\ フォルダに移動します。
- [nests.gdb] フォルダをクリックして、[開く] をクリックします。
[ジオデータベースの選択] ダイアログ ボックスが閉じます。
- デフォルトのジオデータベースのリーダ パラメータを受け入れ、[次へ] をクリックします。
FME ライタの選択
- [形式] の参照ボタンをクリックします。
[FME Writer Gallery] ダイアログ ボックスが開きます。
- [検索] テキスト ボックスに「dwg」と入力します。
- Autodesk AutoCAD DWG/DXF を表示している行をクリックして、[OK] をクリックします。
[FME Writer Gallery] ダイアログ ボックスが閉じます。
- [Next] をクリックします。
- AutoCAD DWG 形式のデフォルトのパラメータを受け入れ、[次へ] をクリックします。
ワークスペースの作成
- [完了] をクリックします。
ウィザードは情報を処理し、Workbench を起動します。
- リーダ フィーチャ タイプの NESTS およびライタ フィーチャ タイプの NESTS を展開します。ソース フィーチャの属性がターゲットの AutoCAD データセットに直接マッピングされていることを確認します。
AttributeValueMapper トランスフォーマの追加
AttributeValueMapper トランスフォーマは、他の属性に基づいて属性値を割り当て、ルックアップ値を新しい属性に格納します。
特定の COVER 属性値を AutoCAD ブロック名にマッピングし、block_name という名前の属性にルックアップ値を格納します。
- トランスフォーマ ウィンドウで、検索テキスト ボックスに「valuem」と入力し、Enter キーを押します。
-
[AttributeValueMapper] をダブルクリックします。
AttributeValueMapper トランスフォーマがキャンバスに追加されます。
- [AttributeValueMapper] トランスフォーマを右クリックし、ショートカット メニューから [前に挿入] をクリックします。[Workbench ウィザード] が起動します。
- [Next] をクリックします。
トランスフォーマはリーダおよびライタ フィーチャ タイプに接続されます。
- [ValueMapper] トランスフォーマ ウィンドウで [プロパティ] ボタンをクリックします。
[AttributeValueMapper パラメータ] ダイアログ ボックスが表示されます。
- [ソース属性] 矢印をクリックし、[COVER] 属性を選択します。
- [新規属性名] テキスト ボックスに「block_name」と入力します。
個別値のインポート
ソース入力値を手動で入力するか、インポート ウィザードを使用できます。このセクションでは、インポート ウィザードを使用する方法について説明します。このケースのようにターゲットの値が利用できないときは、キー属性と値属性の両方について同じ属性を選択し、1:1 のマッピングを作成することができます。次に、テンプレート(*.dwg)ファイルに格納された対応する AutoCAD ブロック名に一致するように、ターゲットの値を編集できます。
- [インポート] をクリックします。
[Workbench ウィザード] が起動します。
- [データセット] が C:\arcgis\ArcTutor\Data Interoperability\birds_eggs\nests.gdb データ ソースに設定されていることを確認します。[変更] ボタンをクリックして設定を表示することができます。次に、[キャンセル] ボタンをクリックして、ダイアログ ボックスを閉じます。
- [Next] をクリックします。
- [Select Feature Types] ダイアログ ボックスで、フィーチャ タイプ [NEST] をクリックして [次へ] をクリックします。
- [キー属性] ダイアログ ボックスで、[COVER] 属性をクリックし、[次へ] をクリックします。
- [値属性] ダイアログ ボックスで、値属性 [COVER] をクリックし、[次へ] をクリックします。
- データのスキャンが完了したら、[属性値のスキャン] ダイアログ ボックスで [完了] をクリックします。
Workbench に「5 つのルックアップ エントリを読み込みました」というメッセージが表示されます。[OK] をクリックします。
- [デフォルト値] テキスト ボックスに「LOVSK」と入力します。
実行中に、ValueMapper 参照表にない属性値に遭遇すると、デフォルト値が使用されます。この演習では、テンプレート図面に格納された AutoCAD ブロック名を指定します。
- 右側の列の各値をダブルクリックし、テンプレート図面に格納された AutoCAD ブロック名で置き換えます。
-
[OK] をクリックします。
[AttributeValueMapper パラメータ] ダイアログ ボックスが閉じます。
COVER 属性 | AutoCAD ブロック名 |
---|---|
rock | KRYSS |
willow | BARRTR |
conifer | STOMPKT |
bare | LOVTR |
AutoCAD ブロック プロパティの公開
ライタ フィーチャ タイプの特定の AutoCAD ブロック プロパティを公開することにより、ブロック参照が出力 AutoCAD(*.dwg)ファイルにどのように挿入されるかを制御できます。
- ライタ フィーチャ タイプ NESTS の[プロパティ] ボタンをクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが開きます。
- [形式属性] タブをクリックします。
- [autocad_block_name]、[autocad_entity]、および [autocad_rotation] のボックスをオンにします。
-
[OK] をクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが閉じます。
公開された形式属性の入力を接続
- [ValueMapper] トランスフォーマおよび [NESTS] ライタ フィーチャ タイプの属性リストを展開します。リストの最後まで移動し、次の接続を行います。
- [ROTATION] 属性を [autocad_rotation] 形式属性に接続します。
これにより、ソース データの回転値が AutoCAD ブロックに渡されます。
- [block_name] 属性を [autocad_block_name] 形式属性に接続します。
これにより、AttributeValueMapper 参照表でマッピングした block_name 値が DWG ライタに渡されます。
- [autocad_entity] の入力(赤色)の矢印を右クリックし、ショートカット メニューの [定数をアタッチ] をクリックします。
新しい定数が入力として接続されます。
- [新しい定数] をダブルクリックして、「autocad_insert」と入力します。
AutoCAD エンティティを autocad_insert として指定すると、各出力フィーチャにブロック参照が挿入されます。ジオメトリ(またはシンボル)は、次のセクションで指定する AutoCAD テンプレート(*.dwg)ファイルに格納されるブロック定義によって定義されます。
注意:DWG ライタ フィーチャ タイプに渡されるすべてのユーザ属性が、ブロック属性としてブロック参照とともに各フィーチャに挿入されます。これは、DWG ライタの [属性出力] パラメータを [除外] に設定した結果です。これにより、テンプレート ファイルのブロック定義内にある属性定義が実質的にすべて無視され、空間 ETL ツールはどの属性をドローイング ファイルに書き込むかを制御できるようになります。
AutoCAD テンプレート ファイルの指定
AutoCAD テンプレート ファイルには、ValueMapper 参照表で指定したブロック定義が入ります。
Template ファイルのパスを、チュートリアル フォルダの template.dwg ファイルを指すように設定します。
- [ナビゲータ] ウィンドウで、[ACAD] ライタ フィーチャ タイプを展開し、[パラメータ] ノードを展開します。
- [テンプレート ファイル] を右クリックし、ショートカット メニューで [パラメータを編集] をクリックします。
[パラメータを編集] ダイアログ ボックスが表示されます。
- 参照ボタン [...] をクリックし、C:\arcgis\ArcTutor\Data Interoperability\birds_eggs\template.dwg フォルダに移動します。
- [テンプレート ファイルの選択] ダイアログ ボックスで、[template.dwg] をクリックし、[開く] をクリックします。
- [パラメータを編集] ダイアログ ボックスで、[OK] をクリックします。
ツールの保存と名前の変更
作業内容を保存して Workbench を終了し、カタログ ウィンドウでツールの名前を変更します。
- [ファイル] → [保存] の順にクリックしてツールを保存します。
- [ファイル] → [終了] の順にクリックして Workbench を終了します。
- カタログ ウィンドウで新しい空間 ETL ツールを右クリックし、[名前の変更] をクリックして、「Nests to AutoCAD」と入力します。
ツールを開いて実行
ツールを開き、ターゲットのファイル パラメータを設定し、ツールを実行します。
- カタログ ウィンドウで、[Nests] ツールボックス を展開します。
-
[Nests → AutoCAD] ツールをダブルクリックします。
[Nests → AutoCAD] ダイアログ ボックスが表示されます。
- フォルダの [参照] ボタンをクリックし、C:\arcgis\ArcTutor\Data Interoperability\birds_eggs フォルダに移動します。
- [名前を付けて保存] ダイアログ ボックスで、[ファイル名] テキスト ボックスに「nests」と入力し、[保存] をクリックします。FME ライタが必要なファイル拡張子を出力に追加します。
- [OK] をクリックしてツールを実行します。
The tool executes the conversion in the background.A progress bar at the bottom of your map displays the name of the tool.When the tool is finished, a pop-up notification appears in the system tray.You can examine the details of the conversion in the Results window.
ArcMap へのデータの追加
- カタログ ウィンドウで、[nests] DWG データセットを展開し、ポイント フィーチャクラスを ArcMap にドラッグして結果を確認します。
ツールのコピーと名前の変更
ツールをコピーして、2 つめのツールの土台として使用します。2 つめのツールは、[属性によるファンアウト] パラメータを使用して、ドローイング ファイルと GML データセットの両方を生成します。
- カタログ ウィンドウで、[Nests → AutoCAD] 空間 ETL ツールを右クリックし、ショートカット メニューで [コピー] をクリックします。
- [Nests] ツールボックスを右クリックし、[貼り付け] をクリックします。
- [Nests → AutoCAD(2)] ツールを右クリックし、[名前の変更] をクリックして、「Nests to AutoCAD and GML」と入力します。
- [Nests → AutoCAD および GML] ツールを右クリックし、[編集] をクリックします。
Workbench が起動します。
GML のライタの追加
GML データセットを作成し、ValueMapper トランスフォーマの出力に接続する 2 つめのライタを追加します。
- メイン メニューで、[ライタ] → [ライタの追加] の順にクリックします。
[ライタの追加] ダイアログ ボックスが開きます。
- [形式] 参照ボタンをクリックして、[FME Writer Gallery] から [GML(Geography Markup Language)] を選択します。
- [データセット] 参照ボタンをクリックし、C:\arcgis\ArcTutor\Data Interoperability\birds_eggs フォルダに移動します。
- [ファイルの選択] ダイアログ ボックスで、[ファイル名] テキスト ボックスに「nests」と入力し、[保存] をクリックします。FME ライタが必要なファイル拡張子を出力に追加します。
- C:\arcgis\ArcTutor\Data Interoperability\birds_eggs\ フォルダに移動し、[ファイル名] テキスト ボックスに「nests」と入力して、[保存] をクリックします。
- [OK] をクリックします。
Workbench から新しいフィーチャ タイプの作成を求めるメッセージが表示されます。
- [いいえ] をクリックします。
- AutoCAD の出力フィーチャ タイプ [NESTS] を右クリックし、ショートカット メニューから [重複] をクリックします。
- ValueMapper の出力を、新しいターゲットのフィーチャ タイプの入力に接続します。
- 重複したターゲットのフィーチャ タイプ NESTS で [プロパティ] ボタンをクリックします。設定の編集が完了したら、ツールチップに上の図のような情報が表示されます。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが開きます。
- [フィーチャ タイプ名] テキスト ボックスに「NESTS_gml」と入力します。
- [属性によるファンアウト] チェックボックスをオンにし、矢印をクリックして、[COVER] を選択します。
ファンアウトの設定では、属性の値に基づいて出力データが分割されます。データが分割されるのは、ワークスペース内で生成されるときではなく、実行時です。この演習では、この設定を使用して、COVER 属性フィールドの値に基づいて出力を生成します。
- [データセット] 矢印をクリックし、[nests [GML]] を選択します。
-
[OK] をクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが閉じます。
DWG データセットのターゲット パラメータの設定
公開されたパラメータとは、ツールの実行時にユーザが変更することができるすべてのパラメータ(設定)のことです。パラメータは、ほとんどのジオプロセシング ツールと同様に、空間 ETL ツールのダイアログ ボックスにテキスト ボックスとして表示されます。[ナビゲータ] ウィンドウでは、紫色のアイコンで示されます。
GML ライタを追加するときに、デフォルトのターゲット パスおよびファイル名でこのパラメータを設定します。このセクションでは、DWG データセットについて、デフォルトのパスとファイル名でこのパラメータを設定します。
- [ナビゲータ] ウィンドウで、[ACAD] ライタ フィーチャ タイプを展開し、[パラメータ] ノードを展開します。
- [送信先] を右クリックし、ショートカット メニューで [パラメータを編集] をクリックします。
[公開されたパラメータの編集] ダイアログ ボックスが表示されます。
- 参照ボタン [...] をクリックし、C:\arcgis\ArcTutor\Data Interoperability\birds_eggs フォルダに移動します。
- [ファイル名] テキスト ボックスに「nests」と入力し、[保存] をクリックします。
- [OK] をクリックして、[公開されたパラメータの編集] ダイアログ ボックスを閉じます。
ツールの保存と実行
- [ファイル] → [保存] の順にクリックしてツールを保存します。
- [ファイル] → [終了] の順にクリックして Workbench を終了します。
- カタログ ウィンドウで、[Nests] ツールボックス を展開します。
-
[Nests → AutoCAD および GML] ツールをダブルクリックします。
[Nests → AutoCAD および GML] ダイアログ ボックスが表示されます。
- [OK] をクリックします。
The tool executes the conversion in the background.A progress bar at the bottom of your map displays the name of the tool.When the tool is finished, a pop-up notification appears in the system tray.You can examine the details of the conversion in the Results window.
ArcMap へのデータの追加
- カタログ ウィンドウで、[nests] GML データセットを ArcMap にドラッグして結果を確認します。
これで、演習は完了です。