跳转到主要内容

从OSM数据中提取数据。

项目描述

OSM RawData

HOT

一个用于访问PostgreSQL数据库中OSM数据的Python模块。

Build CI Build Publish Docs Publish Test Package version Downloads License


📖 文档: https://hotosm.github.io/osm-rawdata/

🖥️ 源代码: https://github.com/hotosm/osm-rawdata


这是一个用于使用PostgreSQL和自定义数据库模式处理OpenStreetMap数据的模块。此代码源自HOT导出工具osm-fieldworkUnderpass原始数据API,后者是HOT导出工具的新FastAPI后端。

由于多个项目需要以灵活的方式从OpenStreetMap进行数据提取,因此设计了单一代码库进行维护。

安装

要安装osm-rawdata,您可以使用pip。这里有两种选项

  • 直接从主分支:pip install git+https://github.com/hotosm/osm-rawdata.git

  • PyPi上的最新版本:pip install osm-rawdata

使用容器镜像

  • osm-rawdata脚本可以通过预构建的容器镜像使用。
  • 这些镜像包含了所有依赖项,因此运行起来很简单。

运行特定命令

docker run --rm -v $PWD:/data ghcr.io/hotosm/osm-rawdata:latest geofabrik <flags>

以交互式方式运行(用于使用多个命令)

docker run --rm -it -v $PWD:/data ghcr.io/hotosm/osm-rawdata:latest

注意:输出目录应始终为/data/... 以持久化数据。

数据库模式

该项目高度依赖于postgres和postgis。此模式针对数据分析进行了优化,而不仅仅是显示目的。传统上用于OSM的模式展示了其多年的发展历程。一些标签是列(通常为空),而其他标签则放入一个hstore 标签列中,需要直接访问。此数据库模式的一个重大变化是将所有标签放入单个列中,大大减少了数据大小,同时更容易以一致的方式查询。在过去,开发者必须跟踪哪些是列,哪些在tags列中,这效率低下。

此模式有4个表,类似于传统的表。OSM数据使用osm2pgsql导入,但使用lua脚本创建自定义模式。此模块的使用仅限于只读,因为Underpass可以每分钟更新原始数据,我们只想访问这些数据。

更有趣的是,此模块支持本地数据库和远程数据库,它们使用不同的查询语言。为了简化这一点,使用了一个配置文件,该文件然后生成适当的查询语法。

配置文件

此文件读取两种不同的格式,用于描述最终的SQL查询。YAML格式最初由Export Tool使用,但后来被JSON格式取代。在这次转换之前,YAML格式被osm-fieldwork项目采用,因此使用增强版本来定义查询。

也支持JSON格式,既可以解析配置文件,也可以从YAML配置文件生成查询。

文件

geofabrik.py

这是一个简单的实用程序,用于从GeoGFabrik下载文件。

config.py

此类解析JSON或YAML配置文件格式,并创建用于稍后生成数据库查询的数据结构。

postgres.py

此类处理与postgres数据库的工作。它设置连接,并处理查询的结果。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

osm-rawdata-0.3.2.tar.gz (43.3 kB 查看哈希值)

上传时间 源代码

构建发行版

osm_rawdata-0.3.2-py3-none-any.whl (54.5 kB 查看哈希值)

上传时间 Python 3

由...