从OSM数据中提取数据。
项目描述
OSM RawData
一个用于访问PostgreSQL数据库中OSM数据的Python模块。
📖 文档: https://hotosm.github.io/osm-rawdata/
🖥️ 源代码: https://github.com/hotosm/osm-rawdata
这是一个用于使用PostgreSQL和自定义数据库模式处理OpenStreetMap数据的模块。此代码源自HOT导出工具、osm-fieldwork、Underpass和原始数据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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9e715c41ea0d7c306d984eee00859cb3414f5a705ed3578d43a5910e3d04a545 |
|
MD5 | 63039341df79bfc6cf6081d7b3be1f92 |
|
BLAKE2b-256 | 644e6e84fb8ef02dfe1a1977c81e06b442caab7d26634d41038e9d03679aab89 |
osm_rawdata-0.3.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97395ceb0ef9a5444a2cdf7cfcbcb95917bc35df4a395de0f30437d7b60e28b5 |
|
MD5 | 7d4a80b9b0a1e6c50b2a53b47bc9f36f |
|
BLAKE2b-256 | c65a6039c40232b37d12b04d7d549e5a346abe3c34fa674f806ad57a71c82c7a |