2016-02-29 106 views
1

我正在尝试使用cartopy来绘制几张地图,并且我想在离线状态下使用它们。 Cartopy有一个数据目录,从自然地球和OpenStreetMap为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'} 

所以我相信,我可以从Natural Earth网站下载地图。我怎样才能在这个目录上构建这些数据,这样cartopy就不会使用互联网进行绘图?我怎么能为OpenStreetMap数据做同样的事情?

回答

3

(部分唯一的答案)

在自然地球网站,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') 

fname是下载文件的完整路径名。

您不需要安排cartopy的下载位置。它已经拥有,您可以通过找到默认位置:

cartopy.config['data_dir'] # usually 'C:\\Users\\username\\.local\\share\\cartopy' 

您可以检查出你下载的文件,看看它们是如何在该位置的结构。

下一次当您使用cartopy功能cartopy.io.shapereader.natural_earth(使用默认配置)时,它将使用本地文件(如果它们可用)。