Linux --绘制地图投影出现报错:无法成功下载地图背景数据

本文主要是介绍Linux --绘制地图投影出现报错:无法成功下载地图背景数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux --绘制地图投影出现报错:无法成功下载地图背景数据

  • 主要原因是由于使用学院集群,该集群无法连接外网,在使用cartopy绘制地图投影时,导致无法成功加载地图背景数据
  • 解决方法也很简单,自己手动下载所需要的地形数据然后放到cartopy存放地图数据的文件夹处即可
import cartopy
cartopy.config

找到地图存放路径:
在这里插入图片描述

进入到该路径下,cd ~/.local/share/cartopy/,你会发现会有一个名称为shapefiles的文件夹,进入该文件夹:

.local/share/cartopy/shapefiles

里面还有一个子文件夹:natural_earth,再次进入后,里面有个physical文件夹,在进入这个文件夹,这个.local/share/cartopy/shapefiles/natural_earth/physical
就是你要手动放置地图数据的地方,下载地图的网址如下:

https://www.naturalearthdata.com/downloads/

在这里插入图片描述
如上图所示,存在三个分辨率,110m、50m、10m,根据自己的需求进行下载,也可以三个都下载,点击Physical,跳转到下载页面:在这里插入图片描述
点击download all 10m physical themes,下载该分辨率下的地图数据,
在这里插入图片描述
下载后是一个压缩包的形式,在这里插入图片描述
将这些压缩包通过scp命令传到你的服务器上,刚刚的找到的路径位置,然后解压缩即可。不会scp命令的话,这里推荐使用一个远程软件 MobaXterm ,使用ssh 远程连接服务器后,这个软件的左侧可以打开服务器上文件夹的目录,直接从本地将下载的压缩文件拖进去,就自动上传了

在这里插入图片描述
然后,解压缩地图数据:

unzip 10m_physical.zip
unzip 50m_physical.zip
unzip 110m_physical.zip

最后,运行测试代码,查看是否存在问题:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
proj = ccrs.PlateCarree()
fig = plt.figure(figsize=(4, 4), dpi=200)  
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
plt.show()
plt.savefig("cartopy_plot_test.png")

复制上述代码,在linux页面使用vi 新建一个python脚本:

vi plot_test.py

然后将代码粘贴进去,保存后运行改脚本,

python plot_test.py

如果顺利保存图片,则运行成功,可以继续画图了

在这里插入图片描述

这篇关于Linux --绘制地图投影出现报错:无法成功下载地图背景数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489228

相关文章

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Linux之软件包管理器yum详解

《Linux之软件包管理器yum详解》文章介绍了现代类Unix操作系统中软件包管理和包存储库的工作原理,以及如何使用包管理器如yum来安装、更新和卸载软件,文章还介绍了如何配置yum源,更新系统软件包... 目录软件包yumyum语法yum常用命令yum源配置文件介绍更新yum源查看已经安装软件的方法总结软

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Linux:alias如何设置永久生效

《Linux:alias如何设置永久生效》在Linux中设置别名永久生效的步骤包括:在/root/.bashrc文件中配置别名,保存并退出,然后使用source命令(或点命令)使配置立即生效,这样,别... 目录linux:alias设置永久生效步骤保存退出后功能总结Linux:alias设置永久生效步骤