Python 从Natural Earth和OpenStreetMap为Cartopy下载数据

Python 从Natural Earth和OpenStreetMap为Cartopy下载数据,python,openstreetmap,cartopy,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>, ('shapefi

我正在尝试使用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'}
导入cartopy.config
cartopy.config
{'data_dir':'/home/user/.local/share/cartopy',
'downloaders':{('shapefile',
“gshhs”):,
(‘形状文件’,
“自然地球”):},
“预存数据目录”:“,
'repo_data_dir':'/home/user/bin/virtualenvs/mobi/local/lib/python2.7/site packages/cartopy/data'}
所以我相信我可以从网站下载地图。我如何在这个目录中构建这些数据,这样cartopy就不会使用internet进行绘图了?如何对OpenStreetMap数据执行相同的操作?

(仅部分回答)

在自然地球网站,
http://www.naturalearthdata.com/downloads/
,您可以找到所有可下载的文件。 例如,此链接提供低分辨率数据:

该页上的一个数据文件具有以下链接地址:
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/physical/ne_110m_coastline.zip

这段代码将下载该文件(如果计算机上没有该文件):-

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

您不需要为cartopy安排下载位置。它已具有默认位置,您可以通过以下方式找到:

cartopy.config['data_dir']   # usually 'C:\\Users\\username\\.local\\share\\cartopy'
您可以查看下载的文件,并查看它们在该位置的结构

下次使用cartopy函数时,如果本地文件可用,它将使用本地文件。

(仅部分回答)

在自然地球网站,
http://www.naturalearthdata.com/downloads/
,您可以找到所有可下载的文件。 例如,此链接提供低分辨率数据:

该页上的一个数据文件具有以下链接地址:
http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/physical/ne_110m_coastline.zip

这段代码将下载该文件(如果计算机上没有该文件):-

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

您不需要为cartopy安排下载位置。它已具有默认位置,您可以通过以下方式找到:

cartopy.config['data_dir']   # usually 'C:\\Users\\username\\.local\\share\\cartopy'
您可以查看下载的文件,并查看它们在该位置的结构


下次使用cartopy函数时,如果本地文件可用,它将使用cartopy函数
cartopy.io.shapereader.natural_earth

我曾经遇到过类似的问题,其中,使用cartopy时,plt.gca().coasterlines()会触发从外部服务器下载zip文件,但由于缺乏互联网连接,下载失败

 /home/apps/CARTOPY/0.16.0/lib64/python2.7/site-packages/Cartopy-0.16.0-py2.7-linux-x86_64.egg/cartopy/io/__init__.py:260: DownloadWarning: Downloading: http://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip
  warnings.warn('Downloading: {}'.format(url), DownloadWarning)
我手动下载了zip文件,并在-~/.local/share/cartopy/shapefiles/natural\u earth/physical下解压缩

~/.local/share/cartopy/shapefiles/natural_earth/physical> ls
ne_110m_coastline.README.html  ne_110m_coastline.cpg  ne_110m_coastline.prj  ne_110m_coastline.shx
ne_110m_coastline.VERSION.txt  ne_110m_coastline.dbf  ne_110m_coastline.shp
然后在重命名/删除一些文件中的“ne_”前缀后,我就能够解决这个问题

~/PLOT_TEST> ls ~/.local/share/cartopy/shapefiles/natural_earth/physical/
110m_coastline.cpg  110m_coastline.dbf  110m_coastline.prj  110m_coastline.shp  110m_coastline.shx  ne_110m_coastline.README.html  ne_110m_coastline.VERSION.txt

我曾经遇到过类似的问题,在cartopy中,plt.gca().Coasines()触发从外部服务器下载zip文件,但由于缺少internet连接,下载失败

 /home/apps/CARTOPY/0.16.0/lib64/python2.7/site-packages/Cartopy-0.16.0-py2.7-linux-x86_64.egg/cartopy/io/__init__.py:260: DownloadWarning: Downloading: http://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip
  warnings.warn('Downloading: {}'.format(url), DownloadWarning)
我手动下载了zip文件,并在-~/.local/share/cartopy/shapefiles/natural\u earth/physical下解压缩

~/.local/share/cartopy/shapefiles/natural_earth/physical> ls
ne_110m_coastline.README.html  ne_110m_coastline.cpg  ne_110m_coastline.prj  ne_110m_coastline.shx
ne_110m_coastline.VERSION.txt  ne_110m_coastline.dbf  ne_110m_coastline.shp
然后在重命名/删除一些文件中的“ne_”前缀后,我就能够解决这个问题

~/PLOT_TEST> ls ~/.local/share/cartopy/shapefiles/natural_earth/physical/
110m_coastline.cpg  110m_coastline.dbf  110m_coastline.prj  110m_coastline.shp  110m_coastline.shx  ne_110m_coastline.README.html  ne_110m_coastline.VERSION.txt

我准备了一段代码,您可以从自然地球下载shapefile,然后将它们转换为数据帧。请注意,自然地球中的国家坐标是多边形和多多边形格式。在处理线条字符串的河流时,需要修改代码

您可能需要使用所需的文件名(如“海岸线”)来操纵“名称”。在以下链接中查找更多信息:


我准备了一段代码,您可以从自然地球下载shapefile,然后将它们转换为数据帧。请注意,自然地球中的国家坐标是多边形和多多边形格式。在处理线条字符串的河流时,需要修改代码

您可能需要使用所需的文件名(如“海岸线”)来操纵“名称”。在以下链接中查找更多信息: