esy.osmfilter 包的 UnicodeEncodeError

UnicodeEncodeError with esy.osmfilter package

当我使用 esy.osmfilter 包(版本 1.0.7)过滤 OSM .*pbf 文件时,我得到一个 UnicodeEncodeError: 'charmap' codec can't encode characters in position 1-4: character maps to <undefined>,然后使用以下代码将其保存到 *.json 文件中:

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']))

我按照tutorial and used tags like {'waterway': ['stream', ], }, {'waterway': ['canal', ], }, {'waterway': ['dam', ], }, etc. in the prefilter and they were all error-free. Then I found that the tag {'waterway': ['river', ], } will cause the error mentioned above. The same situation I received with the Berlin data. Then I tried with the Delaware的数据,没有错误。所以我认为这可能与 German 单词有关?我的默认编码是 'utf-8'.

我相信这个错误是一个纯粹的 Windows 错误。请暂时在 linux 机器上使用 esy-osmfilter。此错误是由外部库引起的,但我会在接下来的几天内解决此问题。

此错误已在 1.0.11 版中修复