【甘道夫】Geohash基础应用By Python
介绍Geohash基础概念的文章很多,我就不拷贝粘贴了,我只用最简单的理解概括:
Geohash用作坐标的索引,可大幅提升搜索坐标相关数据的效率。结合相邻9宫格的geohash,可以快速检索指定坐标附近一定范围内的地理信息目标(POI,道路等等)。
python环境下的geohash库推荐:
https://github.com/transitland/mapzen-geohash
该库基础功能完整,包括坐标编码为geohash,geohash解码为坐标,获取指定geohash周边9宫格的geohash。
安装:pip install mzgeohash
geohash编码的简单示例如下:
输入文件每行包含一个坐标,例如117.445044487,40.0585138025
处理代码:
# !/usr/bin/env python
# encoding:UTF-8
import time
import sys
import mzgeohash
def test(inputFile):
outputfile = file(inputFile+".geohash", 'a')
lineno = 0
ISOTIMEFORMAT='%Y-%m-%d %X'
for line in open(inputFile):
lineno += 1
if lineno % 100 == 0:
print "process line :",lineno," ",time.strftime(ISOTIMEFORMAT,time.localtime())
sys.stdout.flush()
xy = line.strip()
x = float(xy.split(",")[0])
y = float(xy.split(",")[1])
geohash = mzgeohash.encode((x,y),length=8)
outputfile.write(xy +"\t"+str(geohash )+"\n")
if __name__=="__main__":
inputFile = sys.argv[1]
test(inputFile)
产出文件每行示例:117.445044487,40.0585138025 wx5ebs
附上官方的简明使用示例:
>>> import mzgeohash
>>> mzgeohash.decode('xn76urwe1g9y')
(139.76608408614993, 35.681382017210126)
>>> mzgeohash.encode((139.76608408614993, 35.681382017210126))
'xn76urwe1g9y'
>>> mzgeohash.neighbors('xn76urwe1g9y')
{'c': 'xn76urwe1g9y',
'e': 'xn76urwe1gdn',
'n': 'xn76urwe1g9z',
'ne': 'xn76urwe1gdp',
'nw': 'xn76urwe1g9x',
's': 'xn76urwe1g9v',
'se': 'xn76urwe1gdj',
'sw': 'xn76urwe1g9t',
'w': 'xn76urwe1g9w'}
【甘道夫】Geohash基础应用By Python相关推荐
- 用Python与Watson,将《魔戒》甘道夫的性格可视化!
全文共4301字,预计学习时长9分钟 图源Unsplash,由Marko Blažević提供 著名心理学家詹姆斯· 彭内贝克曾说:"仔细观察人们通过语言表达思想的方式,会感受到他们的性格特 ...
- 【甘道夫】MapReduce实现矩阵乘法--实现代码
之前写了一篇分析MapReduce实现矩阵乘法算法的文章: [甘道夫]Mapreduce实现矩阵乘法的算法思路 为了让大家更直观的了解程序运行,今天编写了实现代码供大家參考. 编程环境: java v ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse插件
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
- 【甘道夫】Pandas 基础知识总结
欢迎转载,转载时请注明来源:https://blog.csdn.net/u010967382/article/details/89490502 1.简介 pandas包括3类核心数据结构: 一维:pa ...
- 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
介绍 之前具体写了一篇HBase过滤器的文章.今天把基础的表和数据相关操作补上. 本文档參考最新(截止2014年7月16日)的官方Ref Guide.Developer API编写. 全部代码均基于& ...
- 【甘道夫】基于scikit-learn实现逻辑回归LogisticRegression
难得有不涉及机密,同时又有一定记录价值的收获,记录下来,以备查阅. 欢迎转载,请注明出处: http://blog.csdn.net/u010967382/article/details/502252 ...
- 【甘道夫】HBase基本数据操作详解【完整版,绝对精品】
引言 之前详细写了一篇HBase过滤器的文章,今天把基础的表和数据相关操作补上. 本文档参考最新(截止2014年7月16日)的官方Ref Guide.Developer API编写. 所有代码均基于& ...
- 【甘道夫】Spark1.3.0 Running Spark on YARN 官方文档精华摘要
引言 由于工作需要,即将拥抱Spark,曾经进行过相关知识的学习,现在计划详细读一遍最新版本Spark1.3的部分官方文档,一是复习,二是了解最新进展,三是为公司团队培训做储备. 欢迎转载,请注明出处 ...
最新文章
- Facebook成功打破纸牌游戏Hanabi的AI系统得分纪录
- Linux下查看文件夹下文件个数
- python中内置函数基本输入输出函数
- 如何在 ASP.NET Core 中使用 NLog 的高级特性
- java hadoop api_Hadoop 系列HDFS的Java API( Java API介绍)
- A-Frame WEB VR框架初体验
- ubuntu 12.04 mysql_ubuntu12.04 安装和卸载mysql
- JDBC 笔记4 PreparedStatement 与Statement 的区别
- [转]MIDI常识20条
- 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
- ubuntu类似sourcetree的git可视化工具安装
- Visual Studio 2019 Community 版离线注册
- HL340(usb转串口线)驱动
- ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解
- ubuntu18.4.02配置静态IP和DNS并ping外网
- maven项目install报错:\target\surefire-reports for the individual test results
- svg图片调整大小和颜色
- 笔记本(win10、win7)开机在LOGO过后出现闪屏几下才进入系统成功解决问题步骤分享
- BZOJ1103 大都市 DFS序 树状数组维护差分数组
- python散点图坐标刻度_python – 散点图中的轴范围
热门文章
- 健康呵护 放心聆听 飞利浦儿童骨传导耳机K4607上市
- 五金机电行业智慧供应链平台开发,推进传统产业创新发展
- 心理学博士vs计算机博士,心理学博士、知乎大神告诉你怎么成为一个厉害的人...
- sscanf 解析字符串
- 51单片机汇编学习笔记9——定时计数器
- 分布式事务一致性与数据一致性的理解
- python下载链接图片并保存,python通过链接下载文件
- CSS3滤镜filter: blur,使图片或背景模糊(毛玻璃)
- RBF神经网络 vs BF神经网络
- Android构建出现的问题?You must specify a URL for a Maven repository.