在星球研究所最近的《10万座大坝的诞生!》一文中,作者们利用丰富的数据可视化手段对我国及世界大型水坝工程的发展分布情况进行了分析展示,而我尤其喜爱其中的一幅作品:
本节提要:仿制中央气象台气象服务图片、关于cartopy里的投影与转换、cartopy中extent与boundary。
此图例指南是legend()中可用文档的扩展 - 请在继续阅读本指南之前确保你熟悉该文档(见篇尾)的内容。
大部分情况下,地理绘图可使用 Arcgis 等工具实现。但正版的 Arcgis 并非所有人可以承受。本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码实现提供参考。
本节提要:关于子图的一些问题、使用path添加示意框线、Cartopy台风实例本土化
在前面的教程中,我们已经讲解了常用的二维型数据的可视化方法。但是在日常研究中,由于大气科学属于地学系统,和地球地理信息的结合十分密切,大多数时间,需要在图形中添加地理信息。作为胶水语言,在Python中,目前还在使用的地理可视化库包尚有basemap、cartopy、geopandas等,但由于basemap是基于Python 2,而2已经不再维护,这意味着basemap也要为Python 2陪葬。而geopandas是基于pandas的,属于商务图表利器,但对于气象科研,显得力不从心。现在仅介绍basemap接班者cartopy。
Python 环境下常用的地图绘制包是 Basemap,Cartopy,geopandas,KeplerGl,GeoViews等等,我以前常用的是Basemap,但无奈官方已经在2020年更新了,官方推荐使用Cartopy作为替代。
Cartopy 也是一个 python 地图绘制包,同样能完成很多 Basemap 能实现的功能,而且旨在使数据分析及可视化尽可能简单。 其利用了强大的 PROJ.4,numpy,shapely库,提供了简单直观的绘图接口,可以创建满足出版质量的地图。
上一次是于老师要求我做一次备课,讲一节课,上周于老师又自己准备了这个课程,这里放一下于老师课上补充的知识点
我与Cartopy的认识起源于“气象水文科研猫”的这个推文,那时候的我觉得,用代码画地图好酷,arcgis就感觉low爆了。但是一直没有时间学习。前段时间放暑假,磕磕绊绊装完包以后就不想动弹了,折腾环境折腾的我头皮发麻。gdal和cartopy真的是我学python以来装的最麻烦的包。
从wrfout文件中提取o3变量,并将其数据结果插值到想要的离地高度层上(示例中是1km、3km、5km、10km),进行可视化。下面提供示例代码,其中用虚线----框住的部分是插值的关键代码。
基于很多同志询问添加经纬度办法,系统性重编了地图的经纬度添加方式。各种投影中以矩形投影PlateCarree最为方便,可以套用matplotlib.mticker的形式。在最新的0.18版本的cartopy中,虽然还不完善,但是终于能直接绘制兰勃脱下的标签了。墨卡托在官网上有示例。
最近很多小伙伴私信小编关于地理空间可视化相关数据可视化的绘制。怎么说呢?小编本身对地理空间可视化了解的还蛮多的。但是,要让大家实现对地理相关的数据进行处理、可视化等操作还是蛮难的~~ 所以小编今天就推荐一个超赞的绘图工具-「gma」 绝对的地理相关同学的福音!,下面小编就简单介绍一下,内容如下:
Basemap 的 mpl3d 绘制3D地图时非常强大,但目前仍然存在一些小问题,比如在填充陆地时有时会出现问题。
今天来讲一讲在日常工作生活中我常用的几种绘制地图的方法,下面我将介绍下面这些可视化库的地图绘制方法,当然绘制漂亮的可视化地图还有很多优秀的类库,没有办法一一列举
Cartopy 利用强大的PROJ.4,numpy和shapely库,并包括基于Matplotlib构建的编程接口,用于创建出版质量地图。cartopy 的主要特点是其面向对象的投影定义,以及在这些投影之间转换点、线、向量、多边形和图像的能力。 一、下载相关wheel 网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy
地图是表达国家版图最常用、最主要的形式。但在影视剧《亲爱的,热爱的》中出现了明显的错误,从上至下引起了极大的关注度。
地图绘制 大家在绘制栅格地图的时候有可能还在使用ArcGIS进行出图,但是ArcGIS出图比较慢,而且批量出图的时候又比较麻烦。 今天给大家介绍一个Python中用于地图绘制的库,Cartopy,这个库跟basemap非常相似,不过basemap现在已经不再更新。所以大家使用Python绘制地图还是使用Cartopy比较好。 Cartopy简介 Cartopy是一个Python软件包,用于地理空间数据处理,以便生成地图和其他地理空间数据分析。 网址:https://scitools.org.uk/carto
Matplotlib 是 Python 中最基本的可视化工具,官网里 ((https://matplotlib.org/) 有无数好资料,但这不是重点,本文肯定和市面上的所有讲解都不一样。
科研论文配图多图层元素(字体、坐标轴、图例等)的绘制条件提出了更高要求,我们需要更改 Matplotlib 和 Seaborn 中的多个绘制参数,特别是在绘制含有多个子图的复杂图形时,容易造成绘制代码冗长。
在前面推送中我们提到了通过collection功能而在3D地图中添加地图的方法,也短暂提到了栅格与填色两种图形样式的降维方法。但是从matplotlib这两个函数的底层有一定的局限性,比如下面这两张图的侧面填色就无法绘出:
最近天气学原理需要绘制课本插图来做 翻转课堂,因此整理了课本第四章几个典型图片的画法和代码,共需要的人使用。
“ Proplot是python画图时常用的库,今天就让我们先来一起认识下它吧!”
对比使用 Basemap,gdal 和 Cartopy,netCDF4 读取 WRF 模式数据并绘图。
这是我在比较久远之前看到的问题。首先必须明确一点,matplotlib的axes3D这个投影中 ,是不能用add_geometry这个功能来直接将读取到的shp文件添加上去的。add_geometry这个功能是cartopy下的geoaxes才能使用,同理add_feature也不能再3d图中使用。
此项目的动机是为地球科学领域提供插值工具。当然也有其它库可应用于地球科学的数据插值,但是这些库基本完全是用Python编写,其性能无法满足需求。
我回答目前常用的库包不能直接绘制这样的桑基图,我错了,应该回答是目前常用的库包不能绘制这样漂亮些的桑基图。
Python的绘图功能非常强大,在大气和海洋常常用来绘制一些有关地理方面的图。本片主要介绍python绘制EC数据(grib格式)的的全国降水分布图。
三个问题都是一些历史遗留问题,专门留待这一节来解决。包括画指定的等值线(如588)、如何在一个子图里绘制多个contourf、cartopy的刊误。
---- Python-basemap-中国南海小地图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap import cmaps import shapefile from matplotlib.path import Path from matplotlib.patches import PathPatch import os import maskout2 f
南海诸岛子图绘制cartopy比较简单,然而目前基本是用Basemap和geopandas做的。把cartopy加上南海诸岛子图基本上是与BUG斗争,遂放弃。于是直接使用偷懒做法,把南海诸岛加到图中。
之前在公众号做过一个关于我国1945~2015年历史台风统计的可视化展示,发现很多有趣的数据,比如说台风登陆最多的城市是湛江。
1.使用Satpy读取TROPOMI数据;2.讨论使用pcolormesh和imshow画图的区别和注意事项。
众所周知,Python的matplotlib是一个非常全面的制图库,它不仅可以绘制图表、地图,还可以绘制3D效果图,试想一下,如果你在画图的时候,可以将立体地形图作为底图,那逼格噌一下子就上来了,今天我就来教大家画一个立体地形图,啥也不说,咱先上效果图:
绘图的图例将意义赋予可视化,为各种绘图元素标识意义。我们以前看过如何创建简单的图例;在这里,我们将介绍如何在 Matplotlib 中自定义图例的位置和样式。
The topography and bathymetry of the Earth according to the ETOPO1 model. The original model has 1 arc-minute grid spacing but here we downsampled to 0.5 degree grid spacing to save space and download times. Heights are referenced to sea level.
我提供一个如下的maskout.py代码(这份代码由于经过多位大佬们的完善,具体出自谁手我已经不太清楚了,反正感谢大佬们辛苦开发),大家使用前直接运行一下下面的代码或者import maskout即可。
Proplot对matplotlib进行了高度的封装,是一个高级绘图工具,其功能相当强大!而且融和了cartopy、basemap、xarray和pandas。看到这里这应该就是我一直想要的绘图工具了!
平时绘制地图时,经常会将多个图放到同一个 figure 中,而这些图的地图范围通常是相同的,所以可以设置共享 x-y 轴。
python中有两个使用最频繁的地图绘图库:Basemap和Cartopy,两者各有优劣。由于Cartopy和matplotlib的兼容性更好,并且用户友好度更高,开始逐渐被人接受。但是Cartopy也有一些缺点,其中之一就是在设置坐标轴标签的时候对于非矩形投影无法设置标签,比如Lambert投影。
提要中提到的这几种图形都是在气象上比较常用的,地形剖面主要研究地貌对降雨、气流的影响作用;纬度高度剖面图可以用来分析降雨的某些条件,如湿层深厚、上干下湿、风向风速等;时间纬度图研究某个固定经度上的值随时间的演变(这是和大气环流一般自西向东相匹配的,所以时间经度图比较少见)。
NetCDF(Network Common Data Form)是一种科学二进制数据格式,由UCAR负责开发和维护netCDF软件,主要用于存储多维科学数据。在地球科学领域使用较为广泛,大多数数值模式,卫星,雷达等数据格式通常为NetCDF格式。
该相关系数是由卡尔·皮尔逊在前人的研究基础上所提出的相关统计量,可以用来度量两个变量之间的简单线性关系。它的计算公式如下:
在前面一节中,我们已经介绍了cartopy的大致用法——全球地图的绘制、范围的设定以及更改地理信息的精度。但是,有时候这并不能满足我们的需求,比如我作为某地级市的预报员,绘制该市降水图时,为使图片整洁,一般不希望多出其他市县。还有进行地区级别的研究,比如青藏高原地理区划将包含尼泊尔与不丹,cartopy的基础地理信息添加暂时无法做到,但是该库包已经准备了额外的接口以满足这种需求,并且比NCL更加灵活。
领取专属 10元无门槛券
手把手带您无忧上云