summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/analyze-trace.py6
-rw-r--r--lib/cli.py2
-rw-r--r--lib/model.py21
3 files changed, 26 insertions, 3 deletions
diff --git a/bin/analyze-trace.py b/bin/analyze-trace.py
index d7f45e7..369c5d6 100755
--- a/bin/analyze-trace.py
+++ b/bin/analyze-trace.py
@@ -593,7 +593,11 @@ def main():
if args.export_json:
with open(args.export_json, "w") as f:
json.dump(
- model.to_json(),
+ model.to_json(
+ static_error=static_quality,
+ lut_error=lut_quality,
+ model_error=analytic_quality,
+ ),
f,
sort_keys=True,
cls=dfatool.utils.NpEncoder,
diff --git a/lib/cli.py b/lib/cli.py
index e03ef4c..b68f548 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -551,7 +551,7 @@ def add_standard_arguments(parser):
"--export-json",
metavar="FILENAME",
type=str,
- help="Export model in JSON format to FILENAME",
+ help="Export model and error metrics in JSON format to FILENAME",
)
parser.add_argument(
"--load-json",
diff --git a/lib/model.py b/lib/model.py
index 159171c..754c723 100644
--- a/lib/model.py
+++ b/lib/model.py
@@ -669,7 +669,14 @@ class AnalyticModel:
ret[f"xv/{name}/{attr_name}/{k}"] = np.mean(entry[k])
return ret
- def to_json(self, with_by_param=False, **kwargs) -> dict:
+ def to_json(
+ self,
+ with_by_param=False,
+ lut_error=None,
+ static_error=None,
+ model_error=None,
+ **kwargs,
+ ) -> dict:
"""
Return JSON encoding of this AnalyticModel.
"""
@@ -688,6 +695,18 @@ class AnalyticModel:
for name in self.names:
for attr_name, attr in self.attr_by_name[name].items():
ret["name"][name][attr_name] = attr.to_json(**kwargs)
+ if lut_error:
+ ret["name"][name][attr_name]["lutError"] = lut_error[name][
+ attr_name
+ ]
+ if static_error:
+ ret["name"][name][attr_name]["staticError"] = static_error[name][
+ attr_name
+ ]
+ if model_error:
+ ret["name"][name][attr_name]["modelError"] = model_error[name][
+ attr_name
+ ]
attr_name = list(self.attributes(name))[0]
for param_name in self.parameters:
ret["paramValuesbyName"][name][param_name] = self.attr_by_name[name][