From 27f5b7dcb05aefdab9b762175d538931face0aba Mon Sep 17 00:00:00 2001 From: Radu Nicolae Date: Fri, 25 Oct 2024 08:21:49 +0200 Subject: M3SA - Multi-Meta-Model Simulation Analyzer (#251) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * (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 * 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 * 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 * [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 --- site/docs/documentation/Input/M3SASchema.md | 115 ++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 site/docs/documentation/Input/M3SASchema.md (limited to 'site/docs/documentation/Input/M3SASchema.md') 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" + ] +} +``` -- cgit v1.2.3