• FME读写cass数据的方案及操作流程


    FME读写cass数据的方案及操作流程

    一。CASS数据转换(一)读取南方CASS数据

    南方CASS数据采用AutoCAD的DWG、DXF文件方式进行存储,用FME可以直接对DWG\DXF文件进行读取,但FME不能识别CASS扩展属性信息。在FME WorkBench中无法看到CASS数据层的字段信息,但可以通过FME Viewer中的“autocad_extended_data_list{}”属性看到这些信息。

    CASS数据转换(一)读取南方CASS数据

    图1

     

    不过要处理这些被放到列表中的属性信息,却是一件很麻烦的事情,我们不得不手工采用“List Transformers”单独处理每一个字段,或是在目标图层中手动创建对应属性字段,把大量的时间浪费来连线操作上。如果转换的图层或是字段众多,情况可能会变得更糟糕。

     

    MyFME提供一个CASS插件来解决这些问题,将CASS文件的扩展信息解析为被FME识别的字段结构(注:源数据层中没有字段时,MyFME将自动创建一个名为“SOUTH”的字段)。通过解析后的字段信息,处理过程就变得方便了很多,用户可以对这些字段直接进行操作,或是快速生成目标数据层的字段结构。

     CASS数据转换(一)读取南方CASS数据

    图2

     

    同时,MyFME自动读取属性值,并和对应的字段名称关联到一起。

    CASS数据转换(一)读取南方CASS数据

    图3

     

    下图为CASS软件中原始数据:

    CASS数据转换(一)读取南方CASS数据

    图4

     

    MyFME目前只针对CASS数据文件的扩展属性读取进行处理,图形读取仍然采用FME读取AutoCAD的方式,其相关选项和AutoCAD Reader的选项保持一致,选项的说明请参考FME帮助文文件。

    CASS数据转换(一)读取南方CASS数据

    图5

    二。CASS数据转换(二)南方CASS数据输出

    和南方CASS文件的扩展信息读取类似,用FME直接输出南方CASS属性信息同样很繁琐。大致的思路是,设置AutoCAD Writer的“Attribute Output”选项为“Extended Entity Data”,并设置“Default Application Name”选项为“SOUTH”,然后在目标层添加属性字段写入CASS编码;转换完成后还需要去掉FME增加的属性值前缀。并且这种转换方案只能写入一个有效的CASS属性字段,大多数时候我们将“Default Application Name”设置为“SOUTH”,写入CASS的编码。

    CASS数据转换(二)南方CASS数据输出

    图1

     

    MyFME提供CASS插件将其他格式的属性数据直接输出为能被CASS识别的扩展属性,简化用户转换操作,尽量减少转换后数据的后期处理工作;MyFME在输出CASS数据时一般情况下无需进行额外的设置和处理,源和目标数据对应后直接转换即可。下图示意将SHAPE数据文件输出为CASS数据文件。

    CASS数据转换(二)南方CASS数据输出

    图2

     

    MyFME约定CASS目标图层中属性名称为“SOUTH”字段存储南方CASS的编码信息,用户必须将有效的CASS编码值写入到“SOUTH”字段(如图2所示),以便南方CASS软件正确识别地物类型;其余的字段用户可以更加需要进行定义。CASS软件打开转换后数据。

    CASS数据转换(二)南方CASS数据输出

    图3

     

    MyFME目前只针对CASS属性信息的转换进行处理,图形输出仍然采用FME的输出AutoCAD文件的方式,输出的选项和AutoCAD Writer保持一致,但“Default Application Name”选项无效,MyFME将忽略用户设置的这一选项。

    CASS数据转换(二)南方CASS数据输出

    图4

     

    和FME输出AutoCAD文件相同,用户采用MyFME输出CASS文件时可以选择CAD文件版本,并且允许用户选择自定义模板文件(注:用户自定义模板文件必须完整的包含输出的数据层和符合CASS扩展属性的定义)。

    CASS数据转换(二)南方CASS数据输出

    图5

    三。CASS数据转换(三)处理属性数组

    在读取南方CASS数据时,我们发现存在“属性数组”,即一个字段名称,包含一组属性值。FME Viewer中显示如下:

    CASS数据转换(三)处理属性数组

    图1

     

     

    南方CASS软件中查看原始数据如下:

    CASS数据转换(三)处理属性数组

    图2

     

     

    MyFME将这类“属性数组”直接映射为属性字段,并约定以“CASS_EX_”为前缀,以上数据在FME WordBench中显示如下。

    CASS数据转换(三)处理属性数组

    图3

     

    “SOUTH”属性字段共存储了4个属性值(图1),其中第一个属性值映射到“SOUTH”字段,其后的值依次映射到“CASS_EX_1”、“CASS_EX_2”、“CASS_EX_3”。读取到FME Viewer中显示如下图:

    CASS数据转换(三)处理属性数组

    图4

     

    向CASS数据文件写入“属性数组”时,需要在目标层中新建以“CASS_EX_”为前缀的字段,顺序排列到相应的属性字段后即可。下图写入一个名为“INFO”的字段,该字段包含三个属性值。

    CASS数据转换(三)处理属性数组

    图5

     

     

    转换完成后用FME Viewer查看数据如下:

    CASS数据转换(三)处理属性数组

    图6

     

     

    四。CASS数据转换(四)CASS数据分层

    FME在读取CASS数据时,默认用AutoCAD的图层名称来划分要素层:

    CASS数据转换(四)CASS数据分层

    图1

     

     

    CASS通过既定的编码来进行要素识别,为了更好的对要素进行归类,MyFME在CASSReader中提供Group Entities By选项,让FME在读取CASS要素时,按照CASS编码来进行图层划分。如图2所示,选择"CASS Code"表示用CASS编码进行分层,"Layer Name"则表示用图层名称进行分层。

    CASS数据转换(四)CASS数据分层

    图2

     

     

    采用CASS编码分层后,图层将采用CASS编码类命名,无CASS编码的要素统一划分到图层"none"中进行输出。

    CASS数据转换(四)CASS数据分层

    图3

     

     

    采用CASS编码分层数据输出如下:

    CASS数据转换(四)CASS数据分层

    图4

     

  • 相关阅读:
    netstat 基本使用方法
    CRM如何帮助企业提高客户满意度?
    Chapter8.2:非线性控制系统分析
    Redis(主从复制、哨兵模式、集群)概述及部署
    crontab 实现秒级定时任务的执行(学习笔记)
    3DMAX森林树木植物插Forest Pack Pro 预设库安装教程
    Django系列11-员工管理系统实战--代码模块化
    spring接口多实现类,该依赖注入哪一个?
    Mybatis—ParameterHandler
    Llama2-Chinese项目:3.1-全量参数微调
  • 原文地址:https://blog.csdn.net/u012685544/article/details/126055963