2014年11月21日金曜日

未サポートフォーマットのデータの読込 他

2014-11-21発信

1. 未サポートフォーマットのデータの読込

FMEは300以上のデータフォーマットをサポートしており、他に類を見ない高い汎用性を持っているとはいえ、標準の機能だけでは簡単には読むことができないフォーマットもたくさんあります。
しかし、FMEにはユーザーが機能を拡張する仕組みが用意されており、標準ではサポートしていないフォーマットについても以下のような方法でリーダーと同等の機能を追加できる場合があります。

(1) カスタムフォーマット Custom Format

XMLやテキストなどの汎用的なファイル形式をベースとしたフォーマットであれば、XMLリーダー、Text Fileリーダーなどで読み込み、必要なデータを抽出・変換するためのワークスペースを作成できる可能性があります。
そして、そのようなワークスペースが作成できるのであれば、それを「カスタムフォーマット」として保存することにより、ひとつのリーダーとして使えるようになります。

例: 基盤地図情報DEM
国土地理院の基盤地図情報(GML準拠)のうち「基本項目」データは、標準のGMLリーダーで読み込むだけでジオメトリや属性が抽出できます。
しかし、「DEM(数値標高モデル)」データは固有のスキーマを持っているため、GMLリーダーで読み込んだだけではジオメトリが作成できません。
当社ウェブサイトでは、すでに基盤地図情報DEMをラスターに変換するワークスペースを公開していますが、それをカスタムフォーマットとして FME Store でも公開しました。
FME Store で公開されているカスタムフォーマットは、インターネットに接続している環境では標準のリーダーと同じ方法(FME Workbenchメニュー: Readers > Add Reader)でワークスペースにリーダーとして追加することができます。
・フォーマット名: Japanese Fundamental Geospatial Data (FGD) DEM
・リーダー名(フォーマット略称): JP_FGD_DEM
・FME対応バージョン: FME 2014 SP4 以降

(2) リーダープラグイン Reader Plug-in

FMEをインストールしたシステム内部では、FMEの機能にアクセスするためのプログラム間のインターフェース(API)が公開されており、FMEを利用したプログラムが開発できます(ただし、実行するにはFMEのライセンスが必要)。
データ読込に関しては、フォーマットの仕様が明らかであればこのAPIを利用し、プラグインとして独自のリーダーを作成することができます。

-----

サポートの要望が多いフォーマットについては、今後もSafe Software社がリーダー/ライターを開発・追加していきますが、日本あるいは企業固有のフォーマットで世界的にみれば利用者がそれほど多くないものの開発優先順位は低くならざるを得ません。
そのようなフォーマットについては、ご要望に応じてカスタムフォーマットあるいはプラグインの開発について検討したいと考えています。
ご要望がありましたら、フォーマットの仕様書類とサンプルデータを添えてご相談くださるようお願いいたします。

=====
2. LineDivider トランスフォーマー

ラインを一定の間隔で分割、あるいは一定数で等分割したいというケースはよくあり、FMEユーザーコミュニティでもしばしば話題になります。
FME Storeでは、Safe社自身がIterativeSnipper_2013(ラインを分割)、DistanceMarker_2013(一定間隔でライン上のポイントを作成)というカスタムトランスフォーマーを公開しています。
「車輪の再発明」的なものではありますが、それらの機能を統合・強化、パフォーマンスを改善したカスタムトランスフォーマーを作成し、FME Storeで公開しました。
・トランスフォーマー名: LineDivider
・格納場所: Transformer Gallery/FME Store/Pragmatica
・FME対応バージョン: FME 2014 SP4 以降

ラインを分割する処理をワークスペースに組み込みたいときは、利用をご検討ください。

FMEの利用形態に関する考察 他

2014-11-14発信

1. FMEの利用形態に関する考察

FMEによるデータ変換処理は、FME Workbench(ワークベンチ)によって作成されたワークスペースに基づいて実行されます。
しかし、実用的なワークスペースが作成できるようになるまでには一定の時間と努力が必要なのは事実であり、現実的にはそのような時間を割くのが難しいこともあると思います。
ユーザーが自分でワークスペースを作成しなければ、FME(データ変換エンジン)は利用できないのでしょうか?

