Skip to content

Commit a1f8bf8

Browse files
fix: for opera mask (#40)
* fix for opera mask * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 166e199 commit a1f8bf8

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/anemoi/transform/filters/rodeo-opera-mask.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
MAX_QI = 1
2424

2525

26-
def clip_opera(tp, quality):
26+
def clip_opera(tp, quality, max_tp):
2727
tp[tp < 0] = 0
28-
tp[tp >= MAX_TP] = MAX_TP
28+
tp[tp >= max_tp] = max_tp
2929
quality[quality >= MAX_QI] = MAX_QI
3030

3131
return tp, quality
@@ -39,9 +39,6 @@ def mask_opera(tp, quality, mask):
3939
# tp[quality == NODATA] = np.nan
4040
# tp[quality == UNDETECTED] = np.nan
4141

42-
# GRIB2 ENCODED DATA FILTERING
43-
# !won't work until Pedro's fix to compute mask based on quality
44-
# quality grib2 just have nans no NODATA or UNDETECTED values
4542
tp[mask == _NODATA] = np.nan
4643
tp[mask == _UNDETECTED] = np.nan
4744
tp[mask == _INF] = np.nan
@@ -60,11 +57,13 @@ def __init__(
6057
quality="quality",
6158
mask="mask",
6259
output="tp_cleaned",
60+
max_tp=MAX_TP,
6361
):
6462
self.tp = tp
6563
self.quality = quality
6664
self.tp_cleaned = output
6765
self.mask = mask
66+
self.max_tp = max_tp
6867

6968
def forward(self, data):
7069
return self._transform(
@@ -85,7 +84,7 @@ def forward_transform(self, tp, quality, mask):
8584
tp_masked = mask_opera(tp=tp.to_numpy(), quality=quality.to_numpy(), mask=mask.to_numpy())
8685

8786
# 2nd - apply clipping
88-
tp_cleaned, quality = clip_opera(tp=tp_masked, quality=quality.to_numpy())
87+
tp_cleaned, quality = clip_opera(tp=tp_masked, quality=quality.to_numpy(), max_tp=self.max_tp)
8988

9089
yield self.new_field_from_numpy(tp_cleaned, template=tp, param=self.tp_cleaned)
9190

0 commit comments

Comments
 (0)