Grid2Poster

5个月前发布 207 00

Grid2Poster 是一个开源 Python 项目,它能够根据 OpenStreetMap (OSM) 的数据,生成精美且可打印的电网基础设施海报。无论是单个国家的输电网络,还是整个大陆的电力脉络,Grid2Poster 都能将其转化为极具视觉冲击力的艺术作品。

所在地:
美国
收录时间:
2026-05-24
Grid2PosterGrid2Poster

Grid2Poster 是一个开源 Python 项目,它能够根据 OpenStreetMap (OSM) 的数据,生成精美且可打印的电网基础设施海报。无论是单个国家的输电网络,还是整个大陆的电力脉络,Grid2Poster 都能将其转化为极具视觉冲击力的艺术作品。

Grid2Poster

该项目深受 maptoposter 启发,利用 GeoPandas、OSMnx 和 Matplotlib 的强大功能,自动下载、处理并渲染指定区域的 power=line、power=minor_line 和 power=cable 要素。

核心亮点

  • 全球覆盖:支持任意国家、地区甚至整个大陆(如非洲、欧洲)的电网数据渲染。
  • 多主题风格:内置多种视觉主题(如 paper_grid, neon_cyberpunk 等),也可通过 JSON 文件自定义样式。
  • 高度可定制:支持自定义纸张尺寸(A4, Letter 等)、方向(横向/纵向)、DPI、边界填充及副标题。
  • 灵活数据源:可使用默认 Overpass API,也可切换镜像源以避免限流;支持导入本地 GeoJSON 作为自定义边界。
  • 高效缓存:自动缓存 OSM响应和处理后的几何图形,避免重复下载,提升二次生成速度。

快速开始

1. 环境准备

建议克隆 main 分支以节省空间(gh-pages 包含大量图库图片,体积巨大):

git clone --single-branch https://github.com/open-energy-transition/grid2poster 
cd grid2poster
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

2. 基本用法

默认生成 PNG 和 SVG 格式的海报:

# 生成葡萄牙电网海报
python create_grid_poster.py --country Portugal

3. 高级配置示例

  • 大型国家优化:对于面积较大的国家,减小瓦片尺寸可提高查询成功率。
    python create_grid_poster.py --country Vietnam --tile-size-km 150
    
  • 包含配电网络:获取更密集的 minor_line 数据。
    python create_grid_poster.py --country Germany --include-minor-lines
    
  • 自定义边界与主题:使用本地 GeoJSON 定义“中东及北非”区域,并应用赛博朋克主题。
    python create_grid_poster.py --country "Middle East and North Africa" \
                                 --boundary-geojson ./regions/mena.geojson \
                                 --landscape \
                                 --theme neon_cyberpunk
    
  • 渲染整个大陆:
    python create_grid_poster.py --country Africa --tile-size-km 500
    
  • 切换 Overpass 镜像:若默认端点限流,可更换为其他公共服务。
    python create_grid_poster.py --country Germany --overpass-endpoint https://overpass.kumi.systems/api/interpreter
    

常用参数详解

参数说明示例
--country国家、地区或大陆名称France, Africa
--boundary-geojson本地 GeoJSON 边界文件路径./my_region.geojson
--theme视觉主题 IDpaper_grid, neon_cyberpunk
--paper-size预设纸张尺寸a4, letter
--width / --height自定义海报宽高(毫米)--width 500 --height 700
--landscape横向渲染--landscape
--dpi输出分辨率--dpi 300
--include-minor-lines包含次要线路--include-minor-lines
--export-geojson导出原始线路数据--export-geojson
--list-themes列出所有可用主题--list-themes

注意事项

  • 数据完整性:海报的详细程度取决于该地区在 OpenStreetMap 中的数据覆盖情况。部分地区可能缺少详细的配电网络数据。
  • API 限流:大规模查询(如整个大陆)可能会触发 Overpass API 的限流。建议使用 --tile-size-km 调整分块大小,或切换至镜像端点。
  • 内存占用:渲染超大区域或极高密度数据时,请确保系统有足够的内存。

Grid2Poster 将枯燥的基础设施数据转化为令人惊叹的视觉艺术品。它不仅是一个实用的地图生成工具,更是探索全球能源网络分布、展示地域技术景观的独特窗口。

无论是用于装饰书房、作为能源研究的辅助图表,还是单纯出于对地理美学的热爱,Grid2Poster 都能为你提供无限的可能。立即尝试,为你关心的地区绘制一张独一无二的“电力脉搏”图吧!

相关导航