python plot map_使用matplotlibbasemap在边界打印

我在绘制多边形时遇到了困难,例如,在使用matplotlib basemap生成的地图边界上绘制多边形。在下面的示例中,地图边界由日期线指定。我试图通过指定三角形顶点的坐标来绘制一个跨越日期线的三角形。当所有的坐标都在地图内时,这种方法很有效,但是如果它们穿过地图边界,basemap会执行奇怪的外推,因为它似乎不知道如何以正确的方式绘制矩形。在

在我的意义上,正确的方式意味着三角形被画到地图的边界,然后在地图的另一边继续。在

下面是一个最小的代码示例和一个说明一般问题的图。

任何以一般方式解决这个问题的想法都是非常受欢迎的。在from mpl_toolkits.basemap import Basemap

import matplotlib.pylab as plt

import numpy as np

import matplotlib.path as mpath

import matplotlib.patches as mpatches

import matplotlib as mpl

from matplotlib.collections import PatchCollection

![plt.close('all')

Path = mpath.Path

fig=plt.figure(); ax=fig.add_subplot(121); ax1=fig.add_subplot(122)

def do_plot(ax,lons,lats,title):

patches=\[\]

m = Basemap(projection='robin', resolution='c',lon_0=0.,ax=ax) #todo: how to make it properly work for other projections ???

m.drawmapboundary(fill_color='grey')

m.drawcoastlines()

#--- generate first sample with no problem

x,y=m(lons,lats)

verts = np.asarray(\[x,y\]).T

codes = \[Path.MOVETO,Path.LINETO,Path.LINETO\]

patches.append(mpatches.PathPatch(mpath.Path(verts, codes,closed=True)))

#--- generate collection

cmap = plt.cm.get_cmap('jet', 50); norm = mpl.colors.Normalize(vmin=None, vmax=None) #colorbar mapping

collection = PatchCollection(patches, cmap=cmap,norm=norm, alpha=1.,match_original=False) #construct library of all objects

colors = np.asarray(np.random.random(len(patches)))

collection.set_array(np.array(colors)) #assign data values here

#--- do actual plotting

im=m.ax.add_collection(collection)

ax.set_title(title)

do_plot(ax,\[-10.,0.,20.\],\[30.,50.,20.\],'This works')

do_plot(ax1,\[170,180,-175\],\[30.,50.,20.\],'... and here is the boundary problem')

plt.show()][1]

59ca30d60c1ae415ddecec3ad1edc331.png

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

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

相关文章

SQL查询语句 group by后, 字符串合并

合并列值 --******************************************************************************************* 表结构,数据如下: id value ----- ------ aa bb aaa bbb ccc 需要得到结果: id values ------ ----------- aa,bb aaa…

Git 基础 —— 常用命令

Git 基础学习系列 Git 基础 —— 安装 配置 别名 对象Git 基础 —— 常用命令Git 基础 —— 常见使用场景Git基础 —— Github 的使用git init 创建 Git 本地仓库 远端无仓库,本地无仓库,本地新建一个仓库 git init git_learning 远端有仓库,…

linux 访问Windows 共享文件的方法

2019独角兽企业重金招聘Python工程师标准>>> 1 安装Samba服务 2 启动 samba服务 /etc/init.d/smb restart 3 安装插件 cifs解决只读挂载:yum install cifs-utils.x86_64 4 在windows下共享一个可以用的文件夹 5 将 windows 共享文件夹挂载到linux上 命令…

基于Blink构建亲听项目以及全链路debug项目实时响应能力

案例与解决方案汇总页:阿里云实时计算产品案例&解决方案汇总 本文全面总结了大数据项目组在亲听项目以及全链路debug项目上进行的实时流处理需求梳理,架构选型,以及达成效果 一、背景介绍 1.1亲听项目 亲听项目专注于帮助用户收集、展示、…

在既有系统中打通Apache Ignite、MySQL和Node.js

为什么80%的码农都做不了架构师?>>> 介绍 在本系列的第一篇文章中,安装了Node.js、Ignite的Node.js瘦客户端包,并且测试了一个示例应用。在本文中,可以看一下Ignite在处理其它数据源(比如关系数据库&#…

java hashmap 的api_JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)

一、集合Collection1. 集合介绍变量:表示的内存中的一个空间,只能保存确定类型的单个数据数组:表示的是内存中的多个连续的空间,这些空间中可以存储多个同类型的数据。后期继续学习面向对象技术,我们在程序中开始创建对…

