gpt4 book ai didi

python-3.x - 'utf- 8' codec can' t 在 python basemap 上使用 readshapefile 时解码

转载 作者:行者123 更新时间:2023-12-04 01:48:30 26 4
gpt4 key购买 nike

我正在尝试从 here 的加拿大 map 中读取边界

import matplotlib.pyplot as plt
import matplotlib.cm

from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
from matplotlib.colors import Normalize

m = Basemap(resolution='c', # c, l, i, h, f or None
projection='merc',
lat_0=56.1304, lon_0=106.3468,
llcrnrlon=-141.0, llcrnrlat= 41.2, urcrnrlon=-52.3, urcrnrlat=69.8)

m.drawmapboundary(fill_color='#46bcec')
m.fillcontinents(color='#f2f2f2',lake_color='#46bcec')
m.drawcoastlines()

到这里为止一切正常,但是当我尝试添加边界时,

m.readshapefile('mypaths/gcma000b11a_e/gcma000b11a_e', 'gcma000b11a_e')

我有这个 utf-8 错误:

代码来自这个伟大的tutorial

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 11: invalid continuation byte

最佳答案

您链接的形状文件实际上包含 4 个文件(.dbf、.prj、.shp、.shx)。问题是 dbf 文件 (gcma000b11a_e.dbf),它不在 utf-8 中。它包含法语字符(如 é)。您必须将此文件转换为 utf-8,然后您的代码才能工作。转换 .dbf 文件的一种简单方法是使用 libre office calc 打开它,然后在导入对话框中选择“Unicode (UTF-8)”。保存文件,m.readshapefile 将起作用。

关于python-3.x - 'utf- 8' codec can' t 在 python basemap 上使用 readshapefile 时解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42103455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com