ワークスペースはファイル(*.fmw)に保存でき、再利用が容易であるという仕組みがあるので、その作成は外部委託によって行うという選択肢もあります。
この仕組みがあることから、FMEの利用形態(企業の場合)は、おおまかに次の3つに分類できるのではないかと考えています(案)。

(1) ワークスペース内製(インソーシング)型
ワークスペースを作成できる人材を育成し、組織内で生じるさまざまなデータ変換の要求に応じて随時ワークスペースを作成する。
データ変換が伴う受託業務などについて、それぞれの業務目的に応じたワークスペースを作成、FMEを活用することによってコストダウンを図る。

(2) ワークスペース外製(アウトソーシング)型
FMEの利用目的が特定されており、ワークスペース作成の頻度がそれほど高くない場合には、そのための人材育成のコストを割くのは難しい。
ワークスペースの作成は主に外部委託によって行い、それを利用する。
データ変換が伴う定常的な業務ルーチンにFMEを組み込むことによってコストダウンを図る。

(3) 中間型
基本的には(1)内製型を目指すが、人材育成の途上にある間、難易度に応じてワークスペース作成の全部または一部を外部委託する。
外部委託の成果を調べることによって、組織内人材のスキルアップにもつながる。

これは概念的な分類であって、個々の組織をこのように分類しようとしているわけではありません。
ひとつの組織が状況に応じて、あるときは内製型、他のときは外製型でFMEを利用するといったこともあり得ると思います。
今後も皆様のご意見を伺いながら、さらに考察を深めていきたいと考えています。

=====
2. TaperLineBufferer トランスフォーマー

Safe Software社がユーザーサポートの一環として運営しているユーザーコミュニティサイト"FME Community Answers"では、日々、世界中のユーザーの間でさまざまな技術的テーマについて議論されています。
http://fmepedia.safe.com/CommunityAnswers#!/feedtype=RECENT&dc=All&criteria=ALLQUESTIONS

最近、非常に興味深いテーマがありましたのでご紹介します。
ラインの始点側と終点側で異なる幅のバッファ領域(徐々に狭まる/広がる)を作成するにはどうするか、という問題です。
Is it possible to create a "trapezoids" shaped line buffer?
http://fmepedia.safe.com/CommunityAnswers?id=906a0000000d5LnAAI

この問題に対する解決策は汎用的なものと思われたので、"TaperLineBufferer"という名前のカスタムトランスフォーマーにまとめ、FME Storeで公開しました。
インターネットに接続している環境でFME Workbenchを起動すると Transformer Gallery/FME Store/Pragmatica に格納されます。
ご興味がありましたらお試しください。
※FME対応バージョン: FME 2014 SP4 build 14433 以降

なお、FMEに関する技術的な質問事項がありましたら"FME Community Answers"への投稿もご検討ください。
どなたでも投稿できますが、初回は画面右上の"Sing Up"からユーザー情報(氏名、ニックネーム、メールアドレス、パスワード)を登録する必要があります。
ほとんどのユーザーは英語で投稿していますが、英語でなければならないという決まりはなく、日本語でも構いません。
私はほぼ毎日チェックしており、可能な範囲でお答えします。

=====
3. FME製品販売価格について

Safe Software社のFME製品価格はカナダドル建てで設定されているため、為替相場の変動に応じて当社の標準販売価格(社内規定)を見直すことがあります。
頻繁な変動はできるだけさせないように努めていますが、この1~2ヶ月間にカナダドルに対して大幅な円安が進行したことから、やむなく見直すことにしました。
当社からのFMEライセンス購入をご検討いただく場合は、最新の価格についてお問い合わせくださるようお願いいたします。

固定長フォーマットのテキストデータの変換

2014-11-03発信

ごくまれなことですが、固定長フォーマットのテキストデータを読まなくてはならないことがあります。
固定長フォーマットとは、1レコードの長さ(バイト数)が固定されており、1レコードに含まれる各データ項目の幅もバイト数で指定されているようなフォーマットです。

