演習 3b:データの変換と Visualizer の使用
Transformer は、フィーチャまたはスキーマの特定の再構築を実行する FME Workbench オブジェクトです。ユーザがワークスペース キャンバスに追加する視覚オブジェクトであり、ソース リーダとライタ フィーチャ タイプの間を接続したり、他のTransformer に接続したりします。
この演習では、FME トランスフォーマを「演習 3a: 空間 ETL の概要」で作成した空間 ETL ツールに追加することによって、その使い方の基礎を学びます。MGE パーセル データを変換する空間 ETL ツールを作成し、テスト句で新しいフィーチャを評価し、失敗したフィーチャまたは合格したフィーチャとして出力を生成します。最後に、Visualizer を使用して、データを生成することなくワークスペースの出力を調べます。ワークスペースをカスタム形式としてエクスポートして演習を完了します。
FME Workbench を使用して、次の作業を行います。
- AreaBuilder トランスフォーマを追加して、LOT_LINES ソース フィーチャ タイプからポリゴンを作成します。
- PointOnAreaOverlayer トランスフォーマを追加して、LOT_POINTS フィーチャをポリゴン フィーチャにオーバーレイし、属性をマージします。
- Tester トランスフォーマを追加して、各ポリゴン フィーチャ内でポイント フィーチャを評価し、その数を数えます。
- ワークスペースの出力を Visualizer にリダイレクトし、ワークスペースの出力を調べます。
- ワークスペースをカスタム形式としてエクスポートします。
ArcMap の起動
- ArcMap を起動します。
- [標準] ツールバーの [カタログ ウィンドウ] ボタン をクリックします。
-
[場所] テキスト ボックスに「C:\arcgis\ArcTutor\Data Interoperability\parcels\」と入力して、Enter キーを押します。
この場所がカタログ ツリーに追加されます。
空間 ETL ツールのコピーと名前の変更
- [MGE パーセルのインポート] ツールを右クリックし、ショートカット メニューから [コピー] を選択します。
- [パーセル] ツールボックスを右クリックし、ショートカット メニューから [貼り付け] をクリックします。
- [MGE パーセルのインポート(2)] ツールを右クリックし、ショートカット メニューから [名前の変更] をクリックして「カスタム パーセル」と入力します。
- [カスタム パーセル] ツールを右クリックし、[編集] をクリックします。
Workbench が起動します。
AreaBuilder トランスフォーマの追加
AreaBuilder トランスフォーマは、閉じたシェープを形成するラインからトポロジ的に正しいポリゴン フィーチャを作成します。
AreaBuilder トランスフォーマを LOT_LINES GeometryFilter に接続します。
- トランスフォーマ ギャラリーが利用可能であることを確認します。メイン メニューからトランスフォーマ ウィンドウを開くには、[表示] → [ウィンドウ] → [トランスフォーマ ギャラリー] の順にクリックします。
- トランスフォーマ ウィンドウで、[検索] テキスト ボックスに「areabuilder」と入力し、Enter キーを押します。
-
[AreaBuilder] をダブルクリックします。
AreaBuilder トランスフォーマがキャンバスに追加されます。
-
LOT_LINES GeometryFilter と LOT_LINES ターゲット フィーチャを接続するラインをクリックし、Delete キーを押します。
GeometryFilter は LOT_LINES ライタ フィーチャ タイプから接続解除されます。
- LOT_LINES GeometryFilter で、LINE 属性の出力の横にある黄色の矢印をクリックし、AreaBuilder の入力の横にある赤色の矢印までドラッグします。
GeometryFilter の出力が AreaBuilder の入力に接続され、矢印が緑色に変わります。
PointOnAreaOverlayer トランスフォーマの追加
PointOnAreaOverlayer トランスフォーマは、ポイント フィーチャをエリア フィーチャにオーバーレイし、属性をマージします。これにより、各ポリゴン フィーチャはその境界内に含まれるポイント フィーチャから属性を取得します。同じ名前の属性は置き換えられません。
PointOnAreaOverlayer トランスフォーマを LOT_LINES AreaBuilder トランスフォーマおよび LOT_POINTS GeometryFilter に接続します。
- トランスフォーマ ウィンドウで、検索テキスト ボックスに「PointOnArea」と入力し、Enter キーを押します。
-
[PointOnAreaOverlayer] をダブルクリックします。
PointOnAreaOverlayer トランスフォーマがキャンバスに追加されます。
- AreaBuilder トランスフォーマで、AREA 属性の出力の横にある黄色の矢印をクリックし、PointOnAreaOverlayer AREA の入力の横にある赤色の矢印までドラッグします。
AreaBuilder AREA 属性の出力が PointOnAreaOverlayer AREA の入力に接続され、矢印が緑色に変わります。
- [プロパティ] ボタンをクリックして、パラメータを表示します。
[PointOnAreaOverlayer パラメータ] ダイアログ ボックスが表示されます。
オーバーラップ カウント属性は、各ポリゴンに含まれているポイント フィーチャの数を数えます。これは、データを検証してフィーチャを送信し、以降の処理のために出力を分割するのに便利です。次のセクションでは、Tester トランスフォーマを接続して、この数字を評価し、評価に従って出力を振り分けます。
- [OK] をクリックします。
[PointOnAreaOverlayer パラメータ] ダイアログ ボックスが閉じます。
-
LOT_POINTS GeometryFilter と LOT_POINTS ライタ フィーチャ タイプを接続するラインをクリックし、Delete キーを押します。
GeometryFilter はライタ フィーチャ タイプから接続解除されます。
- LOT_POINTS GeometryFilter で、POINT の出力の横にある黄色の矢印をクリックし、PointOnAreaOverlayer POINT の入力の横にある赤色の矢印までラインをドラッグします。
GeometryFilter POINT の出力が PointOnAreaOverlayer POINT の入力に接続され、矢印が緑色に変わります。
キャンバスのレイアウトの編成
コネクタが交差し始めたら、作業が容易になるようにワークスペースを編成することができます。
- キャンバスのレイアウトを編成するには、[ツール] → [自動レイアウト] の順にクリックして、次の図のようにキャンバスのオブジェクトをドラッグします。
別の方法として、コネクタ ラインを右クリックし、ショートカット メニューの [リンク上に頂点を挿入] をクリックして、1 つ以上の頂点を追加し、各頂点をドラッグして、コネクタが他のトランスフォーマの周りを通るようにすることができます。
Tester トランスフォーマの追加
Tester トランスフォーマは、フィーチャで 1 つ以上のテストを評価し、テストの結果に従ってフィーチャの経路を決めます。
Tester トランスフォーマを PointOnAreaOverlayer トランスフォーマに接続します。PointOnAreaOverlayer トランスフォーマによって生成されたオーバーラップ カウント属性を評価するテスト句を追加します。1 つのポイント フィーチャを含むポリゴン フィーチャを [合格] の出力へ、それ以外はすべて [失敗] の出力へ送ります。
- トランスフォーマ ウィンドウで、[検索] テキスト ボックスに「Tester」と入力し、[検索] をクリックします。
-
[Tester] をダブルクリックします。
Tester トランスフォーマがキャンバスに追加されます。
- PointOnAreaOverlayer の [エリア] の出力を Tester の [入力] に接続します。
- Tester トランスフォーマで [プロパティ] ボタンをクリックします。
[Tester パラメータ] ダイアログ ボックスが表示されます。
- [左の値] フィールドの最初のセルをダブルクリックし、下矢印をクリックして、[_overlaps] を選択します。
- [Op.] フィールドの最初のセルをダブルクリックし、矢印をクリックして、[=] を選択します。
- [右の値] フィールドの最初のセルをクリックして、「1」を入力します。
- [OK] をクリックします。
[Tester パラメータ] ダイアログ ボックスが閉じます。
LOT_LINES ライタ フィーチャ タイプの再構成
LOT_LINES ライタ フィーチャ タイプの名前を problem_polys に変更し、それを、Tester トランスフォーマで定義したテスト句に合格しないポリゴン フィーチャを生成するように構成します。さらに、num_points という名前のユーザ属性を追加し、_overlap 値を格納します。
- Tester トランスフォーマの [失敗] の出力を LOT_LINES ターゲット フィーチャの [入力] に接続します。
- LOT_LINES ターゲット フィーチャで [プロパティ] ボタンをクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが開きます。
- [一般] タブをクリックします。
- [フィーチャ タイプ名] テキスト ボックスに、「problem_polys」と入力します。
- [許可されたジオメトリ] の矢印をクリックして、[geodb_polyline] を選択します。
- [ユーザ属性] タブをクリックします。
- すべての属性を選択し、Delete キーを押します。
LOT_LINES 属性は不要です。
- [属性名] フィールドにある最初の空のセルをクリックし、「num_points」と入力します。
num_points 属性は、Tester トランスフォーマで生成された _overlay 属性値を格納するために使用されます。この値は、失敗したフィーチャごとのオーバーラップするポイントの数を表します。
- [データ タイプ] 矢印をクリックし、[整数] を選択します。
- [OK] をクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが閉じます。
- [Tester] トランスフォーマを展開し、[_overlay] の出力を [problem_polys] フィーチャ タイプの [num_points] に接続します。
[Tester] トランスフォーマとフィーチャ タイプの接続は次のようになります。
LOT_POINTS ライタ フィーチャ タイプの再構成
LOT_POINTS ライタ フィーチャ タイプの名前を parcels に変更し、それを、Tester トランスフォーマで定義したテスト句に合格するポリゴン フィーチャを生成するように構成します。
- Tester トランスフォーマの [合格] の出力を LOT_POINTS ターゲット フィーチャの [入力] に接続します。
- LOT_POINTS ターゲット フィーチャで [プロパティ] ボタンをクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが開きます。
- [一般] タブをクリックします。
- [フィーチャ タイプ名] テキスト ボックスに「parcels」と入力します。
- [許可されたジオメトリ] の矢印をクリックして、[geodb_polyline] を選択します。
- [ユーザ属性] タブをクリックします。
- 名前が igds_ で始まる属性だけを選択し、Delete キーを押します。
igds_ 属性は、IGDS ソース エレメント タイプから FME フィーチャ タイプへの変換を簡単にするために、FME リーダによって作成されたシンボル名です。これをターゲット フィーチャに含める必要はありません。
- [OK] をクリックします。
[フィーチャ タイプ プロパティ] ダイアログ ボックスが閉じます。
Tester トランスフォーマとライタの接続は次のようになります。
Visualizer を使用したワークスペースの出力の検証
Visualizer は、データを生成したり既存のデータを上書きしたりせずに、ワークスペースの出力を調査できるメモリ内ビューアです。
ワークスペースの出力を Visualizer にリダイレクトし、結果を検証します。
-
[ナビゲータ] ウィンドウで、[ツール パラメータ] を展開し、[ターゲットのリダイレクト] を右クリックして、ショートカット メニューから [パラメータを編集] をクリックします。
[パラメータを編集] ダイアログ ボックスが表示されます。
- [ターゲットのリダイレクト] 矢印をクリックし、[Visualizer へリダイレクト] を選択します。
- [OK] をクリックします。
[パラメータを編集] ダイアログ ボックスが閉じます。
-
メイン メニューで、[ファイル] → [変換を実行] の順にクリックします。
Visualizer が起動します。
- [Viewspace] でデータセットを展開します。
- ツールバーの [個別属性] ツールをクリックし、フィーチャを選択して、[情報] ウィンドウに表示されるその属性値を調べます。
- Visualizer を終了します。
- [Workbench] メニューで、[ファイル] → [保存] の順にクリックします。
空間 ETL ツールをカスタム形式として保存
カスタム形式は、FME Workbench から形式としてエクスポートされる変換ワークスペースであり、FME Reader Gallery で使用されます。カスタム形式は外部の *.fds ファイルに保存され、他のデスクトップの Reader Gallery にインポートできます。
カスタム形式を作成すると、FME Reader Gallery にその形式が追加されます。作成後にギャラリーを使用すると、そのカスタム形式を FME Workbench で編集すること、またはリストから削除することができます。カスタム形式を削除すると、デスクトップから *.fds ファイルが削除されます。
-
[Workbench] メニューで、[ファイル] → [カスタム形式としてエクスポート] の順にクリックします。
[カスタム形式の名前と説明を設定] ダイアログ ボックスが開きます。
- [新規カスタム形式の名前] テキスト ボックスに、「Custom_parcels」と入力します。
- [新規カスタム形式の説明] テキスト ボックスに、「Tutorial exercise 3b: transforming data」と入力します。
- [OK] をクリックします。
デフォルトでは、カスタム形式(*.fds)に対して 2 つめの Workbench セッションが起動します。このワークスペースでは何もすることがありません。
- [ファイル] → [終了] の順にクリックして、カスタム形式のワークスペースを閉じます。
- [ファイル] → [終了] の順にクリックして、変換のワークスペースを閉じます。
このカスタム形式は、次に FME Workbench を開くか、新規の相互運用コネクションを作成したときに、FME Reader Gallery に選択肢として表示されます。
これで、演習は完了です。
次の演習「演習 3c: ソース属性を使用したデータの分離」に進んでください。