From 2172b4f34769121da485a3e63c7ca6298eac564e Mon Sep 17 00:00:00 2001 From: Nils Brueggemann <nils.brueggemann@mpimet.mpg.de> Date: Mon, 10 Mar 2025 16:20:14 +0100 Subject: [PATCH] pyic_view: Better representation of land sea mask. --- scripts/pyic_view.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/scripts/pyic_view.py b/scripts/pyic_view.py index 9c20f7b..b509f18 100755 --- a/scripts/pyic_view.py +++ b/scripts/pyic_view.py @@ -118,12 +118,12 @@ def get_data(ds, var_name, it, iz, res, lon_reg, lat_reg): dai = pyic.interp_to_rectgrid_xr( ds[var_name].isel(**isel_dict), res=res, lon_reg=lon_reg, lat_reg=lat_reg, - verbose=False + verbose=False, + mask_out_of_range=False, ) dai.attrs["depth_name"] = depth_name return dai.where(dai!=0.) - class view(object): def __init__(self, flist, path_grid, fig_size_fac=1.0): # Initialize Tkinter @@ -467,13 +467,26 @@ class view(object): self.X, self.Y = self.transformer.transform(self.Lon, self.Lat, direction='FORWARD') # make plot - valid = np.isfinite(self.X) & np.isfinite(self.Y) self.hm = pyic.shade( #self.X[valid], self.Y[valid], self.dai.data[valid], self.X, self.Y, self.dai.to_masked_array(), ax=self.ax, cax=self.cax, adjust_axlims=False, - ) + ) + + ## plot the mask of land values + #mask = self.dai.to_masked_array() + #mask[mask!=0] = np.ma.masked + #cmap = plt.cm.viridis + #cmap.set_under(color='0.7') # set color of mask + #pyic.shade( + # self.X, self.Y, mask, + # ax=self.ax, cax=0, + # clim=[2,3], + # adjust_axlims=False, + # cmap=cmap, + #) + # set ax limits self.ax.set_xlim(self.xlim) self.ax.set_ylim(self.ylim) @@ -485,7 +498,6 @@ class view(object): else: self.ax.set_xticks([]) self.ax.set_yticks([]) - self.ax.set_facecolor('0.7') self.update_cmap() self.update_clim() # set titles @@ -529,13 +541,13 @@ class view(object): #self.xlim = [-4660515.349812048, 4660515.349812048] #self.ylim = [-4658959.2511977535, 4658959.2511977535] self.lon_reg = [-180, 180] - self.lat_reg = [50, 90] + self.lat_reg = [48, 90] lat_reg_axlim = [60,90] elif self.proj=="+proj=stere +lat_0=-90 +lon_0=0": #self.xlim = [-5965970.154575175, 5965970.154575175] #self.ylim = [-5963978.177895851, 5963978.177895851] self.lon_reg = [-180, 180] - self.lat_reg = [-90, -40] + self.lat_reg = [-90, -35] lat_reg_axlim = [-90,-50] else: self.lon_reg = [-180, 180] @@ -656,6 +668,7 @@ class view(object): cmap = getattr(cmocean.cm, cmap) else: cmap = getattr(plt.cm, cmap) + cmap.set_bad('0.7') self.hm[0].set_cmap(cmap) self.canvas.draw() -- GitLab