【python利用shp文件进行绘图白化】

news2025/1/11 18:38:30

python白化

  • 白化的作用
  • python实现

白化的作用

  • 参考博文【matlab利用shp文件制作mask白化文件】

python实现

  • python借助shp文件对绘图进行白化,不需要进行mask文件的制作,可以高效地进行区域绘制
import numpy as np
import cartopy.crs as ccrs
import cartopy.feature as cf
import matplotlib.pyplot as plt
import cartopy.io.shapereader as shpreader
from cartopy.mpl.ticker import LatitudeFormatter,LongitudeFormatter
from matplotlib.path import Path
from cartopy.mpl.patch import geos_to_path
plt.rcParams['font.sans-serif']=['KaiTi']
shp_path=r'.\省.shp'
shp_data=shpreader.Reader(shp_path)
fig=plt.figure(figsize=(3,2),dpi=500)
ax1=plt.subplot(121,projection=ccrs.PlateCarree())
ax2=plt.subplot(122,projection=ccrs.PlateCarree())
for i,ax in enumerate([ax1,ax2]):
    ax.add_geometries(shp_data.geometries(),crs=ccrs.PlateCarree(),edgecolor='k',facecolor='none',lw=0.5)
    ax.set_extent([70, 140, 0, 55],crs=ccrs.PlateCarree())
    ax.set_xticks(np.arange(70,140,5))
    ax.set_yticks(np.arange(0,55,5))
    # ax.xaxis.set_major_formatter(LongitudeFormatter())
    # ax.yaxis.set_major_formatter(LatitudeFormatter())
    ax.tick_params(direction='in',labelsize=3,top=True,right=True,length=2,width=0.5)
    if i==0:
            ax.set_title('未白化',fontsize=6)
    else:
            ax.set_title('白化后',fontsize=6)
########定义绘图数据######################
x=np.arange(70, 140, 0.02)
y=np.arange(0, 55, 0.02)
X,Y=np.meshgrid(x,y)
Z=(X-108)**2+(Y-29)**2
#######循环画图#########################
for i,ax in enumerate([ax1,ax2]):
    if i==0:
        ax.contourf(X,Y,Z)
    else:
        ac=ax.contourf(X,Y,Z)
#######获取path#######################
records=shp_data.records()
for record in records:
    if record.attributes["省"] in ["河南省"]:
        path=Path.make_compound_path(*geos_to_path([record.geometry]))
#######白化###########################
for collection in ac.collections:
    collection.set_clip_path(path, transform=ax2.transData)

file_nineline = ".\九段线.shp"
reader_nineline = shpreader.Reader(file_nineline)
ax.add_geometries(reader_nineline.geometries(), crs=ccrs.PlateCarree(), lw=0.5, fc='none')

plt.show()

在这里插入图片描述

  • 参考:https://mp.weixin.qq.com/s?__biz=MzIxODQxODQ4NQ==&mid=2247484487&idx=1&sn=e654ab7eeeb41a15f816b52b391e93cb&chksm=97eb981da09c110ba06115ed93a4a4450bbe84f8b57b90a9819b6b06f801b533c1b002f14223&scene=21

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

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

相关文章

JUC--线程池

目录 一、线程池的介绍 二、线程池的创建 三、特殊线程池 3.1.CompletionService异步处理 3.2.ThreadPoolExecutor 3.3 ForkJoinPool 虽然多线程的技术大大帮助了程序运行的效率,但是在太多的线程的创建与销毁下,系统的开销也将会是非常庞大的。所以…

ChatGPT赋能低代码开发:打造智能应用的双重引擎

摘要:本文摘自葡萄城低代码产品活字格的资深用户(格友超哥)所撰写的文章:《惊叹表现!活字格ChatGPT:低代码开发智能应用的巨大潜力》。 ChatGPT的functions函数使用方 自从OPENAI发布了最新的GPT引擎gpt-3…

由银行保险业科技外包供应商安全风险事件,看金融行业供应链安全

近日,金融监管总局下发《关于加强第三方合作中网络和数据安全管理的通知》,通知中提到:近期发生多起银行保险外包供应商安全⻛险事件,对银行保险机构的网络系统安全、业务连续性造成一定影响,暴露出银行保险机构在外包…

春秋云镜:CVE-2018-19422(Subrion CMS 4.2.1 存在文件上传漏洞)

一、题目 靶标介绍&#xff1a; Subrion CMS 4.2.1 存在文件上传漏洞 进入题目&#xff1a; admin/admin 点击设置&#xff1a; 后台管理主页&#xff1a; 上传页面&#xff1a; 上传目录&#xff1a; /panel/uploads/ 查看上传位置&#xff1a; system.pht<?php sys…

Lua代码实现鼠标宏

注意&#xff1a;本文仅是技术交流&#xff0c;滥用技术者将自行承担后果 目录 一、什么是鼠标宏 二、射击游戏鼠标宏的制作原理 三、FPX鼠标宏带来的危害 一、什么是鼠标宏 鼠标宏是一种使用特定软件或设备编写和执行的自动化脚本&#xff0c;用于模拟和复制鼠标操作。它可…

