我正在尝试离线使用Cartopy绘制地图。我找到了这篇文章: 卡托皮存储的离线数据的位置 但是,在将cartopy.config['data_dir']
更改为下载文件所在的'C:/...'
后,当我尝试绘制海岸线时,它仍然想下载地图。
cartopy.config['data_dir'] = '.../CartopyMaps'
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
控制台说:
Downloading:
http://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip
但是,我在.../CartopyMaps/shapefiles/natural_earth/physical/
中ne_110m_coastline
dbf、shp 和 shx 文件
为什么 Cartopy 看不到我的本地地图,我该如何帮助它?
尝试使用"pre_existing_data_dir"路径而不是"data_dir"。
from os.path import expanduser
import cartopy
cartopy.config['pre_existing_data_dir'] = expanduser('~/cartopy-data/')
我遇到了类似的问题,并且困惑了很长一段时间。 在我下载了整个离线数据集并将它们放入正确的目录中后,运行代码后
...
states = NaturalEarthFeature(category="cultural", scale="50m",
facecolor="none",
name="admin_1_states_provinces_shp")
...
控制台仍然显示:
Downloading:
...50m/cultural/ne_50m_admin_1_states_provinces_lines_shp.zip
但是,我发现我下载ne_50m_admin_1_states_provinces_lines.shp
的文件与 Cartopy 尝试获取的文件(ne_50m_admin_1_states_provinces_lines_shp.zip
"_shp")之间存在细微差异。
因此,我将命令更改为此命令并起作用:
states = NaturalEarthFeature(category="cultural", scale="50m",
facecolor="none",
name="admin_1_states_provinces")
我在这里分享了一个分步解决方案: https://discourse.holoviz.org/t/using-geoviews-tile-sources-offline/4859/5
TLDR:
import cartopy
import geoviews as gv
from bokeh.resources import INLINE
cartopy.config["pre_existing_data_dir"] = "/Users/ahuang/.cartopy/cartopy"
print(cartopy.config)
gv.extension("bokeh")
coastline = gv.feature.coastline()
borders = gv.feature.borders()
world = (coastline * borders).opts(global_extent=True)
gv.save(world, "world.html", resources=INLINE)