レコード間の区切りが改行であれば、FME の Column Aligned Text (CAT) Reader が使えますが、データに日本語文字が含まれている場合には、各列の幅をうまく設定できないケースがあります。
CAT Reader が適用できない場合には、Text File Reader で1行ずつ読み込み、各行をファイル仕様で指定されたバイト数に基づいて各データ項目に分割するというアプローチが必要になります。
しかし、FME は原則として文字列の長さを文字数でカウントするため、バイト数に基づいて文字列を分割するのにはやや複雑なワークスペースを作らなくてはなりません。

最近、固定長フォーマットのデータを扱う機会があったので、バイト数による文字列分割処理を一般化したカスタムトランスフォーマー"MbStringByteSplitter"を作成し、FME Store で公開しました。
FME Workbench: Transformer Gallery / FME Store / Pragmatica フォルダ内に格納されており、標準のトランスフォーマーと同じ操作で利用することができます。
固定長フォーマットのテキストデータを扱う必要があるときは、お試しください。

あわせて当社サポートサイトには、これを利用した簡単なワークスペース例(テンプレート)をアップロードしました。
国土数値情報(統一形式)「河川区域台帳」(固定長フォーマット)を読み込み、CSV形式に変換するものです。
KsjKasenKuikiDaicho.fmwt
http://www.pragmatica.jp/fme/example.html

データダウンロードURLや使用方法についてはワークスペース内にコメントしていますので、上記テンプレートをダウンロード後、FME Workbench で開いてご確認ください。
なお、国土数値情報ダウンロードサイトではXML形式の「河川区域台帳」も公開されており、FME でそれを読むためのワークスペースも作成できます。
フォーマットの違いを取り払い、利用し易い形態に変換するのは FME の基本的な使用法であると言えます。

-----

私の個人ブログにも関連記事を掲載しましたので、ご興味がありましたらご覧ください。
http://fme-memorandum-takashi.blogspot.jp/

FME 2014 SP4 リリース 他

2014-10-09発信

1. FME 2014 SP4 リリース

10月8日に FME 2014 SP4 がリリースされました。
FME Downloads
http://www.safe.com/support/support-resources/fme-downloads/

Safe Software社公式ブログ: FME 2014 SP4 Release (Plus Update on FME 2015)
http://blog.safe.com/2014/10/fme-2014-service-pack-4/

FME 2014 の最後のサービスパックであり、累積的なバグフィクスのほか、パフォーマンスの改善も行われています。
また、GME (Google Maps Engine) Writer にマップ作成のオプションが追加され、新規にデータをアップロードする際に、必要に応じてマップも作成できるようになりました。

-----
2. FME 2015 予告

