Skip to main content

M3SASchema

Below is the schema for the MultiMetaModel JSON file. This schema can be used to validate a MultiMetaModel setup file. A setup file can be validated using a JSON schema validator, such as https://www.jsonschemavalidator.net/.

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"multimodel": {
"type": "boolean",
"default": true,
"description": "Whether or not to build a Multi-Model. If set to false, a Meta-Model will not be computed either."
},
"metamodel": {
"type": "boolean",
"default": true,
"description": "Whether to build a Meta-Model."
},
"metric": {
"type": "string",
"description": "What metric to be analyzed from the computed files."
},
"current_unit": {
"type": "string",
"default": "",
"description": "The international system unit of the metric to be analyzed, without prefixes. e.g., 'W' for Watt is ok, 'kW' is not."
},
"unit_scaling_magnitude": {
"type": "integer",
"default": 10,
"enum": [-9, -6, -3, 1, 3, 6, 9],
"description": "The scaling factor to be applied to the metric (10^-9, 10^-6, 10^3, 10^3, 10^6, 10^9). For no scaling, input 1."
},
"seed": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "The seed of the simulation. This must correspond to the seed from the output folder (from seed=x)."
},
"window_size": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "The size of the window, used for aggregating the chunks."
},
"window_function": {
"type": "string",
"default": "mean",
"enum": ["mean", "median"],
"description": "The function used by the window for aggregating the chunks (e.g., for 'mean', the window will compute the mean of the samples)."
},
"meta_function": {
"type": "string",
"default": "mean",
"enum": ["mean", "median"],
"description": "The function used by the Meta-Model to be generated. For 'mean', the Meta-Model takes the mean of the individual models, at the granularity established by the window-size."
},
"samples_per_minute": {
"type": "number",
"minimum": 0.0001,
"description": "The number of samples per minute, in the prediction data (simulator export rate). e.g., '0.2' means 1 sample every 5 minutes, '20' means 20 samples per minute, or 1 sample every 3 seconds."
},
"plot_type": {
"type": "string",
"default": "time_series",
"enum": ["time_series", "cumulative", "cumulative_time_series"],
"description": "The type of the plot, generated by the Multi-Model and Meta-Model."
},
"plot_title": {
"type": "string",
"default": "",
"description": "The title of the plot."
},
"x_label": {
"type": "string",
"default": "Time",
"description": "The label for the x-axis of the plot."
},
"y_label": {
"type": "string",
"default": "Metric Unit",
"description": "The label for the y-axis of the plot."
},
"y_min": {
"type": "number",
"description": "The minimum value for the vertical axis of the plot."
},
"y_max": {
"type": "number",
"description": "The maximum value for the vertical axis of the plot."
},
"x_min": {
"type": "number",
"description": "The minimum value for the horizontal axis of the plot."
},
"x_max": {
"type": "number",
"description": "The maximum value for the horizontal axis of the plot."
},
"x_ticks_count": {
"type": "integer",
"minimum": 1,
"description": "The number of ticks on x-axis."
},
"y_ticks_count": {
"type": "integer",
"minimum": 1,
"description": "The number of ticks on y-axis."
}
},
"required": [
"metric"
]
}