Q: 出力先データセットに書き込む際、個々のフィーチャーにユニークなID属性を与えるにはどのような方法がありますか。
FME 2019.1
A: そのワークスペースの1回の実行によって作成されるデータセット内だけでユニークであれば良いという場合は、Counterトランスフォーマーが便利です。
Counterは、フィーチャーの入力順に連番(1ずつ増える整数)を生成して属性に格納します。出力先データセットに書き出すだけでなく、ワークスペース内だけで使う一時的なIDを与えたい場合にも有用です。必要に応じてStringFormatterで書式を整えたり、StringConcatenator、AttributeCreator、AttributeManagerでプレフィクスやサフィクスをつけたりすることもできます。
Count Output Attribute: 生成した連番を格納する属性名を指定します
Counter Name: カウンターの名前を指定します。入力フィーチャーの属性または属性を使った文字列式を設定することにより、その値が同じフィーチャーのグループごとに同じ開始値から始まる連番を生成することもできます。
Count Start: 連番の開始値(整数)を指定します。
Count Scope:
Global – ワークスペース内に同じ名前(Counter Name)の Counter が複数あった場合、それらは共通のシーケンスに属する連番を生成します。
Local – ワークスペース内に同じ名前の Counter が複数あっても、それぞれが個別のシーケンスに属する連番を生成します。
グローバルにユニークなIDが必要な場合は、以下のトランスフォーマーを使うことができます。
- UUIDGenerator: 入力フィーチャーごとに UUID (Universally Unique IDentifier) を生成して属性に格納します。
- GOIDGenerator: 入力フィーチャーごとに GOID (Geographic Object IDentifier) を生成して属性に格納します。