Iva*_*van 2 python openstreetmap cartopy
我正在尝试使用 cartopy 绘制几张地图,并且我想离线使用它们。Cartopy 有一个数据目录,
import cartopy.config
cartopy.config
{'data_dir': '/home/user/.local/share/cartopy',
'downloaders': {('shapefiles',
'gshhs'): <cartopy.io.shapereader.GSHHSShpDownloader at 0x7f3ee33ee7d0>,
('shapefiles',
'natural_earth'): <cartopy.io.shapereader.NEShpDownloader at 0x7f3ee33ee710>},
'pre_existing_data_dir': '',
'repo_data_dir': '/home/user/bin/virtualenvs/mobi/local/lib/python2.7/site-packages/cartopy/data'}
Run Code Online (Sandbox Code Playgroud)
所以我相信我可以从Natural Earth网站下载地图。我怎样才能在这个目录上构造这些数据,这样 cartopy 就不会使用互联网来绘图?如何对 OpenStreetMap 数据执行同样的操作?
(仅部分回答)
在 Natural Earth 网站上,http://www.naturalearthdata.com/downloads/您可以找到所有可下载的文件。例如,此链接提供低分辨率数据:http://www.naturalearthdata.com/downloads/110m-physical-vectors/
该页面上的数据文件之一具有以下链接地址:
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/physical/ne_110m_coastline.zip
这段代码将下载该文件(如果该文件在计算机上不可用):-
import cartopy
fname = cartopy.io.shapereader.natural_earth( \
resolution='110m', \
category='physical', \
name='110m_coastline')
Run Code Online (Sandbox Code Playgroud)
fname是下载文件的完整路径名。
您无需安排cartopy的下载位置。它已经有默认位置,您可以通过以下方式找到:
cartopy.config['data_dir'] # usually 'C:\\Users\\username\\.local\\share\\cartopy'
Run Code Online (Sandbox Code Playgroud)
您可以查看下载的文件并查看它们在该位置的结构。
下次当您使用 cartopy 功能cartopy.io.shapereader.natural_earth(使用默认配置)时,它将使用本地文件(如果可用)。