当前位置: 首页 > news >正文

【Cartopy】库的安装和瓦片加载(天地图、高德等)

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。

Cartopy基础入门

【Cartopy】库的安装和天地图瓦片加载
【Cartopy】【Cartopy】如何更好的确定边界显示
【Cartopy】【Cartopy】如何丝滑的加载Geojson数据


文章目录

  • Cartopy基础入门
  • 前言
  • 一、python版本
  • 二、环境依赖
  • 三、库依赖
  • 四、下载Cartopy的whl文件
  • 五、天地图瓦片加载
  • 六、保存io图片
  • 七、保存多图效率问题


前言

Cartopy的官方文档还是太难读了,来来回回找了很多资料,还是有很多东西无法使用,网络上教程大多比较官方。作为程序员,很多时候还是根据源码来使用各种库来的实在。官网链接可参考:https://scitools.org.uk/cartopy/docs/latest/installing.html#required-dependencies。
现在是2023年8月11日,在python3.8环境下,安装Cartopy==0.20.2


一、python版本

在这里插入图片描述

二、环境依赖

在windows系统,可通过安装OSGeo4W,完成gdal、geos、proj的安装。
在linux可以参考链接:https://blog.csdn.net/qq_15028721/article/details/129244588

下载GDAL文件,地址

百度的网盘链接: https://pan.baidu.com/s/1mvls3DA9-_41j52CkuT0wQ?pwd=vied 提取码: vied
在这里插入图片描述

安装命令如下

pip install .\GDAL-3.4.3-cp38-cp38-win_amd64.whl

三、库依赖

官网一直在更新版本,我们这里是以python3.8来安装,需要的库依赖包括Matplotlib 、Shapely 、pyshp 、pyproj 。安装命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyproj==3.3.1 pyshp==2.3.1 Shapely==1.8.2 matplotlib==3.
5.2

在这里插入图片描述

四、下载Cartopy的whl文件

百度网盘链接: https://pan.baidu.com/s/1cJyRL6KzoyPLWyITLNtZIA?pwd=7i86 提取码: 7i86

在这里插入图片描述

pip install .\Cartopy-0.20.2-cp38-cp38-win_amd64.whl

五、天地图瓦片加载

import datetime
import random
import os
import json
import zipfile
import shutil
from xml.etree import ElementTree
from pathlib import Pathfrom docxtpl import DocxTemplate, InlineImage
from docx.shared import Mmimport cartopy.crs as ccrs
import matplotlib.pyplot as plt
import cartopy.io.img_tiles as cimgt# 高德地图底图
class GaodeMap(cimgt.GoogleWTS):def _image_url(self, tile):x, y, z = tileurl = 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x=%s&y=%s&z=%s' % (x, y, z)return url# 天地图底图
class TDT(cimgt.GoogleWTS):def _image_url(self, tile):x, y, z = tileurl = 'http://t%s.tianditu.gov.cn/DataServer?T=vec_w&x=%s&y=%s&l=%s&tk=dbf3e0f3ac8d0162ae0a4bbd0fcbd09b'% (random.randint(1, 7),x, y, z)return url
class TDT_ter(cimgt.GoogleWTS):def _image_url(self, tile):x, y, z = tileurl = 'http://t3.tianditu.gov.cn/DataServer?T=ter_w&x=%s&y=%s&l=%s&tk=dbf3e0f3ac8d0162ae0a4bbd0fcbd09b'% (x, y, z)return url
class TDT_img(cimgt.GoogleWTS):def _image_url(self, tile):x, y, z = tileurl = 'http://t3.tianditu.gov.cn/DataServer?T=img_w&x=%s&y=%s&l=%s&tk=dbf3e0f3ac8d0162ae0a4bbd0fcbd09b'% (x, y, z)return url
# 谷歌底图
class GuGeMap(cimgt.GoogleWTS):def _image_url(self, tile):x, y, z = tileurl =  f'http://mt2.google.com/vt/lyrs=m&scale=2&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}'return url# openstreetmap底图
class OpenStreetMap(cimgt.GoogleWTS):def _image_url(self, tile):x, y, z = tileurl =  f'https://tile.openstreetmap.org/{z}/{x}/{y}.png'return url# 地图
proj = ccrs.PlateCarree()
plt.figure(figsize=[10, 10], dpi=300, edgecolor='coral')
geo_axes = plt.axes(projection=proj)
# 网格线
geo_axes.gridlines(draw_labels=True, x_inline=False, y_inline=False)# 底图:天地图
geo_axes.add_image(TDT(), 8)# 正方形图片
plt.axis('square')plt.savefig(plt_img, dpi=300)

六、保存io图片

img_buf = io.BytesIO()
plt.savefig(img_buf, dpi=300)
img_buf.seek(0)

七、保存多图效率问题

plt.savefig(plt_img, dpi=300)
plt.clf()

相关文章:

【Cartopy】库的安装和瓦片加载(天地图、高德等)

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 Cartopy基础入门 【Cartopy】库的安装和天地图瓦片加载 【Cartopy】【Cartopy】如何更好的确定边界显示 【Cartopy】【Cartopy】如何丝滑的加载Geojso…...

TCPDF生成PDF文件,含jpjraph生成雷达图

TCPDF生成PDF文件,含jpjraph生成雷达图 依赖自行安装 "tecnickcom/tcpdf": "^6.6","amenadiel/jpgraph": "4"雷达图生成 中文字体添加安装 没有封装,只作为测试案例展示 // 创建新的PDF文档$pdf new \TCPD…...

Flink-串讲面试题

