Colinhou 发表于 2012-12-29 11:07:50

数据处理:由面得点,构造其边界

<div id="cnblogs_post_body">上周做了一次数据处理:根据中国区域的面状数据,得到省界,再由省界边线转换成点,得点坐标并在一个三维场景Openwebglobe里面构造边界,因为暂时只知道由点坐标来构造线。
工具:ArcToolbox(真的很强大!)、Excel
过程:
1.由面数据得线数据。
2.根据线数据得点数据,由于在三维场景中点数据构造线数据时,其内在渲染方式的问题,需要注意公共边的问题,需要使用“Select Features”这个工具,可以单独处理同一图层内不同部分的数据(很关键的一步)。
3.线转点,并获取点的坐标。
4.属性表导出整理。
效果图:(左图为源数据,右图为结果)
http://images.cnitblog.com/blog/468221/201212/25220224-0ed886bece2445babe7fab01c4e96f41.pnghttp://images.cnitblog.com/blog/468221/201212/25221455-c0aeac39f8614eb0910c73cded5c7e3f.png

详细过程:
1.面转线
因为面数据是带属性的,而属性表中的省名是很重要的,是后面识别各省区的重要字段,所以转换时要保留这些重要属性,故使用“Feature to Line”,如果使用“Polygon to Line”的话,这些属性就没了。如图所示,左图为Feature to Line的结果,右图为Polygon to Line的结果。
http://images.cnitblog.com/blog/468221/201212/25225247-8b8f6c1cb3fd4aa8b3aee56c8e6fe049.png http://images.cnitblog.com/blog/468221/201212/25225315-2d9a8b95bfd54b9e9bbcdd1eb8104ef9.png
另外,这里有点特殊,因为在Openwebglobe中渲染机制的问题(不了解,只能用下面所说办法了),需要的是不相邻省区边界转换出来的点坐标来构造线,否则会出现线条混乱的问题。
可是一整块面状数据如何将不同省区分多次弄出来呢?可以通过“Select Features”这个工具,将他们点选出来,使用“Feature to Line”时,就会只处理点选部分数据,多次处理后就可以得到不相邻省区的数据了
。http://images.cnitblog.com/blog/468221/201212/25232040-cded286508df46969d454f42d86a2be8.pnghttp://images.cnitblog.com/blog/468221/201212/25232050-991e893e547649be8fe7827640489776.png
2.线转点
转换之前,先把线简化一下,要不后面转换出来的点密密麻麻的(将近3万个点),工作量会剧增。使用“Simplify Line”这个工具,通过搜索找到它。
可以看到,把线简化以后,线上的折点少了很多,这样下一步根据线转换出折点时,点的数量会少很多,减少工作量,这里简化时设置最大允许偏移容差是15000m,因为要求不是精确,只是示意性展示。
这一步其实是在面转线完毕后进行的,当时处于摸索阶段,所以顺序搞错了,实际上是得到不相邻省区的各个图层后,再做多次简化处理。
http://images.cnitblog.com/blog/468221/201212/25232435-c9076c9d498c4c469fc5fa5c7e984f4d.png http://images.cnitblog.com/blog/468221/201212/25232347-dde1b6f5867c4e269cc25e7677cba965.png
3.线转点,并获取坐标
使用“Feature Vertices To Points”,根据线数据转换得到折点,可以看到线简化之后,点的数量明显减少。
当然,最终我们还是要获取点的坐标,“Add XY Coordinates”可以帮助我们,得到点图层的所有点数据的坐标,并自动更新到属性表里面。
http://images.cnitblog.com/blog/468221/201212/25233952-f67a91839b7e40eebed997e391b9ff51.png
4.属性表处理
将属性表导出来,用Excel进行处理,批量整理成符合格式需求的数据,这一步会有些工作量,然后将整理好的数据进行构造即可。
附Openwebglobe相关地址:https://github.com/OpenWebGlobe 下载WebViewer
http://www.openwebglobe.org/官网,页面已经更新了,论坛可访问,后续会有新的版本出来,修正一些Bug。是不是可以不用手动构造了呢?
页: [1]
查看完整版本: 数据处理:由面得点,构造其边界