FME在数据转换过程中的质量监控

原文发布时间:2010-06-07

作者:Peri

众所周知,FME是进行空间数据转换最强大的工具,但是再强力的工具也可能出现信息丢失,那么FME在数据转换工作中,是否有信息丢失呢?你又如何进行信息丢失的判断以及控制,保证数据的质量呢?本文是我在参与数据转换项目中的一些心得体会,提出来跟大家一起分享,如果你有更好的方法,我们可以进一步的探讨!

1.       任务说明

  • 目标:将dgn格式的地形图数据进行坐标系转换。
  • 要求:对转换过程进行质量监控,提供转换清册,记录要素丢失信息。
  • 方法(质量监控部分):日志分析。

2.       质量监控流程

     

               图1  质量监控总体流程

 

(1)自定义批处理

FME的批处理有多种方式,选择自定义批处理脚本进行批处理的方式,目的是为了获取独立的转换日志,从而为转换清册服务。

批处理脚本详细说明请见博文《自定义FME批处理脚本》篇,主要部分定义如下:

@ECHO OFF  

 :: 下面定义输出文件目录,output是转换结果目录、 logs是独立日志目录、failed是错误数据目录、dxt是原始文件目录

 

SET  OUTPUT=.\output

SET  LOG=.\logs

SET  FAILED=.\failed

SET  SOURCE=.\dxt

SET  REPORT=report1.txt

 

 :: 创建目录.

MD %OUTPUT%

MD %LOG%

MD %FAILED%

 

 :: 循环执行转换任务

 ::如果转换失败,将把文件写入到 FAILED 文件夹

 

FOR %%F IN ("%SOURCE%\*.dxt") DO (

 

      fme ss.fmw --SourceDataset_DGNV8 "%%F"^

                 --DestDataset_DGNV8 "%OUTPUT%\%%~nF.dxt"^

                 --LOG_FILE "%LOG%\%%~nF_convert.log"

 

      FIND "Translation was SUCCESSFUL" %LOG%\%%~nF_convert.log >> %REPORT%

         IF !ERRORLEVEL! EQU 0 (

            ECHO %%F PASSED convert with ERRORLEVEL !ERRORLEVEL! >> %REPORT%           

            ) ELSE (              

                ECHO %%F FAILED LOADING with ERRORLEVEL !ERRORLEVEL! >> %REPORT%

            FIND "|ERROR |" %LOG%\%%~nF_convert.log >> %REPORT%

            COPY /Y "%%F" "%FAILED%"

         )        

 )

 

批处理结果的logs文件夹,存放的都是原始文件的独立转换日志,如下图所示。

             

                           图2   转换结果目录                              图3  转换日志列表

通过对日志文件进行分析,获取输入要素数,写出要素数,从而获取坐标转换过程要素丢失情况,如果发现有丢失,进行分析错误定位,重新导入,确保整个项目转换的正确性和准确性。FME处理模板如下图所示:

            

3)转换清册

日志分析结果为Excel转换清册,记录文件名、读取要素数、写入要素数、丢失要素数等信息,内容如下图所示:

              

                                                      图5   转换清册

备注:NAME表示日志文件名,R表示读取源要素数,W表示写入目标要素数,num表示丢失要素数。

 3.       结论

最后对转换过程中有丢失要素的数据进行单独分析,找出错误原因。我在对dgn格式的数据进行坐标转换时,丢失要素的大部分原因都是幽灵元素导致。通过日志分析的方式,对数据转换过程进行监测,很好的控制了数据转换过程,保证了数据的质量。

 

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/81115998