微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从python中的.osm.pbf文件中提取数据

如何解决从python中的.osm.pbf文件中提取数据

我已经从 http://download.geofabrik.de/europe.html 下载了英国的 .osm.pbf 文件,我希望能够提取每个节点的所有经纬度。这可能吗?

如果我能把它变成某种python格式就太好了

解决方法

您可以使用 pyosmium 来解析 .osm.pbf 文件。

这个简单的例子只是打印了每个具有 name tag 的节点的位置和名称:

import osmium
import sys

class NamesHandler(osmium.SimpleHandler):
    def node(self,n):
        if 'name' in n.tags:
            print(f'{n.location}: ' + n.tags['name'])

def main(osmfile):
    NamesHandler().apply_file(osmfile)
    return 0

if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("Usage: python %s <osmfile>" % sys.argv[0])
        sys.exit(-1)

    exit(main(sys.argv[1]))

当然,您可能希望根据您的用例对数据进行更复杂的处理。查看 documentation 以获取基本使用教程和参考,以及查看 pyosmium GitHub repository 的自述文件以获取安装说明。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。