Skip to content

Commit 2cca3ec

Browse files
committed
fix provenance command-line; fix metrics for model_only case
1 parent 11f8cd9 commit 2cca3ec

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

e3sm_diags/driver/lat_lon_native_driver.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,20 @@ def _run_diags_2d_model_only(
166166
parameter._set_param_output_attrs(var_key, season, region, ref_name, ilev=None)
167167
logger.info(f"Processing {var_key} for region {region}")
168168

169+
# Apply regional subsetting before metrics calculation
170+
uxds_test_subset = _apply_regional_subsetting(uxds_test, var_key, region)
171+
172+
# Create a minimal metrics_dict for model-only mode
173+
# Only need test metrics, no reference or diff metrics
174+
parameter.metrics_dict = _create_metrics_dict(
175+
var_key,
176+
uxds_test_subset,
177+
uxds_ref=None,
178+
uxds_test_remapped=uxds_test_subset, # For model-only, test_regrid = test
179+
uxds_ref_remapped=None,
180+
uxds_diff=None,
181+
)
182+
169183
# Create plot with model-only mode
170184
plot_func(
171185
parameter,

e3sm_diags/parser/lat_lon_native_parser.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,11 @@ def add_arguments(self):
4848
help="Width of grid edges when displayed",
4949
required=False,
5050
)
51+
52+
self.parser.add_argument(
53+
"--time_slices",
54+
dest="time_slices",
55+
nargs="+",
56+
help="Time slices for snapshot-based analysis (e.g., '0', '0:10:2', '5:15'). Mutually exclusive with seasons.",
57+
required=False,
58+
)

e3sm_diags/viewer/default_viewer.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,14 +334,33 @@ def create_metadata(parameter):
334334
if "parameters" in supported_cmd_args:
335335
supported_cmd_args.remove("parameters")
336336

337+
# Exclude parameters not used by this diagnostic set
338+
exclude_params = {"granulate", "selectors"}
339+
if set_name == "lat_lon_native":
340+
exclude_params.update({"regrid_tool", "regrid_method"})
341+
342+
# Get default parameter values to skip parameters equal to defaults
343+
default_param = parameter.__class__()
344+
337345
for param_name in parameter.__dict__:
338346
param = parameter.__dict__[param_name]
347+
348+
# Skip excluded parameters
349+
if param_name in exclude_params:
350+
continue
351+
339352
# We don't want to include blank values.
340353
if (isinstance(param, numpy.ndarray) and not param.all()) or (
341354
not isinstance(param, numpy.ndarray) and not param
342355
):
343356
continue
344357

358+
# Skip if parameter value equals default value
359+
if hasattr(default_param, param_name):
360+
default_value = getattr(default_param, param_name)
361+
if param == default_value:
362+
continue
363+
345364
if param_name in supported_cmd_args:
346365
if (
347366
isinstance(param, list)

0 commit comments

Comments
 (0)