FMEリファレンス > フィーチャーと属性
最終更新: 2022-7-1 | FME 2022.0.1.0
フィーチャー (Features)
フィーチャーはひとつの事物を表すデータ構造であり、ジオメトリ (ベクター、ラスター、点群などの空間データ)、座標系 (座標系定義を参照するための識別子)、属性 (文字列や数値) によって構成されます。
非空間 (non-spatial) データベースのレコードのように、論理的にはジオメトリを持たないフィーチャーもありますが、FME が取り扱うデータ構造としてのフィーチャーは Null (ナル) ジオメトリを持ちます。また、座標系が定義されていないフィーチャーの座標系識別子には空文字列が設定されます。
フィーチャーは FME によるデータ処理の基本単位であり、ワークスペースの各コンポーネントは実行時に次のように働きます。
- リーダーは、ソースデータセットからデータをフィーチャー単位で抽出し、抽出されたフィーチャーはリーダーフィーチャータイプを通じてひとつずつデータフローに送り出されます。
- トランスフォーマーは、フィーチャーをひとつずつ受け取り、処理後のフィーチャーをひとつずつ出力します。トランスフォーマーの種類によって、フィーチャーを受け取るたびに処理を行ってすぐに出力するもの、複数のフィーチャーを一時的にため込み、それらを再構成したフィーチャーを作成してから出力を始めるものなどがあります。
- ライターは、ライターフィーチャータイプを通じてデータフローから受け取ったフィーチャーを、ライターフィーチャータイプのスキーマと出力先のフォーマットに規定されるデータ構造に変換して出力先データセットに書き出します。
属性 (Attributes)
属性はフィーチャー内でユニークな名前 (属性名) を持ち、名前によってその値 (属性値) が参照されます。
ひとつの名前でひとつの値を参照する一般の属性のほかに、名前とインデクスの組み合わせによって同一の名前で複数の値を一括して取り扱うことができるリスト属性があります。
参照: リスト属性
ソースデータセットから抽出した、あるいは、出力先データセットに書き出すフィーチャーの属性には、ユーザー属性 (User Attributes) とフォーマット属性 (Format Attributes) の2種類があります。
データ変換の過程では、トランスフォーマーによって属性名や値を変更すること、属性を削除すること、新しい属性を付加することができます。
ユーザー属性 (User Attributes)
事物の属性を記録することができるフォーマットについて、ソースデータセットのスキーマで定義された/出力先データセットのスキーマに定義するそれらの属性をユーザー属性と呼びます。GIS データにおける主題属性、データベーステーブルの列 (フィールド) などがユーザー属性に該当します。
リーダー/ライターフィーチャータイプのプロパティ画面では、User Attributes タブにそれらの属性名とデータ型が表示され、キャンバス上のフィーチャータイプの属性リストにもそれらの名前が表示されます。
リーダーフィーチャータイプのユーザー属性はソースデータセットのスキーマに基づいて決定され、デフォルトでは属性名、データ型を編集することはできません (FME Options の設定によって編集可能にすることもできますが、編集が必要になることはほとんどありません)。
ライターフィーチャータイプのユーザー属性の属性名、データ型は編集することができ、それによって出力先フィーチャータイプのスキーマを定義することができます。
フォーマット属性 (Foramt Attributes)
フォーマット属性は、フォーマットとデータの内容によって規定されるデータの構造やフィーチャーの特性に関して FME が定義する属性で、全てのフォーマットに共通のもの (名前が fme_ から始まる) と、フォーマット固有のもの (名前がフォーマット固有の接頭辞から始まる) があります。
例えば、fme_type はジオメトリタイプ (文字列) を格納する共通のフォーマット属性であり、autocad_color は カラーナンバーを格納する AutoCAD DWG/DXF 固有のフォーマット属性です。
また、データベースフォーマット用のライターフィーチャータイプでテーブルの更新操作を細かくコントロールする fme_db_operation, fme_where のように、オプションパラメーターとしての役割を持つフォーマット属性もあります。
リーダー/ライターフィーチャータイプのプロパティ画面では、Format Attributes タブにそれらの属性名とデータ型が表示されます。
通常は、キャンバス上のフィーチャータイプの属性リストにそれらの名前は表示されませんが、フィーチャータイププロパティ画面 Format Attributes タブの Exposed チェックボックスをチェックすることによって表示させることもできます。
データを FME Data Inspector で表示させ、View または Table View でフィーチャーをひとつ選択すると、Feature Information ウィンドウでユーザー属性だけでなくフォーマット属性の内容も見ることができます。
次に掲げる共通のフォーマット属性は、トランスフォーマーやライターフィーチャータイプで参照する機会が比較的多いものです。
fme_feature_type | フィーチャータイプ名 |
fme_dataset | データセット名 (ただし、ファイルベース、フォルダベースのフォーマットの場合はファイルのフルパス) |
fme_basename | ファイルベース、フォルダベースのフォーマットの場合は拡張子を除くファイル名 |
属性名の変更
次のトランスフォーマーによって属性名を変更することができます。
- AttributeRenamer
- BulkAttributeRenamer
- ListRenamer
属性の付加
トランスフォーマーには、入力フィーチャーのジオメトリや属性に基づいて新しい属性を作成することを目的とするもの、異なる複数のフィーチャーの属性セットを結合することを目的とするもの、空間的な関係があるフィーチャー間で属性セットを相互あるいは一方から他方にコピーするもの、あるいは、処理結果に関する情報を新たな属性に格納してフィーチャーに付加するものなどがあります。
トランスフォーマーによって付加された属性はトランスフォーマーの属性リストに追加され、それに続く他のトランスフォーマーで参照することや、ライターフィーチャータイプの属性に接続することができます。