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 版中修复
当我使用 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 版中修复