先日、あるGIS関連会社の社内勉強会でFMEについて紹介させていただく機会があり、多数の方々が熱心に聞いてくださいました。ありがとうございました。会場に向かう途中、時間調整で立ち寄ったコーヒー店で標題のテーマを思いつきました。紙地図などに基づいてGIS用のポリゴンデータを作成する場合、多かれ少なかれ、マニュアル(手作業)でデジタイズする工程は避けられないと思いますが、例えば行政区域のように、隣接する領域の境界が一致していなければならないものについて、マニュアルで「面」を作成しようとすると、隣接する領域の境界を一致させるのに結構手間がかかるのではないでしょうか。実際、隣接する領域の境界が一致していないデータはたくさんあり、単独の主題図として利用する場合には問題にならないほどのわずかなものであっても、融合(dissolve)したときに隙間が生じるなど、ジオメトリデータとしての再利用は難しいということには頻繁に出くわします。マニュアルの工程では、隣接する領域を区分する境界線(ライン)と各領域内部の代表点(ポイント)を作成することにし、ポリゴンデータとして仕上げるのはFMEにまかせることにすれば、データの精度を向上させつつ、かつ、作業の効率化(工期短縮、コストカット)も図れるのではないか、という発想です。上記勉強会でも考え方をお話ししましたが、コーヒー一杯の時間ではFMEワークスペース例の用意まではできなかったので、ここで紹介します。マニュアル工程で作成された境界線と代表点を読み込む。隣接する境界線が端点で接するようにする。端点で接する境界線で囲まれた領域を表すポリゴンを作成する。Within)があるポリゴンに与える。外部テーブル(Excel)で整理したその他の属性を結合する。Shapefile形式のファイルに出力する。よる表示例ソース、出力先のデータフォーマットは、ベクタージオメトリ(点、線、面)の格納が可能でFMEがサポートするものであれば何でも構いません。属性を定義する外部テーブルのフォーマットも、FMEがサポートするものであれば任意です。端点で接するラインで囲まれた領域を表すポリゴンジオメトリを作成します。精度で完全一致している必要がありますが、マニュアルの工程で隣接する境界線の端点を一致させるのも面倒です。よってラインを交点で分割し、その結果として、隣接する境界線が端点で「接する」(完全一致する)ようにできます。両方の端点が他の端点と接していないラインを無視するので、交点から飛び出す部分の長さや形状は任意です。無視されるべき区間で他のラインとの交差、あるい自己交差がないように注意する必要はあります。代表点には地物のID(例えば連番)のみを属性として与えておけば、Excelなどの外部テーブルで作成した他の属性を結合することは簡単です。IDの割り当て方さえ仕様化しておけば、ジオメトリデータ作成と属性データ作成を分業化することもできます。FMEの利用に限らず、さまざまな工夫をすることによって精度の高いポリゴンデータの作成を実現している企業もあるかと思いますが、ウェブ上で公開されているデータには隣接する領域間で隙間や重複がある例が多く見られ、業界全体としては改善の余地がまだまだあると感じています。FMEの利用方法としては初歩的な例ですが、効果は大きいと思います。(Atom)このブログを検索このサイトでは、原則としてウェブ上で公開されているデータを素材としてデータ変換を行うFMEワークスペース例を紹介します。データフロー全体が一望できるようにシナリオやワークスペース例はできるだけ簡潔にするとともに、短時間で読み切れるように説明は要点のみとしています。画像が小さくて分かり難い場合は、右クリックして新しいタブで開くなどにより、原寸で表示させてださい。記事は更新したり削除したりすることがあります。記事内で参照している外部のウェブサイト名、URL、ダウンロードファイル名等は、最新の状態が反映されていないことがあります。