如何在底图Python上掩盖计数图?

问题描述 投票:0回答:1

我想用basemap-python绘制等高线图。我使用了轮廓和轮廓函数,我有陆地上的数据,但我想屏蔽这些数据。轮廓是用底图自我掩盖的,但轮廓不是?如何像contourf一样屏蔽等高线图? 这里是图片链接:https://pasteboard.co/Iegz6ql.png

python contour matplotlib-basemap
1个回答
0
投票

在用 global_land_mask 屏蔽您想要的陆地或海洋数据(请原谅忘记原始线程)之后,我有很长的路要在底图中绘制轮廓,如下所示。我也在寻找最快的方法来做到这一点。也许我们这里的朋友可以帮助我们。

import numpy as np
import glob
from global_land_mask import globe

##### searching current folder path 
path0 = os.getcwd()
print(path0)


################################################         
path1=path0+'/50-Merging/'
##os.makedirs(os.path.dirname(path1), exist_ok=True)

path3=path0+'/90-Masking-OCEAN/'
os.makedirs(os.path.dirname(path3), exist_ok=True)

folder1=glob.glob(path1+'Corr-*.dat') 
#folder1=glob.glob(path1+'Corr-APR.dat') 


for files1 in folder1:
    print (files1)
    dates=files1[-7:-4]

    print(dates)

    data4=np.loadtxt(files1)
    lat=data4[:,0]
    lon=data4[:,1]
    rain_ave=data4[:,2]
    print(max(rain_ave))
    
    lat_min=min(lat)
    lat_max=max(lat)
    lon_min=min(lon)
    lon_max=max(lon)

    lats=[]
    lons=[]
    # for y,x in zip(lat,lon):
    #     land=globe.is_land(y,x)
    #     if land == True:
    #         lats.append(y)
    #         lons.append(x)           

    for y,x in zip(lat,lon):
        ocean=globe.is_ocean(y,x)
        if ocean == True:
            lats.append(y)
            lons.append(x)

    in_lats1=lats
    in_lons1=lons
 
########## methods finding 3rd value using closer points #################        
    ind=[]
    for i in range(len(in_lats1)):
        dist=(lat-in_lats1[i])**2+(lon-in_lons1[i])**2
        ind.append(np.where(dist==np.min(dist))[0][0])
    
        lat2=lat[ind]
        lon2=lon[ind]
        param_model2=rain_ave[ind]
       
    data3=np.array([lat2,lon2,param_model2])
    data3=np.transpose(data3)
    
 
    fmt1='%s'
    np.savetxt(path3+'90-Masking-OCEAN-'+dates+'.dat',data3,fmt=fmt1,delimiter='\t')

最后,您可以使用上面保存的 data3 中的常规方法绘制轮廓。希望有帮助。 sample of masking LAND for rainfall

© www.soinside.com 2019 - 2024. All rights reserved.