当我使用UnicodeEncodeError: 'charmap' codec can't encode characters in position 1-4: character maps to <undefined>包(版本1.0.7)过滤OSM pbf文件并使用以下代码将其保存到*.json文件时,我得到了一个pbf:
import os
from esy.osmfilter import Node, Way, Relation
from esy.osmfilter import run_filter
PBF_inputfile = os.path.join(os.getcwd(), 'liechtenstein-latest.osm.pbf')
JSON_outputfile = os.path.join(os.getcwd(), 'liechtenstein-latest_river.json')
prefilter = {Node: {}, Way: {'waterway': ['river', ], }, Relation: {}}
whitefilter = []
blackfilter = []
[Data, _] = run_filter('noname',
PBF_inputfile,
JSON_outputfile,
prefilter,
whitefilter,
blackfilter,
NewPreFilterData=True,
CreateElements=False,
LoadElements=False,
verbose=True)
print(len(Data['Node']))
print(len(Data['Relation']))
print(len(Data['Way']))我遵循教程并在prefilter中使用了{'waterway': ['stream', ], }、{'waterway': ['canal', ], }、{'waterway': ['dam', ], }等标记,它们都是没有错误的。然后,我发现标记{'waterway': ['river', ], }将导致上述错误。与我使用柏林数据时所收到的情况相同。然后我尝试使用特拉华州数据,这是没有错误的。所以我想这可能和德语这个词有关?我的默认编码是'utf-8'。
发布于 2020-08-26 11:00:03
此错误由1.0.11版本修正。
发布于 2020-08-24 21:39:23
我相信这个bug是一个纯粹的Windows bug。请暂时在linux机器上使用esy-osmfilter。此错误来自外部库,但我将在今后几天内修复此错误。
https://stackoverflow.com/questions/63507093
复制相似问题