FME轉換器 要素合併(FeatureMerger)

0 定義

通過相同的屬性值或者表達式來合併兩個數據源的屬性或圖形。

1 如何工作

1、通過兩個接口接收數據源,一個是Requestor,一個是Supplier:

  • Requestor(請求者):請求者將會合並新的屬性或圖形。
  • Supplier(提供者):提供者用於提供新的屬性或圖形。

2、通過相同的屬性連接匹配。
通過參數窗口的 Join on 參數欄設置匹配屬性。

1.1 舉個栗子

假設我們有2個的表格,名字是主鍵,我們將通過名字進行關聯。
表格1
+
表格2
=
合併的表格

1.2 工作流

將2個表格分別連接到Requetor和Supplier上,設置好輸出表格(屬性模式選擇”自動“,會自動讀取所有的屬性字段),將輸出表格連接到Merged輸出端口。

worlkflow

輸出端口 說明
Merged Requestor匹配上Supplier的記錄會合並在一起然後輸出
UnmergedRequestor 輸出沒有匹配上的Requestor的記錄
UsedSupplier 輸出被使用的Supplier記錄
UnusedSupplier 輸出沒有被使用的Supplier記錄
Rejected 輸出被拒絕的記錄,例如重複的記錄

2 參數說明

2.1 參數設置

在 Join On 欄中設置Requestor和Supplier用於匹配的屬性字段,可以是屬性或者是表達式。
param

2.2 重要參數詳解

2.2.1. Group By(分組)

選擇一個字段,將數據分組,然後Requestor和Supplier將根據相同的分組進行匹配,不會匹配到不同組的記錄。
將數據進行分組後匹配能夠提高轉換器運行效率。

2.2.2. Feature Merge Type(合併模式)

  • Attributes Only: 只合並屬性(根據在Attribute Accumulation中設定的屬性合併規則合併)
  • Geometry: 只合並圖形(如果同一記錄下Request和Supplier都有圖形,將會被Supplier的圖形替換)
  • Attribute and Geometry: 合併屬性和圖形(屬性根據Attribute Accumulation設定的規則合併,圖形以Supplier爲準)

2.2.3. Process Duplicate Suppliers(處理重複提供者)

如果不勾選,Requestor只會匹配到第一個匹配上的Supplier,其餘重複的Supplier將會被拒絕,從Rejected端口輸出。

如果勾選,重複的Supplier將會一起合併到Requestor中,但是屬性任然只會使用第一個提供者的;多個提供者的圖形則會以聚合或者重構的形式出現,用於替換請求者的圖形。

PS:FME默認設置爲遇到Rejected要素會中斷運行,可以在導航欄中的Workspace Parameters>Translation>Rejected Feature Handing選項中切換Terminate Translation爲Continue Translation,讓FME遇到Rejectid要素會繼續運行。

2.2.4. Attribute Accumulation(屬性合併方式)

  • Merge Supplier: 合併提供者,在該模式下可以選擇Conflict Resolution(衝突解決模式)。Use Requestor或Use Supplier,即屬性發生衝突時使用請求者或提供者的屬性。
  • Prefix Supplier: 前綴提供者,設置前綴後的提供者屬性將與請求者的屬性並列。
  • Only Use Supplier: 只使用提供者,拋棄請求者的所有屬性,只使用提供者的屬性。

2.2.5. Generate List(生成列表)

因爲Merged端口只會輸出Requestor端口輸入的匹配記錄,只會展示匹配到的第一條提供者信息,無法展示一對多的數據情況。如果存在一對多的對應關係,並且要將這種對應關係展示出來,那就需要生成列表。

勾選Generate List後需要指定列表名稱,和生成列表的屬性字段,可選All Attributes(全部字段)或Selected Attributes(選擇字段)。

生成列表之後需要通過ListExploder(列表暴露)轉換器將列表數據暴露出來。在ListExploder轉換器中選擇要暴露的列表名稱,設置屬性合併模式即可。

3 我的博客

想了解更多關於FME信息的可以關注一下我的個人博客:藍線白框(https://www.luojunpeng.com)
打不開的話請戳這裏:博客地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章