跳转到主要内容

将OpenStreetMap数据转换为GIS和移动地图文件格式。

项目描述

OSM导出工具

该项目在Linux和Mac上处于可用状态。当前的导出工具网络服务存储库位于hotosm/osm-export-tool

动机

此程序通过YAML映射文件中嵌入的SQL过滤并转换OpenStreetMap数据为专题、表格GIS格式。例如,特征的过滤是通过SQL指定的

buildings_with_addresses:  # creates a thematic layer called "buildings_with_addresses"
  types:
    - polygons
  select:
    - building
    - height
    - addr:housenumber
  where:
    - building = 'yes' and addr:housenumber IS NOT NULL

它还可以创建非表格格式的文件,例如用于Garmin GPS设备或OSMAnd Android应用程序的文件。(即将推出)

安装

  • 通过 pip install osm-export-tool 安装。需要 Python 3 和一个可工作的 GDAL 安装。在 Mac 上可以通过 Homebrew 安装 GDAL,或者在 Ubuntu 上通过 ubuntugis PPAs 安装。

PyOsmium 用于读取 OSM 文件,GDAL/OGR 用于写入 GIS 文件,因此该程序应该运行得相对快速且内存占用小。GDAL/OGR 有内置的 OSM 读取器,但此程序更加灵活。

此库不会自动安装 GDAL,因为它需要匹配您系统上的版本。您需要单独运行 pip install GDAL==2.3.2(将 2.3.2 更改为与 gdalinfo --version 匹配的版本)

使用 Docker 运行

如果您想避免在系统上安装正确版本的 GDAL,可以运行程序作为 Docker 容器。

要构建 Docker 镜像,请使用以下命令。

docker build -t osm-export-tool .

要作为容器运行工具,使用当前目录作为工作目录,请使用以下命令。

docker run -it --rm -v $(pwd):/work osm-export-tool INPUT_FILE.pbf OUTPUT_NAME

示例用法

osm-export-tool INPUT_FILE.pbf OUTPUT_NAME

将创建 OUTPUT_NAME.gpkg。

以下所有标志都是可选的。

  • -m, --mapping : 指定映射 YAML。默认为 osm_export_tool/mappings/defaults.yaml,这是一个从 imposm3 默认值 转移的非常广泛的 OSM 标签的选择。
  • -f, --formats : 用逗号分隔的格式列表,如 gpkg,shp。默认仅为 gpkg。
  • --omit-osm-ids: 默认情况下,每个表都将有一个 osm_id 列。关系 ID 是负数。
  • --clip <file>: 一个 .poly 或 GeoJSON 文件。
    • GeoJSON 必须是 Polygon 或 MultiPolygon 几何形状,或者是一个包含一个 Polygon 或 MultiPolygon 特征的 FeatureCollection。
    • 裁剪是通过 Shapely 进行的,可能会很慢。建议使用类似 osmium-tool 的工具对输入 PBF 进行过滤。

YAML 映射

  • SQL 语句必须是键与常量之间的比较,键在前。
    • 有效示例
      • height > 20
      • amenity='parking' OR (building = 'yes' and height > 5)
    • 无效示例
      • 20 < height
      • building > height
  • 更多示例可以在 映射目录 中找到。
  • 如果省略了 types 键,则默认为 pointslinespolygons
  • 至少需要一个标签作为 select 键的子标签。
  • 如果省略了 where 键,则默认为选择包含任何 select 键的任何特征的要素。
  • 如果 where 是 SQL 列表,则与将列表中的每个 SQL 用 OR 连接起来等效。

输出格式

  1. OGC GeoPackage (gpkg)
  • 这是默认的导出格式,对于现代 GIS 应用程序来说非常灵活。
  • 将创建具有 wkbUnknown 几何类型的表,这允许异构几何类型。
  1. Shapefile (shp)
  • 每个图层和几何类型都是一个单独的 .SHP 文件。这是因为每个 .SHP 文件只支持单一几何类型和列模式。
  1. KML (kml)
  • 每个图层和几何类型都是一个单独的 .KML 文件。这是因为 GDAL/OGR KML 驱动程序不支持不同几何类型要素的交错写入。
  1. Maps.ME(即将推出)

  2. OsmAnd(即将推出)

  3. Garmin(即将推出)

项目详情


下载文件

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

源分发

osm-export-tool-0.0.28.tar.gz (20.1 kB 查看哈希值)

上传时间

由以下组织支持