Skip to Content
Python 用于地理空间数据分析
book

Python 用于地理空间数据分析

by Bonny P. McClain
May 2025
Intermediate to advanced
282 pages
4h 2m
Chinese
O'Reilly Media, Inc.
Content preview from Python 用于地理空间数据分析

第 5 章 OpenStreetMap OpenStreetMap:使用 OSMnx访问地理空间数据

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

OpenStreetMap(OSM)是一个可编辑的全球地理数据库,由志愿者建立,其目标是:创建地理数据并免费向所有人发布。如果您使用 GPS 或任何支持定位功能的设备来指路,那么您的智能手机已经与 OSM 进行了交互。 Python 提供了一个名为OSMnx 的软件包,可让城市规划者和其他各类用户创建街道网络,并与其他 "隐藏 "的地理信息进行交互和分析。您可以找到适合步行、驾车或骑车的城市网络,供个人使用或用于研究,例如研究城市环境的特征。强大的分析功能可以揭示基础设施框架,例如,在分析道路网络和相互关联的性质时,可以发现效率低下的问题。

我个人认为,街道 Network+ 是一件艺术品。不过,它们的真正用途或许还未得到充分利用,那就是为您的建筑基础设施添加几何图形。您可以添加建筑物(例如医院、学校和杂货店)、公园以及其他分类为边缘、建筑物和区域的数据帧。建筑物一词的定义比较宽泛,有一个关于建筑物标签的 Wiki。OSM Nominatim 是查找地名的重要资源。您还可以添加兴趣点、高程等。

乍一看,OSMnx 似乎有点技术性,也有点复杂。但在本章中,当你使用 OSM 构建街道 Network+ 时,你将学会如何应用这个功能强大、可定制的软件包并与之互动。

OpenStreetMap 概念模型

OSM 数据库包含 8 万多个标签键和 600 多种关系类型,因此你可以为地图定义适当的粒度。 在本章中,您将学习如何访问这些特征、自定义它们、将它们添加到地图上并进行分析。例如,您可以确定一个地点并探索农业、商业或住宅用地的分布情况。(本节后面的图 5-2 显示了您可以通过查询数据库访问的不同土地利用值的快照)。如果您对某一地区的洪涝灾害发生率或如何计算暴雨径流感兴趣,了解该地区的土地利用分布情况可能非常重要。截至本文撰写时,数据库中最常用的标签包括建筑物、高速公路、地表和水道数据。

OSM 的结构有一些规则,但相对简单明了。例如,节点可以是任意(可散列)的 Python 对象,节点和边都是可选的键/值属性。要查看这些可选值的全部内容,请访问 OSM地图特征标签信息(或阅读全文)。

你可以把一个可变对象(如列表)放在一个元组中。元组仍然是不可变的,但你可以改变其中的列表,所以它不是可散列的。

标签

OSM 应用一个由键值对组成的标签。我们将在本章编写的代码单元中看到这些定义。 它们的格式是及其对应的,格式为key=value 。例如,如果某个地点的关键字设置为highway ,值为residential ,那么就可以知道这是一条有人居住的道路。

下面是几个标签示例:

surface=asphalt
highway=residential
building=commercial 

根据您所寻找的内容,这种粒度可能对您的数据探索有用。例如,我曾使用这些标签来探索城市环境中的不透水表面。 不透水表面容易积聚热量,而拥有大量不透水表面的地方往往洪水泛滥率较高--这对于比较不同社区的特征非常重要。再比如,您可能只想获得一个社区内所有建筑物的地图。然后将上传默认值 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

实用 Linux 系统管理

实用 Linux 系统管理

Kenneth Hess
ppk on JavaScript

ppk on JavaScript

Peter-Paul Koch
高效R语言编程

高效R语言编程

Colin Gillespie, Robin Lovelace

Publisher Resources

ISBN: 9798341659025