在 Workbench中提取和使用日誌資訊
阿新 • • 發佈:2018-11-29
原文地址:
一、下載
二、使用Python FMELogFile 物件
在啟動和關閉Python(位於Workbench中工作空間引數-Advanced中)中可以使用FMEObjects Python API
下面三個例子展示了在工作空間執行期間日誌資訊的一些可能的用途。
三、應用案例
3.1 促進對失敗的警告
一個使用者發現他的一些Microstation DGN檔案被中斷。通常,FME遇到中斷檔案只會在日誌中釋出警告,但不會轉換失敗。使用者希望截斷的檔案發生失敗,以便與正確的檔案區分開
- FailTruncated工作空間中的Startup Python對每個日誌檔案搜尋截斷的DGN檔案警告,找到後設置一個標記。
- 所有DGN要素讀取完成後, Creator轉換器在流程結束時,建立一個新的要素,
- 把新要素髮送到PythonCaller,通過程式碼檢查是否設定了中斷標記。如果有標記,工作空間終止。
- PythonCaller輸出連線到NULL寫模組,該寫模組設定為與工作空間中的第一個寫模組。
- 第二個DGN寫模組直到工作空間完成才進行寫出,所以如果工作空間終止則不會有檔案寫出。
3.2 提取檔案或表的元資料
Workbench讀模組通常在日誌中包括檔案或表的元資料,但是不會把資訊新增到從檔案中讀取的要素中。
- 工作空間中的Startup Python使用正則表示式從讀模組日誌資訊中提取Global Prigin和工作空間單位引數,並把它們儲存到global列表中。
- 每個DGN檔案只讀取一個要素(把讀模組引數- Advanced - Max Features to Read 設定為 1)。
- 使用FeatureHolder確保後續處理之前,讀取了所有DGN檔案。
- PythonCaller使用multi_reader_id 通用屬性把每個要素連線到它的元資料。這個屬性包含了每個檔案的讀取順序,並對應於元資料Python列表的索引。
- 重新命名屬性,然後將要素寫出到Excel。
輸出:
3.3 儲存中間轉換器的引數
AffineWarper轉換器通過輸入的控制向量要素計算了一個最佳擬合的仿射變換,然後將它們應用到observed埠的要素中並輸出。計算的引數在日誌中被記錄,但是沒有儲存在轉換的要素上。GetAffineParameters示例提取這些引數到CSV檔案中供選擇使用。
- 從CSV檔案中讀取資料並轉換為向量
- 向量傳送到AffineWareper並用於轉換虛擬點
- 工作空間中的Startup Python使用正則表示式從AffineWarper日誌資訊中提取仿射變換引數
- 仿射變換完成後,在程序後使用Creator_2 轉換器建立一個新的要素
- PythonCaller將仿射引數新增到要素,然後寫入到CSV中