上記ブログ記事でも触れられているとおり、FME 2015 は来年1月中旬リリース予定です。
FME 2015 では、複数の国内ユーザーの方々からご要望をいただいている OSG (OpenSceneGraph: *.osgb/*.osgt) フォーマットのサポートが追加される予定です。
また、日本語文字に関する既知の問題(当社ウェブサイトサポートページ参照)も大幅に改善される見通しとなっています。
FME 2015 ベータ版は次のページからダウンロードできます。
FME Betas
http://www.safe.com/support/support-resources/fme-downloads/beta/
※インストール先のフォルダを別にすれば、複数のバージョンのFMEを同じマシンで利用できます。
※ベータ版は開発途上のものであり、不完全な機能や未改修の不具合が含まれていることをご承知おきください。

-----
3. FME Store 新トランスフォーマー

次の3つのトランスフォーマーを FME Store に提供しました。FME 2014 SP3 以降で利用できます。
2DVectorCalculator: 2次元ベクトルのXY成分の計算
RankCalculator: 指定した属性値の降順/昇順によるフィーチャーのランク(順位)計算
StepSampler: 一定の間隔によるフィーチャーサンプリング(サンプル数指定)

インターネットに接続している状態で FME Workbench を起動すると、Transformer Gallery の FME Store/Pragmatica フォルダに追加されます。
※見えない場合は Transformer Gallery のリフレッシュボタン(右下の丸矢印)で Gallery を更新してください。

関連記事 (飯嶋の個人ブログ): Recent New Transformers for FME Store
http://fme-memorandum-takashi.blogspot.com/2014/10/recent-new-transformers-for-fme-store.html

UCプレゼンテーションのカテゴリ別リンクページ 他

2014-09-15発信

1. UCプレゼンテーションのカテゴリ別リンクページ

6月に行われた FME International User Conference におけるプレゼンテーションのスライド及びビデオは、かねてより発表順で公開されていましたが、カテゴリ別に分類したページも追加されました。
テーマ別にプレゼンテーションを閲覧しやすくなりましたので、是非一度、ご覧ください。

FME International User Conference 2014 ホーム
http://www.safe.com/fmeuc/

プレゼンテーションのカテゴリ別リンクページ
http://www.safe.com/fmeuc/tags/

==========

2. FME Store (Transformer Gallery: FME Store/Pragmatica フォルダ)

日本の標準地域メッシュに関連するトランスフォーマーを追加/更新しました。
インターネットに接続しているマシンで FME Workbench(FME 2014 SP3 build 14391以降)を使用していれば、標準のトランスフォーマーと同様にワークスペースに追加できます。

JpMeshCodeExtractor (追加)
入力フィーチャージオメトリの最初の座標(頂点)が含まれるメッシュ区画のメッシュコードを属性として付加します。

JpMeshCodeReplacer (追加)
入力フィーチャーが属性として持っているメッシュコードに基づいて、メッシュポリゴン、メッシュ区画中心点、またはメッシュ区画南西隅の点を作成します。

JpStdGridAccmulator (更新)
入力フィーチャージオメトリをカバーする範囲のグリッド(ポリゴンまたはポイント)を作成します。
1/4細分、1/8細分メッシュのオプションを追加しました。

ユーザーパラメーターに関するドキュメント(日本語版)公開

2014-09-07発信

ワークスペースの作成においては、リーダー/ライター、トランスフォーマーの追加と接続によってデータ処理のフローを組み立てるのが主な作業内容となります。
しかし、ワークスペースの使用性、保守性などを高めるには「ユーザーパラメーター」を適切に定義することも重要です。
実用的なワークスペースを作成するには、ユーザーパラメーターに関する知識も不可欠であると言えます。

そのような観点から「FMEデスクトップ クィックスタートガイド」実習4でも公開ユーザーパラメーターをテーマのひとつとしましたが、全容はカバーし切れていません。
それを補うために、Safe Software社が公開しているドキュメントに基づいてユーザーパラメーターに関する日本語版ドキュメントを作成しました。
FMEサポートページで公開しましたので、ご利用ください。

http://www.pragmatica.jp/fme/support.html
FMEドキュメント(日本語版) > ワークベンチ: ユーザーパラメーター

「FMEデスクトップ クィックスタートガイド」完成

2014-08-29発信

FMEは多機能であるだけに、初めての方にとっては何から始めれば良いか分かりにくいところがあります。
Safe Software社はさまざまなサポート・トレーニングリソースを無償で提供していますが、日本のユーザーにとっては少々使いにくいかも知れません。
http://fmepedia.safe.com/
http://www.safe.com/learning/training/

FMEを何度か使ってみれば、ヘルプやドキュメントを参照してさらに新しい知識やテクニックを導入していくことができるようになります。
その「何度か使ってみる」までをサポートする日本語版の教材が必要と考え、「FMEデスクトップ クィックスタートガイド」作成に取り組んでおりましたが、このたび完成しましたので、お知らせします。
全8回の実習を、実際にFMEデスクトップを操作しながら行っていただければ、FMEデスクトップの主な機能や基本的な使用方法が理解できるように構成しました。
http://www.pragmatica.jp/fme/support.html

ガイドでは触れなかった事項もたくさんありますが、それらについてはTipsなどで補っていく予定です。
http://www.pragmatica.jp/fme/tips.html

このような教材の作成は初めての試みであり、不十分なところもあろうかと思います。
皆様のご意見、ご要望も伺いながらより良いものにしていきたいと考えております。
不備な点、分かりにくい点がありましたら、お知らせください。