From ff912dc2fa4de675f1194004ab1730bb2ccd6ebc Mon Sep 17 00:00:00 2001 From: "adrien.stella" Date: Fri, 7 Apr 2023 15:16:09 +0200 Subject: [PATCH 1/2] Added Mask to BFN --- mapping/src/mod.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mapping/src/mod.py b/mapping/src/mod.py index b6dd528..ff15ad9 100644 --- a/mapping/src/mod.py +++ b/mapping/src/mod.py @@ -414,6 +414,8 @@ def __init__(self,config,State): else: for name in self.name_var: State.var[self.name_var[name]] = np.zeros((State.ny,State.nx)) + if State.mask is not None: + State.var[self.name_var[name]][State.mask] = np.nan # Observed variable self.name_obs_var = self.name_var['SSH'] # SSH From 928f9edc2cfa46fa3a3af48f51a468d0ea1715d7 Mon Sep 17 00:00:00 2001 From: "adrien.stella" Date: Fri, 7 Apr 2023 15:17:27 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Added=20support=20for=20lons=20crossing=200?= =?UTF-8?q?=C2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mapping/src/state.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mapping/src/state.py b/mapping/src/state.py index 44db400..edff125 100644 --- a/mapping/src/state.py +++ b/mapping/src/state.py @@ -230,6 +230,10 @@ def ini_mask(self,config): self.mask = (np.isnan(self.lon) + np.isnan(self.lat)).astype(bool) return + # Fix hole at Greenwich meridian + ds = ds.assign_coords({name_lon:((name_lon, ds[name_lon].data % 360))}) + ds = ds.sortby(ds[name_lon]) + dlon = np.nanmax(self.lon[:,1:] - self.lon[:,:-1]) dlat = np.nanmax(self.lat[1:,:] - self.lat[:-1,:]) @@ -255,6 +259,8 @@ def ini_mask(self,config): # Interpolate to state grid if np.any(lon_mask!=self.lon) or np.any(lat_mask!=self.lat): + lon_mask[lon_mask>180] = lon_mask[lon_mask>180] - 360 # Need to convert coordinates back in order to avoid white line error + self.lon[self.lon>180] = self.lon[self.lon>180] - 360 mask_interp = interpolate.griddata( (lon_mask.ravel(),lat_mask.ravel()), mask.ravel(), (self.lon.ravel(),self.lat.ravel())).reshape((self.ny,self.nx))