爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16965|回复: 7

[求助] 白化为啥超出边界了

[复制链接]

新浪微博达人勋

发表于 2021-8-8 16:28:08 | 显示全部楼层 |阅读模式

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

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

x
白化前南海有色带条,白化后就超出南海边框了,路过的前辈们能给点思路吗
20210808162259.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-8-8 18:13:53 | 显示全部楼层
本帖最后由 edwardli 于 2021-8-8 18:22 编辑

代码贴一贴没有代码楞猜就是:筛选数据边界,或者set_extent改一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-8 22:49:35 | 显示全部楼层
本帖最后由 zhuyidong 于 2021-8-8 22:54 编辑
edwardli 发表于 2021-8-8 18:13
代码贴一贴没有代码楞猜就是:筛选数据边界,或者set_extent改一下
  1. fig_ax11 = fig.add_axes([0.535, 0.33, 0.52, 0.11],projection = proj)# 左右
  2. fig_ax11.set_extent([105, 125, 0, 25], crs=ccrs.PlateCarree())
  3. fig_ax11.add_feature(cfeature.COASTLINE.with_scale('50m'))
  4. fig_ax11.add_feature(cfeature.OCEAN.with_scale('50m'))
  5. fig_ax11.add_feature(cfeature.LAND.with_scale('50m'))
  6. china = shpreader.Reader('E:\\map\\map3\\bou2_4l.dbf').geometries()
  7. fig_ax11.add_geometries(china, ccrs.PlateCarree(),facecolor='none', edgecolor='black',zorder = 1)
  8. c2=fig_ax11.contourf(lon,lat, eof[0,:,:],transform=ccrs.PlateCarree(), cmap='jet')
  9. clip=maskout.shp2clip(c2,fig_ax11,'F:\BaiduNetdiskDownload\Data_ipynb\Data_ipynb\country1','China')
复制代码
上面是南海代码,哥说的数据筛选,我试了,在eof[0,:,:]用筛选,不知道为啥能白化,颜色对不上,代码和图在下面
  1. fh2=f["air"].loc['1951-01-01':'2020-12-01',25:15,105:125]# 1991-30 1985-36 1983-378
  2. lat1 = fh2['lat']
  3. lon1 = fh2['lon']
  4. fig_ax11 = fig.add_axes([0.535, 0.33, 0.52, 0.11],projection = proj)# 左右
  5. fig_ax11.set_extent([105, 125, 0, 25], crs=ccrs.PlateCarree())
  6. fig_ax11.add_feature(cfeature.COASTLINE.with_scale('50m'))
  7. china = shpreader.Reader('E:\\map\\map3\\bou2_4l.dbf').geometries()
  8. fig_ax11.add_geometries(china, ccrs.PlateCarree(),facecolor='none', edgecolor='black',zorder = 1)
  9. c2=fig_ax11.contourf(lon1,lat1, eof[0,:,:][-5::,-15:-6],transform=ccrs.PlateCarree(), cmap='jet')
  10. clip=maskout.shp2clip(c2,fig_ax11,'F:\BaiduNetdiskDownload\Data_ipynb\Data_ipynb\country1','China')
复制代码
还有eof[0,:,:]的二维数据和经纬度对应的我自己搞的,不知道对不对,麻烦哥给我看看,搞了几天了。。

筛选后

筛选后

筛选后数据

筛选后数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-9 22:00:48 | 显示全部楼层
这是另外一个问题,你需要把cmap进行norm操作。
因为全国数据可能是0~100,对应jet色标。而小南海地图筛选后的数据可能就是60~100,如果默认,就会jet和60~100进行“适配”。
norm的意义就在于:可以指定某个色阶对应某个范围,i.e.某个颜色固定对应某个值。
我书中有一张不用筛选数据的落区图,但是代码在办公电脑上,最近放假ing。先使用以上的“筛选+norm”吧,能达成结果才是王道。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-9 22:27:02 | 显示全部楼层
edwardli 发表于 2021-8-9 22:00
这是另外一个问题,你需要把cmap进行norm操作。
因为全国数据可能是0~100,对应jet色标。而小南海地图筛选 ...

好了,哥,终于搞好了,哥一回我,我就感觉有希望了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-20 16:33:51 | 显示全部楼层
zhuyidong 发表于 2021-8-9 22:27
好了,哥,终于搞好了,哥一回我,我就感觉有希望了

最新解决方案,把Cartopy降级到0.17.0,不需要筛选数据。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-23 23:07:47 | 显示全部楼层
edwardli 发表于 2021-8-20 16:33
最新解决方案,把Cartopy降级到0.17.0,不需要筛选数据。

好的哥
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-24 17:33:06 | 显示全部楼层
为什么我找不到maskout的函数库,conda install maskout?
在网上找whl文件也没有找到,但是大家的教程上都import  maskout了啊?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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