演習 3b:データの変換と Visualizer の使用

複雑性: 上級 データ要件: ArcGIS Tutorial Data for Desktop データ パス: C:\arcgis\ArcTutor\Data Interoperability\ 目的: FME Workbench でフィーチャと属性を変換し、Visualizer を使用して出力を検証する方法の基礎を学びます。

Transformer は、フィーチャまたはスキーマの特定の再構築を実行する FME Workbench オブジェクトです。ユーザがワークスペース キャンバスに追加する視覚オブジェクトであり、ソース リーダとライタ フィーチャ タイプの間を接続したり、他のTransformer に接続したりします。

この演習では、FME トランスフォーマを「演習 3a: 空間 ETL の概要」で作成した空間 ETL ツールに追加することによって、その使い方の基礎を学びます。MGE パーセル データを変換する空間 ETL ツールを作成し、テスト句で新しいフィーチャを評価し、失敗したフィーチャまたは合格したフィーチャとして出力を生成します。最後に、Visualizer を使用して、データを生成することなくワークスペースの出力を調べます。ワークスペースをカスタム形式としてエクスポートして演習を完了します。

FME Workbench を使用して、次の作業を行います。

ArcMap の起動

前提条件:

Data Interoperability エクステンションを有効にする必要があります。

この演習を開始するには、前の演習「演習 3a: 空間 ETL の概要」を完了している必要があります。

手順:
  1. ArcMap を起動します。
  2. [標準] ツールバーの [カタログ ウィンドウ] ボタン カタログをクリックします。
  3. [場所] テキスト ボックスに「C:\arcgis\ArcTutor\Data Interoperability\parcels\」と入力して、Enter キーを押します。

    この場所がカタログ ツリーに追加されます。

    カタログ ウィンドウ

空間 ETL ツールのコピーと名前の変更

手順:
  1. [MGE パーセルのインポート] ツールを右クリックし、ショートカット メニューから [コピー] を選択します。
  2. [パーセル] ツールボックスを右クリックし、ショートカット メニューから [貼り付け] をクリックします。
  3. [MGE パーセルのインポート(2)] ツールを右クリックし、ショートカット メニューから [名前の変更] をクリックして「カスタム パーセル」と入力します。
  4. [カスタム パーセル] ツールを右クリックし、[編集] をクリックします。

    Workbench が起動します。

AreaBuilder トランスフォーマの追加

AreaBuilder トランスフォーマは、閉じたシェープを形成するラインからトポロジ的に正しいポリゴン フィーチャを作成します。

AreaBuilder トランスフォーマを LOT_LINES GeometryFilter に接続します。

手順:
  1. トランスフォーマ ギャラリーが利用可能であることを確認します。
    メイン メニューからトランスフォーマ ウィンドウを開くには、[表示] [ウィンドウ] [トランスフォーマ ギャラリー] の順にクリックします。

    トランスフォーマ ウィンドウの表示

  2. トランスフォーマ ウィンドウで、[検索] テキスト ボックスに「areabuilder」と入力し、Enter キーを押します。
  3. [AreaBuilder] をダブルクリックします。

    AreaBuilder トランスフォーマがキャンバスに追加されます。

  4. LOT_LINES GeometryFilter と LOT_LINES ターゲット フィーチャを接続するラインをクリックし、Delete キーを押します。

    GeometryFilter は LOT_LINES ライタ フィーチャ タイプから接続解除されます。

  5. LOT_LINES GeometryFilter で、LINE 属性の出力の横にある黄色の矢印をクリックし、AreaBuilder の入力の横にある赤色の矢印までドラッグします。

    GeometryFilter の出力が AreaBuilder の入力に接続され、矢印が緑色に変わります。

    AreaBuilder トランスフォーマの追加

PointOnAreaOverlayer トランスフォーマの追加

PointOnAreaOverlayer トランスフォーマは、ポイント フィーチャをエリア フィーチャにオーバーレイし、属性をマージします。これにより、各ポリゴン フィーチャはその境界内に含まれるポイント フィーチャから属性を取得します。同じ名前の属性は置き換えられません。

PointOnAreaOverlayer トランスフォーマを LOT_LINES AreaBuilder トランスフォーマおよび LOT_POINTS GeometryFilter に接続します。

