分享

GIS入门 | 如何把CAD填充色块转成shp面要素?

 南柯一梦350 2019-02-18

 做多规合一规划数据入库的时候,你还在用CAD手工划线再导入GIS成面的这么原始方法吗?



做过多规合一的同学们肯定能体会到规划用地CAD入库时候的绝望,为什么呢?按照传统方法,得线凑齐一大批实习生、每人分配几个CAD来手工把一个个用地色块生成polyline多段线再导入到GIS内逐个验证是否存在面中面的情况,这一步几乎是前期整理数据最耗时的环节了。费时费力不说,处理结果的好坏完全取决于那个实习生负不负责,完全没有必要。

 

只要试一下FME就能知道原来还有这么方便的办法。





01



什么是FME?




有看过前面几期我写的文章就会知道,几乎每一篇跟数据处理相关的我都会反反复复、絮絮叨叨地提到这个工具,其实FME的本职是用来做各种数据格式直接转换的平台,它采用“数据流”的逻辑,利用上百个转换器实现读要素与写要素之间的连接,以此实现不同格式的数据文件之间的转换。

 

可以通过以下几篇文章大致了解下。

可视化 | 如何实现带坐标信息要素的可视化?

过去的2017,到来的2018





02



如何用FME转换?




先需要安装好FME,可以在官网上下载完整的安装文件,当然有能力还是支持正版(破解的话自行百度,和GIS的安装思路很像,需要注意的是两者默认共用的都是27000端口,可以把FME的service.txt文件改成27001-27009的任意一个,不冲突即可)。

 

安装完成后,分三步来转换,转换思路是通过FME读取CAD的图层设置,使其按照CAD图层名称给转换完成的每个面要素赋值到属性表内,实现CAD图层向shp属性表字段的转换。

 

1、读要素里把要转换的CAD文件加载进来。

 

尽量预处理好,保证CAD文件内只有用地的填充色块和对应的图层,比如YD-R2图层就只有R2类的用地色块,没有地块边界线、用地代码和其他不相关要素。


 需要注意的是,如果是用湘源控规6.0版本生成的用地是需要先炸开才能读取到,原因是湘源控规是基于CAD平台的二次开发软件,其用地及属性是通过“属性块”来实现的,但FME不能直接读取这类数据,所以需要先把属性块炸开成hatch填充色块。



 双击读要素的属性,在格式属性里面勾上autocad_layer,就能读取到CAD图层信息了。

 

2、连接attributecreator转换器。

 

设置好GIS中需要显示的字段名称,比如GHYDXZ(规划用地性质),使其等于autocad_layer,这样生成的shp文件就有GHYDXZ这个用地性质的字段了。

 

3、连接写要素,设置好格式和路径。

 

格式选择shp,设好保存路径,按F5运行即可得到转换结果了,就是这么方便。






03



那如何把shp转成CAD填充色块呢?




其实就是上面的读要素和写要素位置调换一下,但要注意两点:

 

一是,转换器attributecreator内需要设置成:autocad_entity=autocad_hatch才行,而不是autocad_polygon(CAD内的polygon是炸开后填充会消失,只留下外框线的一种格式,而hatch则只是一种单纯的填充,不能够被进一步炸开)。

 

二是,转换器attributecreator内还要设置autocad_layer=表示用地性质的字段,比如上文中的GHYDXZ,这种,这样导出来的CAD才能正确显示出图层分类。



04



总结




FME的逻辑就是“读要素——转换器——写要素”,其中转换器可以支持很多很多转换器的并联、串联,可以延伸出无限的数据处理流,它所提供的是平台式的格式批处理工具,可以做:数据清洗、数据分析、数据整理等等。

 

可以说是一个很强大的批处理工具了,最擅长规划用地CAD入库这种重复劳动的工作。






    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多