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

2024-04-18 10:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从http://download.geofabrik.de/europe.html下载了大不列颠.osm.pbf文件,我希望能够提取每个节点的所有lat和LON。这可能吗

如果我能把它转换成某种python格式,那就太好了


Tags: 文件http节点downloadhtmlosm格式de
1条回答
网友
1楼 · 发布于 2024-04-18 10:35:49

可以使用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的自述文件了解安装说明

相关问题 更多 >