《最近一周中国及周边版图地震情况》之卫星地图版与动画实现

依稀记得09年的R会议北京会场上,来自中国地质环境监测院的刘永生老师曾经讲到一句R与Google Earth的结合,当时俺就震惊了,很好很强大,例如这张图就把自己的图层直接Overlay到了Google Earth中,俺猜可能是用R生成了KML文件吧:

R_and_Google_Earth

图1: R与Google Earth

以俺的代码能力现在是写不出这样的程序了 .. 但是俺的脑海中蹦出了一个个小问号:如果要求降低一点,抓取Google的卫星图片,再往上Overlay可视化的数据,怎么计算抓取图片的参数?如果要在抓来的卫星图片上打点,又如何把点与图上的位置正确地对应?这些问题让俺困惑了好久。

前一阵子,在遥远的贝吉塔行星上,又出现了这样一篇博文:

http://www.bjt.name/2010/01/chinese-earthquake-visualization/

里面有一张图,描绘了2009年1月20日至1月25日中国及周边版图的地震情况:

图2: 最近7天中国及周边版图的地震情况

贝吉塔在文中有道,四川地区不太平,弟兄们要小心云云。我这次就特别关注一下四川地区。于是从数据源下载了我国地震监测部门四川台网所测定的四川地区2008年全年32640次地震震源的经纬度数据,稍稍处理了一下,把点打到了从Google Earth上抓来的卫星地图上。由于数据较多,图片较小,加之主要看的是震源的位置分布,恕难展示每个数据震级大小了:

2008_SiChuan_Earthquake_Static

图3: 2008年四川省地震分布情况

不难看出,有一个地区 .. 十分的 .. 危险 .. 然后,俺突发奇想,又分别抓了12个月的数据分别进行打点,最后做出一个GIF,正如那句话所讲,用的是R,画的是寂寞 .. 因为不小心沾了“统计动画”的边,不知有没有什么问题,不知Yihui能否来指点一二:

( 此图甚巨,计2.3M,为了不影响页面载入速度,请点此在新窗口查看或右键-另存为 )

图4: 2008年四川省地震分布情况 ( 按月份 )

由于Google Maps API使用协议里有讲须保留Powered by Google字样,我就没有再处理背景图,而抓取背景图的参数是自动计算的,所以现在看上去有些不连贯,so sucks ..当然,上述讨论很可能是完全无意义的。因为我觉得这基本上是一个强加的例子,玩玩而已:震源位置与时间又有啥关系呢?如果用来观察预测某种现象 ( 如疫情、自然灾害 ) 的蔓延情况,用以制订防御策略,估计会更有价值些吧。

扩展一下,下面这张全景图不是俺的,生成自 earthquake.usgs.gov :

Worldwide Significant Earthquakes

图5: 公元前2150年 - 公元1994年间世界上最严重的地震

前述R与Google Earth的简单结合使用 RgoogleMaps 包可以非常方便的实现。具体实现过程,且见下篇博文分解。

《最近一周中国及周边版图地震情况》之卫星地图版与动画实现》上有 8 条评论

  1. 做动画的时候最好能固定坐标轴的范围,否则晃来晃去就看不出有什么趋势了……

    • 可惜抓图的参数是根据数据计算的,如果固定一张背景图来plot,点的位置会有误差. 把图手动编辑一下效果会好些, 不过这就要动那两个logo ..Google API的协议里说:You may not alter or obscure the logos or attribution on the map ..看来只能做个mod版的自己玩了 .. 发个邮件给作者诉诉苦 .. 8-O

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: