爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: po_po1

[经验总结] 介绍一种绘图白化的方法

[复制链接]

新浪微博达人勋

 楼主| 发表于 2018-11-26 14:28:47 | 显示全部楼层
Byby 发表于 2018-11-25 17:23
楼主楼主 我最近有个脚本也想用白化。我的数据是中国及周边近海的,我想把陆地的数据掩盖掉,只显示海洋 ...

或者:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import cartopy as cart
  4. from mpl_toolkits.basemap import Basemap
  5. from netCDF4 import Dataset

  6. f = Dataset('sst.mnmean.nc')
  7. sst = f.variables['sst'][0,:,:]
  8. lats = f.variables['lat'][:]
  9. lons = f.variables['lon'][:]

  10. ax = plt.axes(projection=cart.crs.PlateCarree())
  11. ax.coastlines()
  12. ax.add_feature(cart.feature.LAND, zorder=100, edgecolor='k')
  13. ax.set_global()
  14. plot = ax.contourf(lons, lats, sst, 60, transform=cart.crs.PlateCarree())
  15. cb = plt.colorbar(plot)
  16. plt.show()
复制代码


改变cart.feature.LAND 为cart.feature.OCEAN,mask 海洋
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-27 10:16:56 | 显示全部楼层

excellent 可行  通过画图顺序进行掩盖 多谢楼主
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-1-9 11:20:48 | 显示全部楼层
这一步的时候显示错误,这是为啥呢
main_us_geom = sorted(us_multipoly.geoms, key=lambda geom: geom.area)[-1]

AttributeError: 'Polygon' object has no attribute 'geoms'
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2019-5-18 23:18:59 | 显示全部楼层
po_po1 发表于 2014-6-5 11:18
附带楼主上次提到的那个图和程序:

下面是程序:

最近又重新试了下这个mask方法,但是发现,为什么海南岛和台湾的mask后没有值?是shp文件的问题么?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-5-21 19:37:44 | 显示全部楼层
chongzika 发表于 2019-5-18 23:18
最近又重新试了下这个mask方法,但是发现,为什么海南岛和台湾的mask后没有值?是shp文件的问题么?

不是shp文件有问题,只是这个方法仅限于简单区域
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-9 09:49:32 | 显示全部楼层
楼主,有个问题请教下您。我裁剪之后,想把其他区域设置成背景透明,只显示我需要的那一部分怎么弄呢。按照您的步骤,我裁剪之后其他区域是白色,怎么设置成透明呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-11-7 21:28:49 | 显示全部楼层
您好,我想请问下,我想对印度洋地区进行白化,但是在用您的代码时,这一句总是报错country.geometry for country in countries  if country.attributes['NAME'] == 'China'],就是其中的NAME,我想问下这个是什么原因呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-15 12:03:41 | 显示全部楼层
sres 发表于 2019-1-9 11:20
这一步的时候显示错误,这是为啥呢
main_us_geom = sorted(us_multipoly.geoms, key=lambda geom: geom.ar ...

同问,是不是地图数据一定要Micaps的呢?
还有个问题是如果shp里面只有一个区域,us_multipoly, = [province.geometry for province in provinces  if province.attributes['NAME']==‘China’] 这里提示报错(如果是多个区域就可以)。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-16 10:48:26 来自手机 | 显示全部楼层
必须称赞,感谢分享。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-29 18:37:14 | 显示全部楼层
如果 country.attributes['NAME'] == 'China'类似的属性没有怎么办,只有Id,并且Id的值全是0,那则么整?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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