手順:
  1. トランスフォーマ ウィンドウで、検索テキスト ボックスに「PointOnArea」と入力し、Enter キーを押します。
  2. [PointOnAreaOverlayer] をダブルクリックします。

    PointOnAreaOverlayer トランスフォーマがキャンバスに追加されます。

  3. AreaBuilder トランスフォーマで、AREA 属性の出力の横にある黄色の矢印をクリックし、PointOnAreaOverlayer AREA の入力の横にある赤色の矢印までドラッグします。

    AreaBuilder AREA 属性の出力が PointOnAreaOverlayer AREA の入力に接続され、矢印が緑色に変わります。

    PointOnAreaOverlayer トランスフォーマの追加

  4. [プロパティ] ボタンをクリックして、パラメータを表示します。

    [PointOnAreaOverlayer パラメータ] ダイアログ ボックスが表示されます。

    オーバーラップ カウント属性

    オーバーラップ カウント属性は、各ポリゴンに含まれているポイント フィーチャの数を数えます。これは、データを検証してフィーチャを送信し、以降の処理のために出力を分割するのに便利です。次のセクションでは、Tester トランスフォーマを接続して、この数字を評価し、評価に従って出力を振り分けます。

  5. [OK] をクリックします。

    [PointOnAreaOverlayer パラメータ] ダイアログ ボックスが閉じます。

  6. LOT_POINTS GeometryFilter と LOT_POINTS ライタ フィーチャ タイプを接続するラインをクリックし、Delete キーを押します。

    GeometryFilter はライタ フィーチャ タイプから接続解除されます。

  7. LOT_POINTS GeometryFilter で、POINT の出力の横にある黄色の矢印をクリックし、PointOnAreaOverlayer POINT の入力の横にある赤色の矢印までラインをドラッグします。

    GeometryFilter POINT の出力が PointOnAreaOverlayer POINT の入力に接続され、矢印が緑色に変わります。

キャンバスのレイアウトの編成

コネクタが交差し始めたら、作業が容易になるようにワークスペースを編成することができます。

  • キャンバスのレイアウトを編成するには、[ツール] [自動レイアウト] の順にクリックして、次の図のようにキャンバスのオブジェクトをドラッグします。

レイアウトの編成

ヒントヒント:

別の方法として、コネクタ ラインを右クリックし、ショートカット メニューの [リンク上に頂点を挿入] をクリックして、1 つ以上の頂点を追加し、各頂点をドラッグして、コネクタが他のトランスフォーマの周りを通るようにすることができます。

Tester トランスフォーマの追加

Tester トランスフォーマは、フィーチャで 1 つ以上のテストを評価し、テストの結果に従ってフィーチャの経路を決めます。

Tester トランスフォーマを PointOnAreaOverlayer トランスフォーマに接続します。PointOnAreaOverlayer トランスフォーマによって生成されたオーバーラップ カウント属性を評価するテスト句を追加します。1 つのポイント フィーチャを含むポリゴン フィーチャを [合格] の出力へ、それ以外はすべて [失敗] の出力へ送ります。

手順:
  1. トランスフォーマ ウィンドウで、[検索] テキスト ボックスに「Tester」と入力し、[検索] をクリックします。
  2. [Tester] をダブルクリックします。

    Tester トランスフォーマがキャンバスに追加されます。

  3. PointOnAreaOverlayer の [エリア] の出力を Tester の [入力] に接続します。

    Tester トランスフォーマの追加

  4. Tester トランスフォーマで [プロパティ] ボタンをクリックします。

    [Tester パラメータ] ダイアログ ボックスが表示されます。

    テスト句の定義

  5. [左の値] フィールドの最初のセルをダブルクリックし、下矢印をクリックして、[_overlaps] を選択します。
  6. [Op.] フィールドの最初のセルをダブルクリックし、矢印をクリックして、[=] を選択します。
  7. [右の値] フィールドの最初のセルをクリックして、「1」を入力します。
  8. [OK] をクリックします。

    [Tester パラメータ] ダイアログ ボックスが閉じます。

LOT_LINES ライタ フィーチャ タイプの再構成

LOT_LINES ライタ フィーチャ タイプの名前を problem_polys に変更し、それを、Tester トランスフォーマで定義したテスト句に合格しないポリゴン フィーチャを生成するように構成します。さらに、num_points という名前のユーザ属性を追加し、_overlap 値を格納します。

手順:
  1. Tester トランスフォーマの [失敗] の出力を LOT_LINES ターゲット フィーチャの [入力] に接続します。
  2. LOT_LINES ターゲット フィーチャで [プロパティ] ボタンをクリックします。

    [フィーチャ タイプ プロパティ] ダイアログ ボックスが開きます。

    problem_polys フィーチャ タイプの構成

  3. [一般] タブをクリックします。
  4. [フィーチャ タイプ名] テキスト ボックスに、「problem_polys」と入力します。
  5. [許可されたジオメトリ] の矢印をクリックして、[geodb_polyline] を選択します。
  6. [ユーザ属性] タブをクリックします。
    ユーザ属性の追加
  7. すべての属性を選択し、Delete キーを押します。

    LOT_LINES 属性は不要です。

  8. [属性名] フィールドにある最初の空のセルをクリックし、「num_points」と入力します。

    num_points 属性は、Tester トランスフォーマで生成された _overlay 属性値を格納するために使用されます。この値は、失敗したフィーチャごとのオーバーラップするポイントの数を表します。

  9. [データ タイプ] 矢印をクリックし、[整数] を選択します。
  10. [OK] をクリックします。

    [フィーチャ タイプ プロパティ] ダイアログ ボックスが閉じます。

  11. [Tester] トランスフォーマを展開し、[_overlay] の出力を [problem_polys] フィーチャ タイプの [num_points] に接続します。

    [Tester] トランスフォーマとフィーチャ タイプの接続は次のようになります。

    Tester を problem_polys フィーチャ タイプに接続

