问题:

  1) 项目应用中要求将CAD规划成果合理的入库GIS SDE中,在建立一套比较规范的标准为前提下,如何“低技术、傻瓜式”实现规划数据更新管理、版本化是个迫切难题。

  2) CAD作为数据源,不同于其他直接以GIS作为数据源,有一个转换过程,转换存在语义、元数据、模式等相关方面问题,势必会造成数据一定程度的丢失、损坏,如何最低限度降低这种损坏同时合理的进行数据转换也是需要考虑的。

  3) 项目运用追求产品化,建立CS桌面模式的一对一还是建立BS网络模式的一对多,根本上还是以需求为指导,那么如何将转换过程是以桌面方式还是以服务方式进行尚需考虑。

分析:

FME作为转换利器,可直接写脚本,可直接写插件,可二次开发,可发布服务,所有都以FME Engine为核心,体现在FME Desktop和FME Server上。

1

FME Desktop开发有2种:FMEObjects和FMEPlugin,结构:

图1 FME Desktop软件结构

1)       FME Objects基本支持各种常用开发语言,开发的软件工具必须要在FME Runtime下才能运行,就是说要安装FME Desktop才能运行。

2)       FME Plugin可自定义扩展新的格式和转换器,如可开发自己一种扩展名为“.yzz”格式并设置对应的数据转换,开发函数类似于FME的上百种转换函数。

此形式开发需要开发人员需要一定的编程经验,而且也不是3-5天就可以做的出,根据不同应用对应着不同的目标结构,可能随时需要修改相关参数,难度大,任务重。

2

发布服务也分2类:FME Server和FME托管Amazon的云服务

     FME Server是用于网络的转换器,可以将开发的FME脚本发布称REST服务,为基于FME Workpace(模型)的调用。 使用FME Workbench建模并保存为模型文件,或者发布为一个基于Web的服务,应用系统对模型文件或服务的调用类似对一个管道进行操作,需要关心的只是输入和输出。

图2 FME建模实施过程

    此种只需开发人员协调,以实施人员为主体,当服务发布制定后,第三方人员根据服务进行在线数据转换、提取、下载,可实时进行数据同步更新。

FME云服务作为最新一种,以亚马逊为平台,提供PAAS,意指:将FMEServer部署在云环境中,其他措施和FMEServer一样,收费甚少。

解决探讨:

1)       FMEObject C#开发,基于单机扩展,可灵活控制转换过程与步骤,也可执行脚本转换,但开发周期长,灵活性较差,没有通用性。

2)       FMEPlugin,只支持C++和Java,扩展难度极大,但针对某个特定项扩展成功则类似于使用某种软件成品,一般无特殊要求不推荐。

3)       FME脚本发布服务,由开发人员或技术支持、实施人员进行脚本开发,制作待需特定脚本,将其发布到FMEServer中,客户只需输入输出即可,无需关心转换过程,要求授权FMEServer和熟练FME服务使用。(详细待续)

总结

CAD规划成果转换入库GIS SDE,小批量可由开发人员或实施人员进行手动转换,但随着应用展开和项目需求,有自动化软件工具有必然性。FME脚本制作一定程度上依赖对CAD数据的把握和目标数据的需求,同时对转换经验和熟练也有一定要求,合理的做到快捷、损坏少、便于管理,个人意见:开发人员根据规范开发FME脚本,对数据更新、管理、同步版本化进行相关测试,而后通过FMEServer发布脚本,在局域网或互联网公开服务地址,在应用不断积累中完善服务性能,客户最终使用服务完成数据转换。

    说明:总结分析仅供参考,详细设计以实际锻炼为主。

参考:

[1] FME2011帮助文档;

[2] 安图163官方博客

