【FME基础】将kml转换为属性齐全的shp
The following article is from 数读城事 Author 帅青青
世界上最帅气的小青青又投稿了,废话也不多说了,反正也没给稿费,这大概就是爱吧。
01前言介绍
目标:将kml转换为shp
问题:kml中的属性以html方式存储,无法直接读取出来
处理方法:使用FME,读取kml,并使用正则来提取kml中的信息,组织好之后写出标准数据
02数据情况
很久很久以前,菌菌有一个kml数据。
数据是长这样的:
这个数据里有信息,但信息是存储在HTML里的。
这种数据直接转格式无法拿到里面的内容,所以需要借助工具来提取数据中的有效信息。
03数据处理
本次数据处理,我选择了FME平台。数据处理的工具、方法有很多,各位读者也可以选择合适自己的工具。
◐ 读取数据
然后找到属性信息存储字段(kml_description),并把属性信息暴露出来:
经过这样的设置,数据就被读取到FME中了:
这里需要注意的是:FME的格式属性默认是不勾选的。在FME的后续处理中,如果想要使用某个属性,就必须把想要的属性给暴露出来。暴露属性有两种方式,一种是像本文中在读取的时候勾选上,另一种是使用AttributeExposer转换器进行暴露。两种方式都可以,只是我喜欢尽量减少转换器的数量,来让界面更清爽一些。
回到本文中的信息提取,在这里我选取了FME的StringSearcher转换器,并对其进行了如下所示的设置:
经过这样的设置,就可以把所有属性及字段信息取到名为ll的列表中:
经过上一步的提取,现在有效信息都在列表里了。接下来要做的,就是从列表里把信息取出来,并赋值给相应字段。处理方式也很简单,只需进行如下图所示的设置:
处理后数据:
经字段组织之后,就可以把数据进行写出了,写模块设置如下图所示:
点击运行之后,就得到了一份shp数据:
输出转换完成之后,可以加载到ArcMap中查看一下,数据是否正常。
可以看到数据还行,该有的字段都在,该有的内容也都填上了,到这基本上转换也就完成了。
下面再增加点内容,介绍下怎么在ArcMap中进行分式注记的标注。而想要进行分式注记,就需要了解一下ArcMap的格式化标签(偷个懒,直接上大图了)。
而分式注记,也就是给上面的那行字加了一个下划线,也就是加个标签的事情,非常简单
图中表达式:"<UND>"&[级别]&"</UND>"&vbCrLf&[保护区名称]
我们可以更进一步,让标注色彩更加丰富一些
图中表达式:"<BOL><UND><CLRred = '255' >"&[级别]&"</CLR></UND></BOL>"&vbCrLf&"<BOL><CLR green='255'>"&[保护区名称] &"</CLR></BOL>"
分式注记,是不是到这,就完成了分式注记,是不是很简单?
05总结
本文使用FME软件完成了kml到shp数据的处理,并把结果数据进行了一个简单的可视化(也许叫ArcMap可视化之分式注记比较合适)。由于水平限制,本文难免有诸多不足,如发现什么问题,或者有什么疑问,各位可以随时找菌菌咨询,他24小时在线。
本文只是提供了一种数据处理的方法,而数据处理的方法、方案有很多。有句话说的很对:条条大路通罗马!愿大家在处理数据的时候,在生活中,在工作中,都能找到属于自己的、合适自己的道路,我们来日方长!
作者|帅青青
排版|数读菌
校阅|数读菌
那今天就到这里结束啦,欢迎留言讨论。文中的图片文字未经许可不要随便“引用”。
如果可以的话,希望能够转发分享,点个在看并且点个赞,给个赞赏~~也欢迎规范转载~
历史文章推荐
【数据分享】中国生态服务功能重要性与中国生态系统敏感性
【数据分享与说明】生态服务与生态敏感性数据集的常规问题统一回答
【数据分享】2020年度行政区划调整的数据更新与分享(省市县截至2020年12月31日)
【数据整理】2019年行政区划调整的数据更新与分享
▼
需要你的“分享”和“在看”
END>
交流
欢迎大家扫下面的二维码添加我的个人微信(备注行业+姓名更易通过)!我建了一个交流群,欢迎大家加入灌水交流!