リーダーとライター (Readers and Writers)

FMEリファレンス > リーダーとライター (Readers and Writers)
最終更新: 2022-1-12 | FME 2021.2.0.1

基本用語

リーダー (Reader) とライター (Writer)

リーダーは、ソースデータセットを読み込んでFMEの内部データ構造に変換する処理、ライターは、FMEによる処理後のデータを出力先データセットのフォーマットに規定されるデータ構造に変換して書き出す処理を行うワークスペースのコンポーネントです。リーダーとライターにより、どのフォーマットのどこにあるデータセットをどのように読み込み、処理結果をどのフォーマットでどこにどのように出力するかが規定されます。

Workbench のインターフェースでは、ワークスペースに追加したリーダーとライターは Navigator ウィンドウで次のように表示されます。

FMEによるデータ変換は多くの場合複数のデータセットを対象として行われますが、リーダーとソースデータセットが1対1で対応するとは限りません。フォーマットとスキーマが同じ複数のデータセットをひとつのリーダーで効率的に読み込める場合もあれば、フォーマットは同じでもスキーマが異なる複数のデータセットを別々のリーダーで読み込まなければならない場合もあります。


データセット (Dataset)

The Association for Geographic Information (英国の地理情報関連団体) は、データセットを “an organized collection of data with a common theme” (共通の主題のもとで組織化されたデータの集合体) と定義しており、これは、FMEにおけるデータセットにもよくあてはまる説明です。
FMEにおけるデータセットは、ソース (変換元) または出力先 (変換先) のデータの集合体を指します。
FMEは、ひとつのワークスペースで複数のデータセットを読み込んだり書き出したりすることができます。全てのデータセットが同じ場所にあっても複数の場所に分散していても構いません。


フィーチャータイプ (Feature Type)

フィーチャータイプは、データセット内で区分可能なデータのサブセットを意味し、ひとつのデータセットは通常、複数の異なるフィーチャータイプを含むことができます。例えば、計画情報という主題のもとで作成された空間データの集合体が、道路、土地、学校に区分可能なサブセットで構成されているならば、「計画情報」がデータセット、「道路」、「土地」、「学校」がフィーチャータイプに位置づけられます。
フィーチャータイプの代わりにレイヤ、フィーチャークラス、オブジェクトクラスといった用語もよく使われます。
また、リーダーやライターをワークスペースに追加したときに Workbench キャンバスに表示されるリーダーフィーチャータイプ、ライターフィーチャータイプ (後述) をフィーチャータイプと総称することもあります。

参照: データセットとフィーチャータイプ


フィーチャー (Feature)

フィーチャーはひとつの事物を表すデータ構造であり、ジオメトリ (ベクター、ラスター、点群などの空間データ)、座標系 (座標系定義を参照するための識別子)、属性 (文字列や数値) によって構成されます。
通常、ひとつのデータセットには、フィーチャータイプごとにそれぞれ複数のフィーチャーを格納することができます。


リーダーフィーチャータイプ (Reader Feature Type) とライターフィーチャータイプ (Writer Feature Type)

ワークスペースにリーダー/ライターを追加したとき、Workbench のキャンバスにはソース/出力先データセットに属するフィーチャータイプに対応するオブジェクトが表示されます。ソースデータセット (リーダー) に属するものをリーダーフィーチャータイプ、出力先データセット (ライター) に属するものをライターフィーチャータイプと呼びますが、共通の事項もあるので、フィーチャータイプと総称することもあります。

リーダーフィーチャータイプは、リーダーによってソースデータセットから抽出されたフィーチャーをデータフローに送り出す出発点、ライターフィーチャータイプは、データフローからフィーチャーを受け取り、ライターによって出力先データセットに書き出す終着点になります。

ソースデータセットに属するフィーチャータイプが複数ある場合は、リーダーフィーチャータイプも複数表示されます。ただし、オプションとして、ソースデータセットに属するフィーチャータイプ数に関わりなくキャンバスに表示するリーダーフィーチャータイプをひとつにまとめ、ソースデータセットから抽出された全てのフィーチャーをそこから送り出すこともできます。
リーダーフィーチャータイプのプロパティはソースデータセットのスキーマに基づいて構成され、通常は編集する必要はありません。

ライターフィーチャータイプは、ワークスペースを実行することによって新たに作成する、あるいは、修正したり更新したりする出力先データセットのフィーチャータイプに対応するもので、ワークスペースの目的に応じて、ひとつの出力先データセット (ライター) に対して複数のライターフィーチャータイプを追加したりプロパティを編集したりすることによって、出力先データセットのスキーマを定義することができます。


リーダーとライターの概要

Reader and Writer Gallery

Workbench メニュー: Tools > Browse Readers and Writers を選択すると Reader and Writer Gallery 画面が開きます。
この画面では FME がサポートする全てのフォーマットとその概要が閲覧でき、リスト内でフォーマットを選択して右下の Details ボタンをクリックすると別の画面でその詳細が表示されます。
また、左下の Search フィールドにフォーマット名や拡張子の一部をキー入力すると、それに関連するフォーマットに絞り込むことができます。

Descriptionフォーマットの説明
Short Nameフォーマットの略称 (ワークスペースではこの略称がリーダー/ライターの識別子として使われる)
Extensionsデータがファイルに格納されるフォーマットの場合、通常使用されるファイル拡張子
Typeデータセットのタイプ
ReadFMEがそのフォーマットのデータの読込をサポートするかどうか (リーダーがあるかどうか) を示す。
WriteFMEがそのフォーマットのデータの出力をサポートするかどうか (ライターがあるかどうか) を示す。
Coord. Sys.座標系の定義をサポートするかどうかを示す。
Licensed使用している FME Desktop のエディションでリーダー/ライターのライセンスが有効かどうかを示す。

ライセンスとシステム要件

FME Desktop の主製品には次の4つのエディションがあり、サポートするフォーマットの範囲が異なります。

  • FME Professional Edition
  • FME Esri Edition
  • FME Database Edition
  • FME Smallworld Edition

例えば、Esri Geodatabase (ArcSDE Geodb) は Esri 以上のエディションがサポートし、Professional はサポートしません。
また、少数ではありますが、Microsoft SQL Server Spatial のように、Read は Professional 以上の全てのエディションがサポートするが、Write をサポートするのは Database エディション以上であるというように、Read と Write でサポートする最小エディションが異なるものもあります。
注: Microsoft SQL Server Non-spatial は、Read, Write ともに Professional 以上でサポートします。 あるフォーマットについて使用している FME Desktop のエディションがサポートするかどうかは、基本的には Reader and Writer Gallery の Licensed 列で確認できます。
サポートする最小エディションが Read と Write で異なるフォーマットについては、Add Reader 画面 (メニュー: Readers > Add Reader)、Add Writer 画面 (メニュー: Writers > Add Writer) それぞれの Format フィールドから開く Reader Gallery と Writer Galleryで確認することできます。

または、それぞれのシステム要件については、各フォーマット (リーダー/ライター) のヘルプに記載されています。


特殊なリーダー/ライター

ほとんどのリーダー/ライターは特定のフォーマットのデータの読込/出力を行うものですが、次のようにいくつか特殊なものもあります。

DescriptionShort Name概要
Schema (Any Format)SCHEMARead任意のフォーマットのデータセットからスキーマの定義を読み込む。
Schema (From Table)SCHEMA_FROM_TABLERead外部テーブルに記述されたスキーマの定義を読み込む。
Directory and File PathnamesPATHReadディスクシステム内のフォルダやファイルのパス文字列等を読み込む。
File CopyFILECOPYWriteファイル、フォルダのコピーまたは移動を行う。