通过网页访问日志分析使用者的地址,然后将其放到地图上,分析访问来源的热区从而得到用户的地图分布,是不是很有用、也很酷?这里介绍个使用GIScript和GeoIP来进行访问网址的地理定位的例子。
这个功能虽然看起来简单,但其实要分为很多个环节的。下面详述:
- 1、首先是获取IP地址,这个不多说了。在Web服务器的RequestHeaders中都有,也可以通过日志进行提取。从文件中提取可以批量处理,而从访问信息中提取然后直接发送到消息总线或NoSQL之类的高效率存储系统可以实现实时的处理。
- 2、使用GeoIP讲域名或IP地址解析为地名。GeoIP是MaxMind开发的用于IP到地址的解析工具,包括软件和IP数据库。免费版的定位较粗,而付费版的可以实现较高精度的定位。
- 3、将地名通过地理编码(Geocoding)功能转换为空间坐标或空间几何对象,需要软件和地图数据的共同支持。这个以前是专业GIS才有的功能,现在google/百度都提供在线服务接口。但是因为在线的有很多限制(网络带宽、并发控制、账号等等),这里使用GIScript这个工具来做。因为与GeoIP都有Python库,很容易集成到一起。如果需要大批量的处理,再假设一个Celery进行并行处理就OK了。
- 4、统计空间数据库中的数据样本的频度和其它属性,生成专题图或中间结果,可以输出图件或者将数据传送到R中继续进行高级分析,产生统计图表。
- 5、R分析的结果可以使用GIScript反向保存回空间数据库,进一步进行高级专题图的制作。
这个流程可以用到很多应用场景中,比如用户分析、反欺诈、搜索分析、市场分析等等。
后面进行具体的攻略研究,未完待续。
时间: 2024-10-20 00:06:02