欢迎关注同名微信公众号,更多文章推送:
城规专业一般都使用湘源软件画规划用地图。现在很多工作都转入ArcGIS中,但是传统画的用地图想要完美转成数据库文件是比较麻烦的,比如:
1、有地块内线的用地怎么导入?
2、规划用地中的各种指标,如【容积率、建筑密度、绿地率、建筑限高……】,如何保留?
第2点是最难的。比较笨的办法是把这些指标编辑成文字,然后通过【空间连接】工具连接到地块上,但这效率不忍直视。
这时候就该FME登场了。
FME(Feature Manipulate Engine,简称FME)是加拿大Safe Software公司开发的空间数据转换处理系统,它是完整的空间ETL解决方案。该方案基于OpenGIS组织提出的新的数据转换理念“语义转换”,通过提供在转换过程中重构数据的功能,实现了超过250种不同空间数据格式(模型)之间的转换,为进行快速、高质量、多需求的数据转换应用提供了高效、可靠的手段。
软件可以去官网下载:
http://www.fme-china.com/html/more-downloads.html
软件破解方法可以去百度一下。
软件的使用教程可以上B站搜一下,有些基础教程还挺不错的。
软件使用的大头其实就是转换器的使用,本文的工具其实也就是用了几个转换器解决的。
输入的数据只需要一个,即湘源画的规划用地。这里需要重点说明的一点是。不管是ArcGIS还是FME,都是按【面】来认用地要素的。FME更优秀的一点是可以认【填充图案】。但是湘源画的用地是一种特殊的自定义块,正常情况下不管是ArcGIS还是FME都不能读取。所以我们需要把用地炸开,只取填充图案。
炸开后,我们会发现指标等隐藏属性已经不见了。这没关系,其实是还在的,进了FME就可以看到了。
最后一件重要的事情:用来输入的规划地块,即【填充图案】一定要干净,如果含有其它无关的要素导入进处理,是大概率会出错的。这里推荐一种方法,隔离用地图层,选择炸开后的用地,用【w】命令,写块写出一个新文件,用这个新文件作为输入文件。
这里以FME2022为例,打开Workbench,新建一个空白模板。
点击【读模块】,在弹出的工具框中,选择数据格式【DWG/DWF】,以及数据路径。最下方的设置里选择【Singgle Merged】,这样CAD数据会合并成一个图层,不过不用担心CAD的图层信息会丢失,图层名等信息会保存在字段里。如果选择另一个选项,会按CAD图层生成多个图层,没有必要。
在主界面空白处,直接用键盘输入【AttributeExposer】,输入的时候就会弹出转换器选择框,选择目标转换器,双击或者按【enter】即可。
点击输入数据右边的三角箭头并拖动至【AttributeExposer】转换器左边的三角箭头,即可将数据和转换器连接起来,有点像arcgis中的模型构建器。
点击转换器右边的齿轮,即可打开转换器设置,在空白行的右边占击【...】按钮,选择要暴露的属性,这里选择【autocad_extended_data_list{}】。
选择后,再手动修改{}内的数值。然后选择修改后的行,在下方空白行多复制几个。
至于{}内的数值内的数据到底填什么,我们可以看看这个属性里到底存着什么数据。
在输入数据右边的三角箭头右击,点击【conect inspector】,会生成显示数据。
再点击工具栏上的【运行】,生成数据用来察看。
运行后会自动打开【FME Data Inspector 】,可以察看数据的详细信息。
在【FME Data Inspector 】打开的数据中,随便选择一个地块,可以在右边的属性框中查看数据信息。
可以看到autocad_extended_data_list{}存着用地信息,比如{1}是地块编号,{3}是用地代码......
需要注意的是湘源不同版本,这里存在的位置也有不同,所以还是自己查看一下。
回到FME模板,修改【attributeexposer】转换器中的数值。
和添加【AttributeExposer】转换器一样的方式,添加一个【AttributeManager】转换器,连接并点击设置,将字段名称修改过来。
list{}这一行删除,不然在输出的时候可能会提示不符合要求:
用同样的方法在【AttributeManager】转换器右边的三头箭头连接一个察看数据,并点击【运行】,生成的结果如下:
初步结果就生成了,字段值中有一些无用文字,可以稍微处理一下。
同样的方法添加一个【StringRelacer】转换器,参数设置如下:
运行后结果如下:
如果你想要在FME继续处理的话,还可以继续。
本文重点不在这里,就直接导出数据。
点击数据写出器,在弹出的工具框中,选择数据格式(注意按截图中的格式),以及数据路径。
将工具连接到输出数据,并设置属性。
以上便完成了FME模板,最后再点击【运行】。
在arcgis中查看生成的最终结果:
FME可以做的事远不止于此,这里只是做一个简单示例。
我目前也学得比较粗浅,有兴趣的可以一起研究。