dbunit java_java - 错误地抛出了Java DBUnit AmbiguousTableNameException - 堆栈内存溢出

我正在尝试DBUnit(2.6.0),我正在尝试导出我的完整数据库(PostgreSQL)。 但是抛出以下异常:线程“main”中的异常org.dbunit.database.AmbiguousTableNameException:FLYWAY_SCHEMA_HISTORY这是正确的行为,因为我有两个具有相同名称…

Idea项目中常见错误及笔记(Old)

1、Idea基础设置: File-->settings--> 1>修改字体:Font 2>修改编码格式:File Encodings(全部UTF-8,右下方复选框勾中--防止程序中的汉字转为ASCII码) 3>修改行号:Appearance:show line numbers show me…

java接口服务编排_GOKU API Gateway CE V3.1.0 发布:新增服务编排、配置版本管理等...

Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的微服务网关,能够实现高性能 HTTP API 转发、服务编排、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界…

maxcompute 2.0复杂数据类型之array

2019独角兽企业重金招聘Python工程师标准>>> 1. 含义 类似于Java中的array。有序、可重复。 2. 场景 什么样的数据,适合使用array类型来存储呢?这里列举了几个我在开发中实际用到的场景。 2.1 标签类的数据 为什么说标签类数据适合使用array类…

权限组件(6):权限分配的角色管理

效果图: 为了方便开发,先把中间件注释掉,要不还要在角色-权限表中添加对应关系。又因为二级菜单和面包屑导航需要中间件的变量,所以要在layout.html里面把这两个也注释掉。setting.py# rbac.middlewares.rbac.RbacMiddleware layo…

02-Django基础知识

一、内容回顾 1、web应用程序 2、HTTP协议 a、http协议特性 b、http请求格式 c、http响应格式 3、wsgiref模块 4、Django下载与简单应用 a、Django简介(MTV) b、下载django命令 c、创建项目命令 d、创建app应用 e、启动项目   二、今日概要 1、路由层&…

java解析上的jar包里的pom_Maven引入本地Jar包并打包进War包中的方法

1.概述在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来。2. 拷贝至项目根目录项目根目录即pom.xml文件所在的同级目录,可以在项目根目录下创建文件夹lib,如下…

java静态工厂方法模式_设计模式:简单工厂模式(静态工厂方法模式)

简单工厂的构成包括三个角色:1)抽象产品类2)具体产品类(继承抽闲产品类)3)工厂类(生产具体产品)具体代码实现1、抽象产品类/*** 抽象类*/public abstract class Car {/*** 产品抽象方法,将会由具体产品类实现*/public abstract void driving();}2、具体产…

Kibana中的Coordinate Map地图报索引错误的问题

今天做地图定位展示,展示的是ApacheWeb服务器的访问日志文件中的来源IP。但是中间出现了报错环节,说是索引不能匹配到geo_point类型,实在是不懂这是在说什么,后来在网站找了方法就解决了。主要报错如下: 报错信息&…

windows软链接的建立及删除

2019独角兽企业重金招聘Python工程师标准>>> 1.建立举例 # 建立d:develop链接目录,指向远程的目标服务器上的e盘的对应目录。 mklink /d d:\develop \\138.20.1.141\e$\develop# 建立d:develop链接目录,指向远程的目标服务器上的e盘的对应目录…

php原生类,反序列化之PHP原生类的利用

正文文章围绕着一个问题,如果在代码审计中有反序列化点,但是在原本的代码中找不到pop链该如何?N1CTF有一个无pop链的反序列化的题目,其中就是找到php内置类来进行反序列化。基础知识首先还是来回顾一下序列化中的魔术方法,下面也…

Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]

目录 概括Sparse PCA Formulation非常普遍的问题Optimality ConditionsEigenvalue Bounds算法代码概括 这篇论文,不像以往的那些论文,构造优化问题,然后再求解这个问题(一般都是凸化)。而是,直接选择某些特…

TikTok与环保:短视频如何引领可持续生活方式?

在数字时代,社交媒体平台扮演着塑造文化和价值观的关键角色。而TikTok,作为一款全球短视频平台,不仅塑造着用户的娱乐方式,还在悄然地引领着可持续生活方式的潮流。本文将深入探讨TikTok与环保之间的关系,分析短视频如…

Spring源码分析---Bean 的生命周期 03

来源:Spring 3. Bean 的生命周期 自定义一个 SpringBoot 的主启动类: SpringBootApplication public class A03Application {public static void main(String[] args) {ConfigurableApplicationContext context SpringApplication.run(A03Applicatio…