1. 概念 有状态的流式计算框架 可以处理源源不断的实时数据,数据以event为单位,就是一条数据。 2. 开发流程 先获取执行环境env,然后添加source数据源,转换成datastream,然后使用各种算子进行计算,使用s…...

如何培养对技术的热爱

这篇博文主要针对计算机专业相关的同学,对于理工科专业的同学有一定的借鉴意义,对于其他专业的同学,还请自行取舍。 背景 初学计算机,可能并不是每个人都能对其产生兴趣,更不要说从其中获得快乐。对于如何培养兴趣&a…...

Vue响应式数据的原理

在 vue2 的响应式中,存在着添加属性、删除属性、以及通过下标修改数组,但页面不会自动更新的问题。而这些问题在 vue3 中都得以解决。 vue3 采用了 proxy 代理,用于拦截对象中任意属性的变化,包括:属性的读写、属性的…...

pytest fixture 用于teardown工作

fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。 举个例子: 输出: 说明&…...

39 printf 的输出到设备层的调试

前言 在前面 printf 的调试 我们只是调试到了 glibc 调用系统调用, 封装了参数 stdout, 带输出的字符缓冲, 以及待输出字符长度 然后内核这边 只是到了 write 的系统调用, 并未向下细看 我们这里 稍微向下 细追一下, 看看 到达设备层面 这里是怎么具体的 impl 的 测试用例…...

数字普惠金融、数字创新与经济增长—基于省级面板数据的实证考察(2011-2021年)

参照陈啸(2023)的做法,本对来自经济问题《数字普惠金融、数字创新与经济增长——基于省级面板数据的实证考察》一文中的基准回归部分进行复刻。数字普惠金融、数字创新已经成为驱动经济高质量发展的关键。利用省级面板数据,构建固…...

控制renderQueue解决NGUI与Unity3D物体渲染顺序问题

NGUI与Unity3D物体渲染顺序问题,做过UI的各位应该都遇到过。主要指的是UI与Unity制作的特效、3D人物等一同显示时的层次问题。 由于UI与特效等都是以transparent方式渲染,而Unity与NGUI在管理同是透明物体的render queue时实际上互相没有感知&#xff0…...

概率论与数理统计:第二、三章:一维~n维随机变量及其分布

文章目录 Ch2. 一维随机变量及其分布1.一维随机变量1.随机变量2.分布函数 F ( x ) F(x) F(x)(1)定义(2)分布函数的性质 (充要条件)(3)分布函数的应用——求概率3.最大最小值函数 2.一维离散型随机变量及其概率分布(分布律)3.一维连续型随机变量及其概率分布(概率密度)4.一般类型…...

BOLT- 识别和优化热门的基本块

在BOLT中,识别和优化热门的基本块之所以关键,是因为BOLT的主要目标是优化程序以更好地利用硬件特性,特别是指令缓存(ICache)。以下是BOLT如何识别和优化热门基本块的流程: 收集性能数据: BOLT开始的时候并不…...

Golang 中的 time 包详解(四):函数详解

在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文讲解一下 time 包中的函数。 func Now() Time 返回当前的系统时间。 package mai…...

【前端 | CSS】5种经典布局

页面布局是样式开发的第一步,也是 CSS 最重要的功能之一。 常用的页面布局,其实就那么几个。下面我会介绍5个经典布局,只要掌握了它们,就能应对绝大多数常规页面。 这几个布局都是自适应的,自动适配桌面设备和移动设备…...

腾讯云宣布VPC网络架构重磅升级,可毫秒级感知网络故障并实现自愈

8月11日,腾讯云宣布VPC(Virtual Private Cloud,云私有网络)架构重磅升级。新架构采用多项腾讯核心自研技术,能够支撑用户构建业界最大 300万节点超大规模单VPC网络,并将转发性能最大提升至业界领先的200Gbp…...

vue 路由页面跳转

从index.vue跳转到data.vue index.vue <el-table-column label"客户数" align"center" :show-overflow-tooltip"true"><template slot-scope"scope"><router-link :to"/system/enterprise-data/index/ scope.ro…...

Vue toRefs:在Vue中不失去响应式的情况下解构属性

Vue toRefs&#xff1a;在Vue中不失去响应式的情况下解构属性 文章目录 Vue toRefs&#xff1a;在Vue中不失去响应式的情况下解构属性什么是响应式&#xff1f;解构Props的挑战使用toRefs保持响应式结论 在Vue开发中&#xff0c;我们经常会在组件之间传递数据。这时候&#xff…...

自定义element-plus的弹框样式

项目中弹框使用频繁,需要统一样式风格,此组件可以自定义弹框的头部样式和内容 一、文件结构如下: 二、自定义myDialog组件 需求&#xff1a; 1.自定义弹框头部背景样式和文字 2.自定义弹框内容 3.基本业务流程框架 components/myDialog/index.vue完整代码&#xff1a; &…...

Linux:iptables防火墙

目录 绪论 1、防火墙 1.1 保护范围 1.2 网络协议划分 1.3 协议&#xff1a;tcp 1.4 四表 1.5 五链 1.6 iptables的规则 1.7 匹配顺序 流入本机&#xff1a;prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返…...

MongoDB文档-进阶使用-spring-boot整合使用MongoDB---MongoTemplate完成增删改查

传送门&#xff1a; MongoDB文档--基本概念_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装&#xff08;mongodb环境搭建&#xff09;-docker安装&#xff08;挂载数据卷&#xff09;-以及详细版本对比_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装&…...

设计模式十四:责任链模式(Chain of Responsibility Pattern)

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你将请求沿着处理者链进行传递&#xff0c;直到有一个处理者能够处理该请求。 在责任链模式中&#xff0c;多个处理者对象被连接成一个链。当接收到一个请求时&#xf…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...