带有esy.osmfilter包的UnicodeEncodeError

问题描述

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

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,并在{'waterway': ['stream',}中使用了{'waterway': ['canal',}{'waterway': ['dam',}prefilter标签,它们都没有错误。然后,我发现标记{'waterway': ['river',}将导致上述错误。我收到的Berlin数据与我的情况相同。然后,我尝试使用Delaware数据,该数据没有错误。所以我认为这可能与德语单词有关?我的认编码为'utf-8'

解决方法

我相信此错误是纯Windows错误。请暂时在Linux机器上使用esy-osmfilter。该错误是由外部库导致的,但是我将在接下来的几天内修复此问题。

,

此错误已在1.0.11版中修复