爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5357|回复: 6

python里面利用cartopy绘制北极极射投影问题

[复制链接]

新浪微博达人勋

发表于 2019-12-7 10:52:03 | 显示全部楼层 |阅读模式
Python
系统平台: python里面利用cartopy绘制北极极射投影问题
问题截图:
问题概况: 我想利用cartopy绘制北极极射投影,但是为什么出图是这种四四方方的图呢?我的投影是用的ccrs.NorthPolarStereo,数据的transform是ccrs.PlateCarree(),这个图做了好久了一直也没做出来,在网上和论坛上也找了很多资料,都试了也没用?大家能帮我看看代码哪里错了吗?
我看过提问的智慧: 看过
自己思考时长(天): 3

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
下面贴上我的代码,还有在上面添加刻度也是个问题?
import matplotlib.pyplot as plt
import matplotlib as mpl
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import scipy.io as sio
import numpy as np
import matplotlib.colors as mcolors
import matplotlib.ticker as mticker
import matplotlib.path as mpath
from cartopy.util import add_cyclic_point

#load数据,并且进行数据处理
data=sio.loadmat('F:\python_study\sj\data1013')
print data.keys()
percentage_jja=data['percentage_jja']*100
x=data['x']
y=data['y']
tansform_jja=percentage_jja.transpose()
#cycle_jja,cycle_x=add_cyclic_point(percentage_jja,coord=x)
c_x,c_y=np.meshgrid(x,y)

#绘图
#方法一
data_crs = ccrs.PlateCarree()
plt.figure(figsize=(8,8))
ax = plt.axes(projection=ccrs.NorthPolarStereo())#在这里必须设置相对应的经纬度的中心位置,如果不设置的话是无法出图的!
ax.set_extent([-180, 180, 60, 90], crs=ccrs.PlateCarree())
cont=ax.contourf(c_x,c_y,tansform_jja,transform=data_crs)#这两个命令就可以转换投影方式,对于原始数据来说都是PlataCarree
ax.coastlines()

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-12-7 10:54:14 | 显示全部楼层
https://scitools.org.uk/cartopy/ ... light=understanding,这个网页上有介绍projection和transform的,我是按照上面的来的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-7 13:20:18 | 显示全部楼层
看看这个帖子,其实官网有北极投影,http://bbs.06climate.com/forum.p ... &extra=page%3D1,画上标签可以参考这个帖子,完美解决你的问题,现在,我想请教你一个问题,怎么在南极画上经纬度信息呢,我之前研究过,经纬度标记得不对!!!!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-7 21:16:02 | 显示全部楼层
ax.set_extent([-180, 180, 60, 90], crs=ccrs.PlateCarree())这一句改成ax.set_extent([-180, 180, 60, 90], crs=ccrs.NorthPolarStereo())试试呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-12-8 15:53:05 | 显示全部楼层
素素是个小可爱 发表于 2019-12-7 21:16
ax.set_extent([-180, 180, 60, 90], crs=ccrs.PlateCarree())这一句改成ax.set_extent([-180, 180, 60, 90 ...

也不行哎。。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-12-8 15:58:58 | 显示全部楼层
对方的凤飞飞 发表于 2019-12-7 13:20
看看这个帖子,其实官网有北极投影,http://bbs.06climate.com/forum.php?mod=viewthread&tid=33601&extra=pa ...

他这个帖子我之前也研究了好久,但是我不知道哪里的问题,一开始的投影我都画不出来,再往后就更出不来图了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-9 13:17:24 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表