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

news2025/2/11 21:44:44

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

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 Path

from docxtpl import DocxTemplate, InlineImage
from docx.shared import Mm

import 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 = tile
        url = '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 = tile
        url = '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 = tile
        url = '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 = tile
        url = '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 = tile
        url =  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 = tile
        url =  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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/864389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搜狗输入法曝加密系统漏洞(已修复),黑客可窃取用户输入的内容

近期,来自加拿大多伦多大学公民实验室的研究人员在国内热门输入法——搜狗输入法的加密系统中发现了漏洞,能允许网络监听者破译用户的输入内容。目前该漏洞已得到修复。 研究人员发现漏洞的软件版本涉及三大主流系统,分别是Windows 13.4版本、…

教程分享:如何制作一个旅游路线二维码?

吃一成不变的早餐,九点出门还会遇见楼下遛狗的大爷,老板掐着表发起了会议邀请,窗外还是那几棵树,天空依旧灰蒙蒙的,羊了个羊第二关还是过不去,理发店的小哥又倚在门口抽烟…… 大多时候,我们的…

Small Tip: 如何Debug Start Routine

我也不知道咋地,在generated ABAP里面打断点进不去。 我也不晓得怎么弄,今天反正是硬找着去弄。不晓得有没有其他好办法。有知道的小伙伴评论下吧。 1、 在DTP里面选Before Transformation,要去debug start routine选这个就够了。其他的随意…

轻装上阵,不调用jar包,用C#写SM4加密算法【卸载IKVM 】

前言 记得之前写了一个文章,是关于java和c#加密不一致导致需要使用ikvm的方式来进行数据加密,主要是ikvm把打包后的jar包打成dll包,然后Nuget引入ikvm,从而实现算法的统一,这几天闲来无事,网上找了一下加密…

关于三维模型OSGB格式轻量化压缩出现分层现象分析

关于三维模型OSGB格式轻量化压缩出现分层现象分析 三维模型OSGB格式的轻量化压缩分层现象是指在进行几何压缩和纹理压缩过程中,由于不同部位的信息复杂度存在差异,可能会出现某些部位被处理过度,导致其失去了细节和质感的现象。本文将从几何…

“解锁IDEA的潜力:高级Java Maven项目配置指南”

目录 前言:流程目录:1.确保Java和Maven已安装检查Java是否已正确安装并配置环境变量 2.创建一个新的Maven项目导航到要创建项目的目录配置Maven运行以下命令创建一个新的Maven项目 3.配置项目的pom.xml文件打开项目根目录下的pom.xml文件配置Web.xml 4.配…

什么是绩效管理?绩效管理包括哪些内容?

阅读本文您可以了解:1、绩效管理的定义;2、绩效管理的内容; 一、什么是绩效管理 绩效管理是一种组织和管理方法,旨在确保员工的工作与组织的目标保持一致,以及激励和提高员工的工作表现。它涉及设定明确的目标和标准&…

【Spring】-Spring的IoC和DI

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Framework】 主要内容:什么是spring?IoC容器是什么?如何使代码解耦合?IoC的核心原理,IoC的优点。依赖注入/对象装配/…

VBA_MF系列技术资料1-152

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

沁恒ch32V208处理器开发(三)GPIO控制

目录 GPIO功能概述 CH32V2x 微控制器的GPIO 口可以配置成多种输入或输出模式,内置可关闭的上拉或下拉电阻,可以配置成推挽或开漏功能。GPIO 口还可以复用成其他功能。端口的每个引脚都可以配置成以下的多种模式之一: 1 浮空输入 2 上拉输入…

8年经验之谈 —— 35岁以上的测试开发工程师都去哪里了?

“测试开发工程师就是吃青春饭!” “35岁就是测试开发工程师的天花板,没有工作机会了。” “测试开发工程师趁早转行,不然迟早失业。” …… 网上对测试开发工程师不友好的言论非常多。真的是这样吗?如果不是这样,…

Cesium 1.107+ 自定义类支持 readyPromise

由于cesium 1.107 的图元(Primitive) 已经不支持 readyPromise。 但是个人感觉比较好用,于是用了一个插件来实现。 用法: // 定义图元并添加,和之前一样 const boxGreen new BoxPrimitive({color: "#ff0000" }) viewer.scene.primitives.add(boxGreen.primitive)/…

lazada、shopee店铺如何利用测评提高权重和排名?

在 lazada、shopee平台上开店后,卖家们必须对店铺的权重进行更多的关注。如果店铺的权重越高,那么它就会带来更多的流量和更多的订单,那么在 lazada、shopee平台上开设一家店铺,该怎样增加它的店铺权重和排名呢? laza…

算能BM1684X部署手写数字识别模型

大致流程--------------------------------------------------------------- 参考《sophon-sail_zh》 移植步骤------------------------------------------------------------------------ 首先搭建好自己的网络模型,并导出为onnx格式--具体可以参照--> GitH…

aspose 使用ftl模板生成word和pdf

1 先找到word模板,用${},替换变量,保存,然后另存为xml,最后把xml后缀改成ftl。 如下图: word 模板文件 ftl模板文件如下: 2 代码生成 下面函数将ftl填充数据,并生成word和pdf /*** * param dataMap 模板…

c++继承总结

一 继承的由来 我使用类也有一段时间了,慢慢觉得我们做一件事时,就是要先描述,例如写一个管理系统登记学校成员的信息,我们就要先对在学校内的老师和学生做描述,学生要有年龄,班级,姓名&#xf…

postman接口测试中文汉化教程

想必同学们对于接口测试工具postman的使用并不陌生,以及最近大为流行的国产工具apifox。对于使用过的同学来说,两者区别以及优缺点很容易别展示出来,postman相比apifox来说更加轻量,但是apifox更加符合国人的使用习惯....中国人给…

谷歌云 | BigQuery 现在支持用于查询开放表格式的清单文件

Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训服务。 开放表格式依赖嵌…

C++:string类模拟实现

C:string类模拟实现 成员变量构造和析构容量相关1.获取容器大小(_size)和容量(_capacity)2.扩容(reserve)3.更改容器大小 修改相关1.尾插2.指定位置插入3.指定位置删除4.清空5.交换两个对象 比较相关访问相关迭代器相关查找相关其它成员函数1.截取子串2.取得C格式字…

交融动画学习

学习抖音&#xff1a; 渡一前端教科频道 利用 filter 的属性实现交融效果 变成 让后利用这个效果实现一个功能 实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><style>* {margin: 0;…