Skip to content

Commit 1e18281

Browse files
author
Ana Ordonez
committed
remove outliers from obs
1 parent fc0b958 commit 1e18281

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

pcmdi_metrics/extremes/extremes_driver.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,7 @@
582582

583583
# Get reference data if present
584584
refds = None
585+
bm_ref = None
585586
if "Reference" in model_loop_list:
586587
ref_file = nc_dir + "/Reference_{0}_{1}_{2}_*_return_value.nc".format(
587588
reference_data_set, region, stat
@@ -594,14 +595,17 @@
594595
refds.lon["bounds"] = ""
595596
refds = refds.bounds.add_missing_bounds()
596597

598+
bm_ref_file = ref_file.replace("_return_value", "")
599+
bm_ref = xcdat.open_dataset(bm_ref_file)
600+
597601
rv = xcdat.open_dataset(file)
598602
rv = rv.drop_vars("lat_bnds")
599603
rv = rv.drop_vars("lon_bnds")
600604
rv.lat["bounds"] = ""
601605
rv.lon["bounds"] = ""
602606
rv = rv.bounds.add_missing_bounds()
603607
tmp = compute_metrics.metrics_json_return_value(
604-
rv, bm, refds, stat, region=region, regrid=regrid
608+
rv, bm, refds, bm_ref, stat, region=region, regrid=regrid
605609
)
606610
# store the stats correctly in the metrics dictionary
607611
if model != "Reference":

pcmdi_metrics/extremes/lib/compute_metrics.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,9 @@ def metrics_json(data_dict, obs_dict={}, region="land", regrid=True):
590590
return met_dict
591591

592592

593-
def metrics_json_return_value(rv, blockex, obs, stat, region="land", regrid=True):
593+
def metrics_json_return_value(
594+
rv, blockex, obs, blockex_obs, stat, region="land", regrid=True
595+
):
594596
# Generate metrics for stationary return value comparing model and obs
595597
# Arguments:
596598
# rv: dataset
@@ -632,6 +634,7 @@ def metrics_json_return_value(rv, blockex, obs, stat, region="land", regrid=True
632634
met_dict[stat][region]["std_xy"][season] = std_xy
633635

634636
if obs is not None and not obs[season].equals(rv_tmp):
637+
obs[season] = remove_outliers(obs[season], blockex_obs[season])
635638
# Regrid obs to model grid
636639
if regrid:
637640
target = xc.create_grid(rv_tmp.lat, rv_tmp.lon)

0 commit comments

Comments
 (0)