【发布时间】:2021-02-01 19:36:48
【问题描述】:
我在使用底图 - arcgisimage 函数时遇到问题。下面的示例代码
...
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from PIL import Image
m = Basemap(
llcrnrlat=40.361369, llcrnrlon=-80.0955278,
urcrnrlat=40.501368, urcrnrlon=-79.865723,
epsg = 2272
)
#m.arcgisimage(service='ESRI_StreetMap_World_2D'
, xpixels=7000, verbose=True)
m.arcgisimage(service='World_Physical_Map', xpixels=7000, ypixels=None, dpi=96,verbose=True)
#m.arcgisimage(service='ESRI_Imagery_World_2D', xpixels=7000, verbose=True)
plt.show()
...
当我运行此命令时,arcgisimage() 函数在 PIL 中崩溃并显示错误消息
Traceback (most recent call last):
File "C:\Machine Learning\Geospatial\pittsburgh_map.py", line 11, in <module>
m.arcgisimage(service='World_Physical_Map', xpixels=7000, ypixels=None, dpi=96,verbose=True)
File "C:\Users\peter\AppData\Local\Programs\Python\Python38\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 4263, in arcgisimage
return self.imshow(imread(urlopen(basemap_url)),ax=ax,
File "C:\Users\peter\AppData\Local\Programs\Python\Python38\lib\site-packages\matplotlib\image.py", line 1490, in imread
with img_open(fname) as image:
File "C:\Users\peter\AppData\Local\Programs\Python\Python38\lib\site-packages\PIL\ImageFile.py", line 121, in __init__
self._open()
File "C:\Users\peter\AppData\Local\Programs\Python\Python38\lib\site-packages\PIL\PngImagePlugin.py", line 692, in _open
cid, pos, length = self.png.read()
File "C:\Users\peter\AppData\Local\Programs\Python\Python38\lib\site-packages\PIL\PngImagePlugin.py", line 162, in read
pos = self.fp.tell()
io.UnsupportedOperation: seek
【问题讨论】:
-
您是如何安装 mpl_toolkits 的?确保您遵循 Basemap 安装说明:matplotlib.org/basemap/users/installing.html
-
感谢我在 Windows 10 上运行,安装时出现问题。我认为 pip 或 conda 终于奏效了。链接好像是指linux?
-
您会推荐哪种方法?我安装了 py 3.8.6。最初我有 3.9,但必须转到早期版本才能获得兼容的库。除了这个 arcgisimage() 函数之外,其他所有东西似乎都在底图中工作
-
该链接还提供了有关 Windows 二进制文件的信息——这就是我用来安装的内容。编辑:不推荐使用底图以支持 cartopy github.com/matplotlib/basemap
-
我使用了带有 .whl 文件的 conda 或 pip - 不太确定,因为它很难安装。我以为这些说明是针对 linux 的?除 arcgisimage() 函数外,底图似乎都可以工作。这需要另一个库来工作吗
标签: python python-3.x matplotlib matplotlib-basemap