巴拉巴

 找回密码
 立即注册

站内搜索

搜索
热搜: 活动 交友 discuz
查看: 16|回复: 0

Python-Cartopy对于北极地区的可视化基础教程

[复制链接]

3

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-11-30 09:12:28 | 显示全部楼层 |阅读模式
一、安装
方法一:在网好的情况下
在Anaconda prompt 输入 conda install -c conda-forge cartopy 然后enter
方法二:在网不太好的情况下
conda install geos
conda install Shapely
conda install pyshp
随后:conda install cartopy
二、投影
导入库
from mpl_toolkits.basemap import Basemap
from matplotlib import pyplot as plt
from netCDF4 import Dataset
import scipy.ndimage as ndimage
# Load parameters
import math
import netCDF4 as nc
import cartopy.crs as ccrs
import matplotlib.ticker as mticker
import cartopy.feature as cfeature
import matplotlib.path as mpath
import cmaps
投影:
proj =ccrs.NorthPolarStereo(central_longitude=0)#设置地图投影
leftlon, rightlon, lowerlat, upperlat = (-180,180,60,90)#经纬度范围
img_extent = [leftlon, rightlon, lowerlat, upperlat]
fig1 = plt.figure(figsize=(15,15))#设置画布大小
f1_ax1 = fig1.add_axes([0.2, 0.3, 0.5, 0.5],projection = ccrs.NorthPolarStereo(central_longitude=0))#绘制地图位置
f1_ax1.set_extent(img_extent, ccrs.PlateCarree)
f1_ax1.coastlines
g1=f1_ax1.gridlines(crs=ccrs.PlateCarree, draw_labels=True, linewidth=1, color='gray',linestyle='--')
g1.xlocator = mticker.FixedLocator(np.linspace(-180,180,13))
g1.ylocator = mticker.FixedLocator(np.linspace(60, 90,4))
theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.44
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts * radius + center)
levels = np.arange(5000,5600,50)
f1_ax1.set_boundary(circle, transform=f1_ax1.transAxes)
三、变量的可视化实现
c7=f1_ax1.contourf(lon_new,lat_new,ssh_new,transform=ccrs.PlateCarree,cmap=cmaps.matlab_jet,levels=20)
position=fig1.add_axes([0.2, 0.25, 0.5, 0.025])
cb=fig1.colorbar(c7,cax=position,orientation='horizontal',format='%.1f',extend='both')#设置图标
四、与basemap库的优缺点对比(个人观点)
我觉得如果你研究的是其他地区,其实这两个库用哪个都无所谓,但是像我要重点研究北冰洋,那么我觉得cartopy更方便一些,因为它的纬度label可以直接通过两行代码去调试,相对方便一些,具体如下:
cartopy运行结果
basemap运行结果谢谢大家的浏览,对于编程我还是一个菜鸟,欢迎大家提出宝贵意见哦,这样才能进步嘛~

来源:http://www.yidianzixun.com/article/0kXmV2x6
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 返回顶部