summaryrefslogtreecommitdiff
path: root/site/docs/documentation/Input/M3SASchema.md
diff options
context:
space:
mode:
authorRadu Nicolae <rnicolae04@gmail.com>2024-10-25 08:21:49 +0200
committerGitHub <noreply@github.com>2024-10-25 08:21:49 +0200
commit27f5b7dcb05aefdab9b762175d538931face0aba (patch)
treeaed9b6cd324f73d4db9af5fc70000a62b4422fc1 /site/docs/documentation/Input/M3SASchema.md
parent4a010c6b9e033314a2624a0756dcdc7f17010d9d (diff)
M3SA - Multi-Meta-Model Simulation Analyzer (#251)
* (feat) demo files are now ignored * integrating m3sa changes with opendc * gitignore ignores demo * m3sa linked, tested, works 🎉🎆 * linting & checks fully pass * m3sa documentation (re...)added * package.json added, a potentail solution for Build Docker Images workflow * (fix) opendc-m3sa renamed to opendc-experiments-m3sa * (feat) Model is now a dataclass * (fix) package and package-lock reverted as before the PR, now they mirror the opendc master branch * (fix) Experiments renamed to experiment * branch updated with changes from master branch * trying to fix the build docker image failed workflow * trying to fix the build docker image failed workflow * All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. (#255) (#37) Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com> * All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. (#255) (#38) Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com> * All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. (#255) (#39) Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com> * [TEMP](feat) m3saCli decoupled from experimentCli * spotless and minor refactoring * (feat)[TEMP] decoupling m3sa from experiment * spotless applied * documentation resolved * requirements.txt added * path to M3SA is now provided as a parameter to M3SACLI * spotless applied * (fix) python environment variables solved, output analysis folder solved * documentation changed and matching the master branch doc * package-lock reverted * package-lock reverted --------- Co-authored-by: Dante Niewenhuis <d.niewenhuis@hotmail.com>
Diffstat (limited to 'site/docs/documentation/Input/M3SASchema.md')
-rw-r--r--site/docs/documentation/Input/M3SASchema.md115
1 files changed, 115 insertions, 0 deletions
diff --git a/site/docs/documentation/Input/M3SASchema.md b/site/docs/documentation/Input/M3SASchema.md
new file mode 100644
index 00000000..5a3503ca
--- /dev/null
+++ b/site/docs/documentation/Input/M3SASchema.md
@@ -0,0 +1,115 @@
+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/.
+
+```json
+{
+ "$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"
+ ]
+}
+```