PowerDesigner书签显示comment字段注释内容

1.今日书签 PowerDesigner 16.5 对表字段设置显示 comment 注释&#xff0c;解决视图模型看不到表字段 comment 中文注释的问题。 2.拨云见日 2.1.操作环境 操作系统&#xff1a;Win10 PowerDesigner 版本&#xff1a;16.5 2.2.操作步骤 无论 PowerDesigner 15 还是 Powe…

Vue 中 diff 算法原理

一、Diff 概念 Vue 基于虚拟 DOM 做更新。diff 算法的核心就是比较两个虚拟节点的差异。 Vue 的 diff 算法是平级比较&#xff08;如图&#xff0c;父级和父级比较&#xff0c;儿子和儿子比较&#xff0c;孙子和孙子比较&#xff09;&#xff0c;不考虑跨级比较的情况&#x…

企业专网?公网?工业4G路由器如何正确选择SIM卡?

选择合适的SIM卡对工业4G路由器稳定通信至关重要。但是面对企业专网和公网两种选择,用户该如何抉择呢?本文将全面解析专网卡与公网卡的区别、适用场景及选择要点,并推荐星创易联SR700等产品的匹配方案,助你正确选择最合理的工业SIM卡。 首先,从网络质量上,企业专网较公网更稳定…

韩语翻译器拍照翻译方法,几个步骤轻松翻译

韩语是一种非常有趣的语言&#xff0c;但对于大多数人来说&#xff0c;是非常难以掌握的。 如果你正在韩国旅行或生活&#xff0c;你可能会遇到许多韩语文字和标志&#xff0c;这时候拍照翻译就派上用场了。 许多智能手机都有支持翻译应用&#xff0c;但是如何在手机上拍照并翻…

Java版B/S架构 智慧工地源码,PC、移动、数据可视化智慧大屏端源码

智慧工地是什么&#xff1f;智慧工地主要围绕绿色施工、安全管控、劳务管理、智能管理、集成总控等方面&#xff0c;帮助工地解决运营、管理方面各个难点痛点。在互联网的加持下促进项目现场管理的创新与发展&#xff0c;实现工程管理人员与工程施工现场的整合&#xff0c;构建…

一网打尽java注解-克隆-面向对象设计原则-设计模式

文章目录 注解内置注解元注解 对象克隆为什么要克隆&#xff1f;如何克隆浅克隆深克隆 Java设计模式什么是设计模式&#xff1f;为什么要学习设计模式&#xff1f; 建模语言类接口类之间的关系依赖关系关联关系聚合关系组合关系继承关系实现关系 面向对象设计原则单一职责开闭原…

速通蓝桥杯嵌入式省一教程:(九)AT24C02芯片(E2PROM存储器)读写操作与I2C协议

AT24C02芯片&#xff08;又叫E2PROM存储器、EEPROM存储器&#xff09;&#xff0c;是一种通过I2C(IIC)协议通信的掉电保存存储器芯片&#xff0c;其内部含有256个8位字节。在介绍这款芯片之前&#xff0c;我们先来粗略了解一下I2C协议。 I2C总线是一种双向二线制的同步串行总线…

BLFS学习系列 第26章. 显示管理器 —— 总述

显示管理器&#xff08;Display Manager&#xff09;是用于启动图形显示&#xff08;当前为X服务器&#xff09;并为窗口管理器或桌面环境提供登录功能的图形程序。 有许多显示管理器可用。一些较为知名的包括&#xff1a;GDM、KDM&#xff08;已弃用&#xff09;、LightDM、L…

ssm助学贷款系统源码和论文

ssm助学贷款系统源码和论文050 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&am…

Java注解语法

Java注解语法 1. 前置基础 ​ 学习java反射语法 JAVA通过反射使用公共构造方法和私有构造方法来创建对象 2. Java注解是什么&#xff1f; ​ Java注解是代码中的特殊标记&#xff0c;比如Override、Test等&#xff0c;作用是&#xff1a;让其他程序根据注解 信息决定怎么执…

【ECCV2022】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation 论文&#xff1a;https://arxiv.org/abs/2105.05537 代码&#xff1a;https://github.com/HuCaoFighting/Swin-Unet 解读&#xff1a;Swin-UNet&#xff1a;基于纯 Transformer 结构的语义分割网络 -…

【FAQ】视频云存储/安防监控EasyCVR视频汇聚平台如何通过角色权限自行分配功能模块?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

SpringMVC 写个 HelloWorld

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

Linux下彻底卸载jenkins

文章目录 1、停服务进程2、查找安装目录3、删掉相关目录4、确认已完全删除 1、停服务进程 查看jenkins服务是否在运行&#xff0c;如果在运行&#xff0c;停掉 ps -ef|grep jenkins kill -9 XXX2、查找安装目录 find / -name "jenkins*"3、删掉相关目录 # 删掉相…