feat: harden end-to-end simulation workflow

This commit is contained in:
Codex
2026-08-28 12:34:11 +09:00
parent 2ce96064cf
commit 3317a03d1a
17 changed files with 577 additions and 24 deletions
+25 -2
View File
@@ -66,7 +66,28 @@
"sourceId": { "type": "string", "minLength": 1 },
"position": { "$ref": "#/$defs/position" },
"value": { "type": "number", "minimum": 0 },
"localizationErrorM": { "type": "number", "minimum": 0 }
"localizationErrorM": { "type": "number", "minimum": 0 },
"localizationErrorPixels": { "type": "number", "minimum": 0 }
}
},
"evaluation": {
"type": "object", "additionalProperties": false,
"required": [
"version", "truthRadiusM", "matchToleranceM", "detectionThresholdRatio",
"detectionThresholdValue", "minimumPeakDistanceM", "sidelobeExclusionRadiusM",
"halfPowerRatio", "dynamicRangeDb", "maximumDetections"
],
"properties": {
"version": { "const": "1.0.0" },
"truthRadiusM": { "type": "number", "minimum": 0 },
"matchToleranceM": { "type": "number", "minimum": 0 },
"detectionThresholdRatio": { "type": "number", "minimum": 0, "maximum": 1 },
"detectionThresholdValue": { "type": "number", "minimum": 0 },
"minimumPeakDistanceM": { "type": "number", "minimum": 0 },
"sidelobeExclusionRadiusM": { "type": "number", "minimum": 0 },
"halfPowerRatio": { "type": "number", "exclusiveMinimum": 0, "maximum": 1 },
"dynamicRangeDb": { "type": "number", "minimum": 0 },
"maximumDetections": { "type": "integer", "minimum": 1, "maximum": 128 }
}
},
"processedMap": {
@@ -84,6 +105,7 @@
"color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
"rawMap": { "$ref": "#/$defs/map" },
"displayMap": { "$ref": "#/$defs/map" },
"evaluation": { "$ref": "#/$defs/evaluation" },
"processedMaps": { "type": "array", "maxItems": 8, "items": { "$ref": "#/$defs/processedMap" } },
"peaks": { "type": "array", "maxItems": 128, "items": { "$ref": "#/$defs/peak" } },
"metrics": {
@@ -92,7 +114,8 @@
"peakToSidelobeDb": { "type": "number" },
"energyInsideTruthRatio": { "type": "number", "minimum": 0, "maximum": 1 },
"precision": { "type": "number", "minimum": 0, "maximum": 1 },
"recall": { "type": "number", "minimum": 0, "maximum": 1 }
"recall": { "type": "number", "minimum": 0, "maximum": 1 },
"mainLobeWidthM": { "type": "number", "minimum": 0 }
}
}
}