介绍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相关推荐

  1. 用Python与Watson,将《魔戒》甘道夫的性格可视化!

    全文共4301字,预计学习时长9分钟 图源Unsplash,由Marko Blažević提供 著名心理学家詹姆斯· 彭内贝克曾说:"仔细观察人们通过语言表达思想的方式,会感受到他们的性格特 ...

  2. 【甘道夫】MapReduce实现矩阵乘法--实现代码

    之前写了一篇分析MapReduce实现矩阵乘法算法的文章: [甘道夫]Mapreduce实现矩阵乘法的算法思路 为了让大家更直观的了解程序运行,今天编写了实现代码供大家參考. 编程环境: java v ...

  3. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse插件

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

  4. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

  5. 【甘道夫】Pandas 基础知识总结

    欢迎转载,转载时请注明来源:https://blog.csdn.net/u010967382/article/details/89490502 1.简介 pandas包括3类核心数据结构: 一维:pa ...

  6. 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】

    介绍 之前具体写了一篇HBase过滤器的文章.今天把基础的表和数据相关操作补上. 本文档參考最新(截止2014年7月16日)的官方Ref Guide.Developer API编写. 全部代码均基于& ...

  7. 【甘道夫】基于scikit-learn实现逻辑回归LogisticRegression

    难得有不涉及机密,同时又有一定记录价值的收获,记录下来,以备查阅. 欢迎转载,请注明出处: http://blog.csdn.net/u010967382/article/details/502252 ...

  8. 【甘道夫】HBase基本数据操作详解【完整版,绝对精品】

    引言 之前详细写了一篇HBase过滤器的文章,今天把基础的表和数据相关操作补上. 本文档参考最新(截止2014年7月16日)的官方Ref Guide.Developer API编写. 所有代码均基于& ...

  9. 【甘道夫】Spark1.3.0 Running Spark on YARN 官方文档精华摘要

    引言 由于工作需要,即将拥抱Spark,曾经进行过相关知识的学习,现在计划详细读一遍最新版本Spark1.3的部分官方文档,一是复习,二是了解最新进展,三是为公司团队培训做储备. 欢迎转载,请注明出处 ...

最新文章

  1. Facebook成功打破纸牌游戏Hanabi的AI系统得分纪录
  2. Linux下查看文件夹下文件个数
  3. python中内置函数基本输入输出函数
  4. 如何在 ASP.NET Core 中使用 NLog 的高级特性
  5. java hadoop api_Hadoop 系列HDFS的Java API( Java API介绍)
  6. A-Frame WEB VR框架初体验
  7. ubuntu 12.04 mysql_ubuntu12.04 安装和卸载mysql
  8. JDBC 笔记4 PreparedStatement 与Statement 的区别
  9. [转]MIDI常识20条
  10. 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  11. ubuntu类似sourcetree的git可视化工具安装
  12. Visual Studio 2019 Community 版离线注册
  13. HL340(usb转串口线)驱动
  14. ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解
  15. ubuntu18.4.02配置静态IP和DNS并ping外网
  16. maven项目install报错:\target\surefire-reports for the individual test results
  17. svg图片调整大小和颜色
  18. 笔记本(win10、win7)开机在LOGO过后出现闪屏几下才进入系统成功解决问题步骤分享
  19. BZOJ1103 大都市 DFS序 树状数组维护差分数组
  20. python散点图坐标刻度_python – 散点图中的轴范围

热门文章

  1. 健康呵护 放心聆听 飞利浦儿童骨传导耳机K4607上市
  2. 五金机电行业智慧供应链平台开发,推进传统产业创新发展
  3. 心理学博士vs计算机博士,心理学博士、知乎大神告诉你怎么成为一个厉害的人...
  4. sscanf 解析字符串
  5. 51单片机汇编学习笔记9——定时计数器
  6. 分布式事务一致性与数据一致性的理解
  7. python下载链接图片并保存,python通过链接下载文件
  8. CSS3滤镜filter: blur,使图片或背景模糊(毛玻璃)
  9. RBF神经网络 vs BF神经网络
  10. Android构建出现的问题?You must specify a URL for a Maven repository.