CAD规划成果入库GIS_SDE转换之分析的更多相关文章

  1. Logstash:Data转换,分析,提取,丰富及核心操作

    Logstash:Data转换,分析,提取,丰富及核心操作 Logstash plugins Logstash是一个非常容易进行扩张的框架.它可以对各种的数据进行分析处理.这依赖于目前提供的超过200 ...

  2. CAD图DWG解析WebGIS可视化技术分析总结

    背景 AutoCAD是国际上著名的二维和三维CAD设计软件,用于二维绘图.详细绘制.设计文档和基本三维设计.现已经成为国际上广为流行的绘图工具..dwg文件格式成为二维绘图的事实标准格式. 但由于Au ...

  3. Python 温度转换实例分析

    #TempConvert.py Tempstr=input('请输入要转换的温度值:') if Tempstr[-1] in ['C','c']: F=1.8*eval(Tempstr[0:-1])+ ...

  4. Python学习之温度转换实例分析篇

    #TempConvert.py Tempstr=input('请输入要转换的温度值:') if Tempstr[-1] in ['C','c']: F=1.8*eval(Tempstr[0:-1])+ ...

  5. python温度转换代码分析

    将用户输入的温度信息保存在TempStr变量中 if分支条件,判断TempStr类型是否在f及F列表之中 如果用户输入的在f及F列表之中,则用户输入的是一个华氏温度值,对华氏温度进行摄氏温度的转换,e ...

  6. FME之于规划CAD数据质量检测

    最近琢磨规划CAD数据转换入库GIS方面的技术问题,看过一些前辈的文章/文献,对于使用FME WorkBench方面,有了一些了解,往往直接转换数据丢失比较严重,而且GIS对图形属性和空间拓扑比较严格 ...

  7. FME规划数据GIS更新入库

    规划数据经过转换处理入库GIS,城市规划的特殊性,使得GIS里面数据经过分析处理后直接导出为CAD数据的话,肯定难以满足原来规划的要求,这个是硬伤.又要用GIS来进行空间分析处理统计,数据管理就必须了 ...

  8. cad快捷键与命令大全

    一入绘图深似海,从此各种快捷键就要不分昼夜在脑海,忘记了哪一个,对于效率来说都是一个考验. 快捷键用处怎么大,那么的实用,需要背诵哪些呢?史上最全快捷键汇总,大神都在使用快捷键操作,这里给你来一个大汇 ...

  9. 2019年ArcGIS规划专业专项培训(四天)

    2019年ArcGIS规划专业专项培训(四天) 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com   第一天:GIS入门 第一章 GIS概述及其应 ...

随机推荐

  1. 位段(bitfield)

    struct { unsigned int fieldA        :       4 ; unsigned int fieldB        :       2 ; unsigned int ...

  2. 苹果手机overflow:auto的卡顿

    如果你对某个div或模块使用了overflow: scroll属性,在iOS系统的手机上浏览时,则会出现明显的卡顿现象.但是在android系统的手机上则不会出现该问题 通过一个早上的百度搜索和与前端 ...

  3. Ubuntu 15.10搭建IPSec L2TP服务器

    以下步骤完全使用于Ubuntu 14.04版本 首先安装以下所需包 sudo apt-get install openswan xl2tpd ppp lsof!注意!Ubuntu 15.10会提示无法 ...

  4. camstar --设备保养

  5. 最近自己封装了个JS脚本,用来创建和操作Table

    基于JQuery封装的Table操作脚本 /** 依赖JQuery **/ (function () { var Table = window.Table = function (rowCount, ...

  6. Java基础知识系列——日期

    日期类型也是在编程中经常用到的一种数据类型. Java中的日期类型为Date. 另外需要记住三个类: java.text.SimpleDateFormat; java.util.Calendar; j ...

  7. 你不知道的函数节流,提高你的JS性能!

    浏览器的DOM计算处理非常耗费CPU时间,霸占内存,这对我们的开发来说是非常不友好的,,比如IE浏览器的onresize事件就可能在用户稍微拖动一下窗口时计算上千次,甚至更高频率直接让浏览器崩溃... ...

  8. php_access_ADOConn 备忘

    1.咕~~(╯﹏╰)b 各种乱码. 2.本来是MFC+Access 用msado15.dll写的系统,闲的想用php改改. Demo.php <meta http-equiv="Con ...

  9. iOS相册中图片按照时间排序

    ios相册默认是按照时间从过去到现在排列,图片顺序有正序和逆序,group可以用以下方法来选择顺序 /** @param NSIndexSet 需要获取的相册中图片范围 @param NSEnumer ...

  10. .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)

    前一篇发出来后引发了积极的探讨,起到了抛砖引玉效果,感谢大家参与. 吐槽一下:这个问题比其看起来要难得多得多啊. 大家的讨论最终还是没有一个完全正确的答案,不过我根据讨论结果总结了一个差不多算是最终版 ...