- 背景
python3.8环境下根据博客中的步骤安装cartopy后出现报错:
安装cartopy参考博客:
Cartopy安装教程
其主要思路是在官方网站上下载自己所需要的whl文件到电脑,再利用pip install进行安装,在成功安装需要的包后,准备画图时却发现不能用,报错为:ImportError: DLL load failed while importing trace: 找不到指定的模块。
最后定位在这里:
Traceback (most recent call last):
File “draft1.py”, line 6, in
import cartopy.crs as ccrs
File “D:\python\python3.8.3\Lib\site-packages\cartopy_init_.py”, line 96, in
import cartopy.crs
File “D:\python\python3.8.3\Lib\site-packages\cartopy\crs.py”, line 26, in
import cartopy.trace
ImportError: DLL load failed while importing _crs: The specified module could not be found. - 解决
找了一圈发现可能是因为丢失了某个trace文件??(不是很懂,找了很多地方也没有解决)此问题搁置了很久之后,今天发现了一个博主提供的cartopy包,据说可以提供解决该问题的方法,地址:
python安装cartopy库报错更新
将文件下载后将整个cartopy文件夹覆盖复制到D:\python\python3.8.3\Lib\site-packages下,重新运行可以正常使用,故记录一下以备日后查阅。
- 案例
案例展示在全球地图上画出磁赤道的大概位置:
代码如下:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
# plt.axes是创建一个轴(或者说是主体) projection参数可以理解为将三维的地理信息如何投影为二维的地理信息,这个时候参数的值就是投影方式,此时是常用的平面投影
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines() # 这个函数是在主体上添加了海岸线
ax.set_extent([-180,180, -90, 90], crs=ccrs.PlateCarree())
ax.set_xticks(np.arange(-180, 181, 30), crs=ccrs.PlateCarree())
ax.set_yticks(np.arange(-90, 91, 15), crs=ccrs.PlateCarree())
gl = ax.gridlines(draw_labels=False, linewidth=0.2, color='k', linestyle=':')
f1 = open('magneticEquatorData.txt','r')
obsLines = f1.readlines()
magEqu_lat = []
magEqu_lon = []
for i in range(len(obsLines)):
fields = obsLines[i].split()
magEqu_lat.append(float(fields[0]))
magEqu_lon.append(float(fields[1]))
plt.plot(magEqu_lon, magEqu_lat,'s', color = 'b',markersize=2)
plt.show() # 将图像显示出来
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)