我正在尝试使用开源项目 SciGRID 来开发电力网络。为此,我需要提取节点、方式和关系的权力标签。
SciGRID 用户指南第 10 页中提供了以下代码,通过使用来自更大区域 (asia-latest.osm. pbf)。
我遇到的问题是节点的电源标签似乎不可用,而方式和关系的电源标签可用。
osmosis \
--read-pbf file=PowerNetwork/data_japan/asia-latest.osm.pbf \
--tag-filter accept-relations route=power \
--used-way --used-node \
--bounding-polygon file=PowerNetwork/data_japan/japan.poly \
completeRelations=yes --buffer outPipe.0=route \
--read-pbf file=PowerNetwork/data_japan/asia-latest.osm.pbf \
--tag-filter accept-relations power=* \
--used-way --used-node \
--bounding-polygon file=PowerNetwork/data_japan/japan.poly
completeRelations=yes --buffer outPipe.0=power \
--read-pbf file=PowerNetwork/data_japan/asia-latest.osm.pbf \
--tag-filter reject-relations \
--tag-filter accept-ways power=* \
--used-node \
--bounding-polygon file=PowerNetwork/data_japan/japan.poly \
completeWays=yes --buffer outPipe.0=pways \
--read-pbf file=PowerNetwork/data_japan/asia-latest.osm.pbf \
--tag-filter reject-relations \
--tag-filter reject-ways \
--tag-filter accept-nodes power=* \
--bounding-polygon file=PowerNetwork/data_japan/japan.poly \
--buffer outPipe.0=pnodes \
--merge inPipe.0=route inPipe.1=power \
--buffer outPipe.0=mone \
--merge inPipe.0=pways inPipe.1=pnodes \
--buffer outPipe.0=mtwo \
--merge inPipe.0=mone inPipe.1=mtwo \
--write-pbf file=PowerNetwork/data_japan/jp_power_latest.osm.pbf
为了查看用户指南规定要使用的内容osm2pgsql
。这会将与电源相关的数据导出到 postgres(postgis) 数据库中。下面的代码做到了,
osm2pgsql -r pbf \
--username=postgres --host=127.0.0.1 \
--port=5432 --database=de_power_160718 \
--style power.style -C cash_size_in_MB \
--number-processes nb-processors \
de_power_160718.osm.pbf
power.style 文件的内容,
# OsmType Tag DataType Flags
node,way power text polygon
node,way cables text linear
node,way voltage text linear
node,way wires text linear
这导致形成了几个表,并且节点表不包含标签列,而方式和 rels 表包含标签列。有没有人碰巧知道为什么节点表不包含标签列?