爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索

[经验总结] Python完美白化

  [复制链接]

新浪微博达人勋

发表于 2022-9-7 15:08:02 | 显示全部楼层
感谢,找了好久
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-9-23 16:51:26 | 显示全部楼层
您好,我根据您的思路,白化之后出的图怎么是空白的呢。

只有地图,没有阴影图

只有地图,没有阴影图
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-10-10 15:58:12 | 显示全部楼层
下载都是php文件,打不开怎么办,下载了好几遍
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2022-11-2 20:03:15 | 显示全部楼层
哇,我来学习一下maskout!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-3 15:52:01 | 显示全部楼层
紫依 发表于 2020-8-31 16:28
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
请问总是 ...

这个什么原因,我也碰到了,解决了么
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-3 16:19:47 | 显示全部楼层
楚狂 发表于 2022-11-3 15:52
这个什么原因,我也碰到了,解决了么

去代码文件里面,找到Reader那句,加个encoding="gbk"
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-14 17:57:48 | 显示全部楼层
wanghp 发表于 2016-5-4 21:42
关于只画海上的学习,参照楼主的教程,选用高精度的海洋数据(10m_ocean.shp)

请问为何我画海洋数据时候提示“'vertices' must be 2D with shape (M, 2). Your input has shape (0,)”?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-23 22:38:20 | 显示全部楼层
楼主,为什么我在contourf绘图的语句报错 :  ValueError: Only callable can be used as callback啊?前面都是正常的,哎{:eb303:}{:eb303:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-12-15 21:09:16 | 显示全部楼层
请教一下,如果研究区域是一个流域,请问如何用maskout白化呢,谢谢大家啦!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-3-21 23:07:10 | 显示全部楼层
平流层的萝卜 发表于 2020-10-21 21:25
你好,你可以先在maskout的文件里,
for shape_rec in sf.shapeRecords():
    print shape_rec.record ...

您好 请教一下为什么我加了print(shape_rec.record)运行以后没有任何反映呢,还需要修改哪里吗。
import shapefile
from matplotlib.path import Path
from matplotlib.patches import PathPatch
def shp2clip(originfig,ax,m,shpfile,region):
    sf = shapefile.Reader(shpfile)
    vertices = []
    codes = []
    for shape_rec in sf.shapeRecords():
        ####这里需要找到和region匹配的唯一标识符,record[]中必有一项是对应的。
        # if shape_rec.record[3] == region:   #####在country1.shp上,对中国以外的其他国家或地区进行maskout
        print(shape_rec.record)
        if shape_rec.record[4] in region:#####在bou2_4p.shp上,对中国的某几个省份或地区之外的部分进行maskout
            pts = shape_rec.shape.points
            prt = list(shape_rec.shape.parts) + [len(pts)]
            for i in range(len(prt) - 1):
                for j in range(prt, prt[i+1]):
                    vertices.append(m(pts[j][0], pts[j][1]))
                codes += [Path.MOVETO]
                codes += [Path.LINETO] * (prt[i+1] - prt -2)
                codes += [Path.CLOSEPOLY]
            clip = Path(vertices, codes)
            clip = PathPatch(clip, transform=ax.transData)
    for contour in originfig.collections:
        contour.set_clip_path(clip)
    return clip
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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