爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1462|回复: 3

[经验总结] cnmaps处理白化越界/出界问题

[复制链接]

新浪微博达人勋

发表于 2023-7-23 23:53:39 | 显示全部楼层 |阅读模式

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

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

x
做地图白化的时候接触了cnmaps这个库,非常好用!!!不用使用shp文件了,感谢作者~@clarmy 指路主页:http://bbs.06climate.com/home.ph ... ditional=removevlog

但是在画图的时候遇到了地图白化越界的问题,画框框不住填色。
家园里处理白化越界的方法也有,但其实还是回归了使用shp文件的方法。
因此求助作者,得到了回应,指路作者在GitHub的解答,希望能解决到这部分的疑惑:
https://github.com/cnmetlab/cnmaps/issues/97

作者在回答中给出的实例:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

from cnmaps import get_adm_maps, clip_contours_by_map, draw_maps, MapPolygon
from cnmaps.sample import load_temp
from shapely.geometry import Polygon

fig = plt.figure(figsize=(6, 5), dpi=300)
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection=ccrs.PlateCarree())
lons, lats, data = load_temp()
cs = ax.contourf(lons, lats, data)

boundary = MapPolygon(
    [Polygon([[70, 55], [140, 55], [140, 40], [70, 40], [70, 55]])]
) & get_adm_maps(country="中华人民共和国", only_polygon=True, record="first")

draw_maps(get_adm_maps(country="中华人民共和国"), ax)
clip_contours_by_map(cs, boundary, ax)
ax.set_extent([70, 140, 40, 55], crs=ccrs.PlateCarree())
fig.savefig("./test.png", bbox_inches="tight")

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

新浪微博达人勋

发表于 2023-7-24 14:49:42 来自手机 | 显示全部楼层
【气小Py-009:白化1-maskout出界问题_2023.06.27-哔哩哔哩】 https://b23.tv/cgjOWVu
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-7-24 15:10:07 来自手机 | 显示全部楼层
【气小Py-009:白化2-流线的白化_2023.07.04-哔哩哔哩】 https://b23.tv/Fa2mYNP
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-8-13 20:18:39 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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