前天晚上发出一篇质量平平的博文后, 太云学长提出一个建议(其实算是中肯的批评): 用点的大小表示震级的大小. 其实以前也不是没想过这个问题. 只是不怎么懂R中的向量操作, 加上自己比较懒, 所以就 … 昨天没去教室学习(极度堕落啊), 正好宅在寝室里没事, 就画出来玩玩.
我们首先绘制图1, 点的半径大小代表震级的高低. 点的半径越大, 震级越高. (数据附文后)

图1 震级的大小
然后绘制图2, 点的透明度高低代表震源的深度, 点的透明度越靠近完全不透明 (完全不透明的红色为#FF0000FF), 表示震源深度越浅.

图2 震源的深度
继续阅读’小径分岔的花园’
写在前面
RgoogleMaps是SenseNetworks公司的Markus Loecher于2009年5月开始编写的一个R包. 此包的用途是把已有坐标数据作为一个个点自动打到从Google Maps上抓取的卫星地图上,好处是省去了人工计算抓取图片的参数和手动抓取、手动调整、打点的麻烦. 换句话说,现在我们只要在R中准备好经纬度数据再调用几个简单的函数就能画出一张 ( 至少从表面上看 ) 比较漂亮的图了 ( 其实也没这么简单 ).
话说敝人有去GIS选修课上睡过几次,奈何所学未有涉及地理专业,叙述方面难免缺失,只要大家能看懂就好了.
准备工作
下载安装或读入以下R包:
sp
RgoogleMaps
rgdal (若需生成PNG格式图片)
ReadImages(若需生成JPEG格式图片,还要安装 libjpeg)
接着,前往以下网址申请一个Google Maps的API key. 至于API是什么,我想就不用解释了,不知道的童鞋可以去Google上百度一下.
http://code.google.com/apis/maps/signup.html
图1: Google Maps API 申请页面
阅毕许可协议,勾选 I have read and agree with the terms and conditions 即可获得一个Google Maps的API key. 将此API key(一长串的数字字母符号混合物)写入一个文本文档,保存为:
X:\Documents and Settings\你的用户名\My Documents/API.key.txt
继续阅读’从实例看RgoogleMaps包的使用’
依稀记得09年的R会议北京会场上,来自中国地质环境监测院的刘永生老师曾经讲到一句R与Google Earth的结合,当时俺就震惊了,很好很强大,例如这张图就把自己的图层直接Overlay到了Google Earth中,俺猜可能是用R生成了KML文件吧:

图1: R与Google Earth
以俺的代码能力现在是写不出这样的程序了 .. 但是俺的脑海中蹦出了一个个小问号:如果要求降低一点,抓取Google的卫星图片,再往上Overlay可视化的数据,怎么计算抓取图片的参数?如果要在抓来的卫星图片上打点,又如何把点与图上的位置正确地对应?这些问题让俺困惑了好久。
前一阵子,在遥远的贝吉塔行星上,又出现了这样一篇博文:
http://www.bjt.name/2010/01/chinese-earthquake-visualization/
里面有一张图,描绘了2009年1月20日至1月25日中国及周边版图的地震情况:

图2: 最近7天中国及周边版图的地震情况
继续阅读’《最近一周中国及周边版图地震情况》之卫星地图版与动画实现’