LOT_POINTS ライタ フィーチャ タイプの再構成

LOT_POINTS ライタ フィーチャ タイプの名前を parcels に変更し、それを、Tester トランスフォーマで定義したテスト句に合格するポリゴン フィーチャを生成するように構成します。

手順:
  1. Tester トランスフォーマの [合格] の出力を LOT_POINTS ターゲット フィーチャの [入力] に接続します。
  2. LOT_POINTS ターゲット フィーチャで [プロパティ] ボタンをクリックします。

    [フィーチャ タイプ プロパティ] ダイアログ ボックスが開きます。

    パーセル フィーチャ タイプの構成

  3. [一般] タブをクリックします。
  4. [フィーチャ タイプ名] テキスト ボックスに「parcels」と入力します。
  5. [許可されたジオメトリ] の矢印をクリックして、[geodb_polyline] を選択します。
  6. [ユーザ属性] タブをクリックします。
    不要な属性の削除
  7. 名前が igds_ で始まる属性だけを選択し、Delete キーを押します。

    igds_ 属性は、IGDS ソース エレメント タイプから FME フィーチャ タイプへの変換を簡単にするために、FME リーダによって作成されたシンボル名です。これをターゲット フィーチャに含める必要はありません。

  8. [OK] をクリックします。

    [フィーチャ タイプ プロパティ] ダイアログ ボックスが閉じます。

    Tester トランスフォーマとライタの接続は次のようになります。
    Tester を parcels フィーチャ タイプに接続

Visualizer を使用したワークスペースの出力の検証

Visualizer は、データを生成したり既存のデータを上書きしたりせずに、ワークスペースの出力を調査できるメモリ内ビューアです。

ワークスペースの出力を Visualizer にリダイレクトし、結果を検証します。

手順:
  1. [ナビゲータ] ウィンドウで、[ツール パラメータ] を展開し、[ターゲットのリダイレクト] を右クリックして、ショートカット メニューから [パラメータを編集] をクリックします。

    [パラメータを編集] ダイアログ ボックスが表示されます。

    出力を Visualizer へリダイレクト

  2. [ターゲットのリダイレクト] 矢印をクリックし、[Visualizer へリダイレクト] を選択します。
  3. [OK] をクリックします。

    [パラメータを編集] ダイアログ ボックスが閉じます。

  4. メイン メニューで、[ファイル] [変換を実行] の順にクリックします。

    Visualizer が起動します。

    出力を Visualizer で検証

  5. [Viewspace] でデータセットを展開します。
  6. ツールバーの [個別属性] ツールをクリックし、フィーチャを選択して、[情報] ウィンドウに表示されるその属性値を調べます。
  7. ワークスペースでは、MicroStation DGN(*.par)ファイルに格納されたライン エレメントからポリゴンを作成し、parcels_attr.mdb データベースに格納されたポイント フィーチャ属性を取得することを確認してください。さらに、Tester トランスフォーマが、テスト句に合格しなかったフィーチャを problem_polys フィーチャ タイプに送っていることも確認できるはずです。
  8. Visualizer を終了します。
  9. [Workbench] メニューで、[ファイル] [保存] の順にクリックします。

空間 ETL ツールをカスタム形式として保存

カスタム形式は、FME Workbench から形式としてエクスポートされる変換ワークスペースであり、FME Reader Gallery で使用されます。カスタム形式は外部の *.fds ファイルに保存され、他のデスクトップの Reader Gallery にインポートできます。

カスタム形式を作成すると、FME Reader Gallery にその形式が追加されます。作成後にギャラリーを使用すると、そのカスタム形式を FME Workbench で編集すること、またはリストから削除することができます。カスタム形式を削除すると、デスクトップから *.fds ファイルが削除されます。

手順:
  1. [Workbench] メニューで、[ファイル] [カスタム形式としてエクスポート] の順にクリックします。

    [カスタム形式の名前と説明を設定] ダイアログ ボックスが開きます。

    カスタム形式としてエクスポート

  2. [新規カスタム形式の名前] テキスト ボックスに、「Custom_parcels」と入力します。
  3. [新規カスタム形式の説明] テキスト ボックスに、「Tutorial exercise 3b: transforming data」と入力します。
  4. [OK] をクリックします。

    デフォルトでは、カスタム形式(*.fds)に対して 2 つめの Workbench セッションが起動します。このワークスペースでは何もすることがありません。

  5. [ファイル] [終了] の順にクリックして、カスタム形式のワークスペースを閉じます。
  6. [ファイル] [終了] の順にクリックして、変換のワークスペースを閉じます。

このカスタム形式は、次に FME Workbench を開くか、新規の相互運用コネクションを作成したときに、FME Reader Gallery に選択肢として表示されます。

これで、演習は完了です。

次の演習「演習 3c: ソース属性を使用したデータの分離」に進んでください。

関連トピック

9/14/2013