查看原文
其他

【FME基础】将kml转换为属性齐全的shp

The following article is from 数读城事 Author 帅青青

絮絮叨叨:

世界上最帅气的小青青又投稿了,废话也不多说了,反正也没给稿费,这大概就是爱吧。  



01前言介绍

目标:将kml转换为shp

问题:kml中的属性以html方式存储,无法直接读取出来

处理方法:使用FME,读取kml,并使用正则来提取kml中的信息,组织好之后写出标准数据


02数据情况

很久很久以前,菌菌有一个kml数据。

数据是长这样的:

菌菌乱入一下:这个数据其实是保护区名录里面的数据,包含了保护区的边界、名称、类型、面积、主要保护对象等信息,下载网址如下:http://www.papc.cn/html/folder/13100752-1.htm

这个数据里有信息,但信息是存储在HTML里的。

这种数据直接转格式无法拿到里面的内容,所以需要借助工具来提取数据中的有效信息。


03数据处理

本次数据处理,我选择了FME平台。数据处理的工具、方法有很多,各位读者也可以选择合适自己的工具。


◐ 读取数据
首先把数据读取到FME中


然后找到属性信息存储字段(kml_description),并把属性信息暴露出来:


经过这样的设置,数据就被读取到FME中了:


这里需要注意的是:FME的格式属性默认是不勾选的。在FME的后续处理中,如果想要使用某个属性,就必须把想要的属性给暴露出来。暴露属性有两种方式,一种是像本文中在读取的时候勾选上,另一种是使用AttributeExposer转换器进行暴露。两种方式都可以,只是我喜欢尽量减少转换器的数量,来让界面更清爽一些。


◐ 提取信息
前面已经介绍过本文要处理的这个数据属性信息都存储在HTML中,要提取HTML中的信息,有多种方式。比如常见的xpath select、css slect等方法,都可以很方便的从HTML中取出想要的信息,但本文选用了正则提取的方式。原因也很简单,相比其他方式,正则的适用面更广,只要是文本都可以用正则来处理,无论是提取还是替换,正则都很好用。

回到本文中的信息提取,在这里我选取了FME的StringSearcher转换器,并对其进行了如下所示的设置:


经过这样的设置,就可以把所有属性及字段信息取到名为ll的列表中:


◐ 属性组织

经过上一步的提取,现在有效信息都在列表里了。接下来要做的,就是从列表里把信息取出来,并赋值给相应字段。处理方式也很简单,只需进行如下图所示的设置:


处理后数据:


◐ 数据写出

经字段组织之后,就可以把数据进行写出了,写模块设置如下图所示:


点击运行之后,就得到了一份shp数据:


04可视化

输出转换完成之后,可以加载到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小时在线。

本文只是提供了一种数据处理的方法,而数据处理的方法、方案有很多。有句话说的很对:条条大路通罗马!愿大家在处理数据的时候,在生活中,在工作中,都能找到属于自己的、合适自己的道路,我们来日方长!


作者|帅青青

排版|数读菌

校阅|数读菌


那今天就到这里结束啦,欢迎留言讨论。文中的图片文字未经许可不要随便“引用”。

如果可以的话,希望能够转发分享,点个在看并且点个,给个赞赏~~也欢迎规范转载~

历史文章推荐


【数据分享】21年五月区县级行政区划数据 


【数据分享】中国生态服务功能重要性与中国生态系统敏感性


【数据分享与说明】生态服务与生态敏感性数据集的常规问题统一回答


【数据分享】2020年度行政区划调整的数据更新与分享(省市县截至2020年12月31日)


【数据整理】2019年行政区划调整的数据更新与分享


需要你的“分享”和“在看”


END>

交流

欢迎大家扫下面的二维码添加我的个人微信(备注行业+姓名更易通过)!我建了一个交流群,欢迎大家加入灌水交流!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存