{ "id": "http://yourdomain.com/grid_schemas/base.json", "$schema": "http://json-schema.org/draft-04/schema#", "description": "Grid Research for Good (GRG) data schema v.1.0. Copyright (c) 2017 The Grid Research for Good (GRG) Team (James Anderson, Russell Bent, Daniel Bienstock, Carleton Coffrin, Ferdinando Fioretto, Ian Hiskens, Steven Low, Patrick Panciatici, Pascal Van Hentenryck). Disclaimer: The following schema is subject to changes and revisions. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated. documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", "type": "object", "required": [ "grg_version", "network", "units" ], "properties": { "grg_version": { "type": "string" }, "description": { "type": "string" }, "network": { "$ref": "#/network" }, "mappings": { "$ref": "#/mappings" }, "market": { "$ref": "#/market" }, "units": { "$ref": "#/units" }, "operation_constraints": { "$ref": "#/operation_constraints" }, "network_time_series" : { "$ref": "#/network_time_series" }, "time_series_constraints" : { "$ref": "#/time_series_constraints" }, "contingencies" : { "$ref": "#/contingencies" }, "stochastic_time_series" : { "$ref": "#/stochastic_time_series" }, "groups" :{ "$ref": "#/groups" } }, "additionalProperties": true, "values": { "basic_values": { "extended_number": { "oneOf": [ { "type": "number" }, { "enum": [ "Inf", "-Inf", "NaN", "Null" ] } ] }, "extended_positive_number": { "oneOf": [ { "type": "number", "minimum": 0 }, { "enum": [ "Inf", "NaN", "Null" ] } ] }, "domain": { "type": "object", "required": [ "var" ], "properties": { "var": { "oneOf": [ { "type": "array", "items": { "type": "string" }, "minItems": 1 }, { "type": "array", "items": { "type": "number" }, "minItems": 1 }, { "type": "object", "required": [ "lb", "ub" ], "properties": { "lb": { "$ref": "#/values/basic_values/extended_number" }, "ub": { "$ref": "#/values/basic_values/extended_number" } }, "additionalProperties": true } ] } }, "additionalProperties": true }, "positive_domain": { "type": "object", "required": [ "var" ], "properties": { "var": { "oneOf": [ { "type": "array", "items": { "type": "string" }, "minItems": 1 }, { "type": "array", "items": { "type": "number", "minimum": 0 }, "minItems": 1 }, { "type": "object", "required": [ "lb", "ub" ], "properties": { "lb": { "$ref": "#/values/basic_values/extended_positive_number" }, "ub": { "$ref": "#/values/basic_values/extended_positive_number" } }, "additionalProperties": true } ] } }, "additionalProperties": true }, "abstract_value": { "oneOf": [ { "$ref": "#/values/basic_values/extended_number" }, { "$ref": "#/values/basic_values/domain" } ] }, "abstract_positive_value": { "oneOf": [ { "$ref": "#/values/basic_values/extended_positive_number" }, { "$ref": "#/values/basic_values/positive_domain" } ] }, "status": { "oneOf": [ { "enum": [ "off", "on" ] }, { "type": "object", "required": [ "var" ], "properties": { "var": { "type": "array", "items": { "enum": [ "on", "off" ] }, "minItems": 2, "maxItems": 2, "uniqueItems": true } }, "additionalProperties": true } ] }, "grg_pointer": { "type": "string", "pattern": ".*" }, "table": { "type": "object", "required": [ "arguments", "values" ], "additionalProperties": true, "properties": { "arguments": { "type": "array", "items": { "$ref": "#/values/basic_values/grg_pointer" }, "minItems": 1, "uniqueItems": true }, "values": { "type": "array", "items": { "type": "array", "items": { "oneOf": [ { "$ref": "#/values/basic_values/abstract_value" }, { "type": "string" } ] }, "minItems": 1 }, "minItems": 1 } } }, "polyhedra": { "type": "object", "required": [ "arguments", "coefficients" ], "additionalProperties": true, "properties": { "arguments": { "type": "array", "items": { "type": "#/values/basic_values/grg_pointer" }, "uniqueItems": true }, "coefficients": { "type": "array", "items": { "type": "array", "items": { "type": "number" } } } } } }, "electrical_values": { "impedance": { "type": "object", "required": [ "resistance", "reactance" ], "additionalProperties": true, "properties": { "resistance": { "$ref": "#/values/basic_values/abstract_value" }, "reactance": { "$ref": "#/values/basic_values/abstract_value" } } }, "admittance": { "type": "object", "required": [ "conductance", "susceptance" ], "additionalProperties": true, "properties": { "conductance": { "$ref": "#/values/basic_values/abstract_value" }, "susceptance": { "$ref": "#/values/basic_values/abstract_value" } } }, "power": { "type": "object", "required": [ "active", "reactive" ], "additionalProperties": true, "properties": { "active": { "$ref": "#/values/basic_values/abstract_value" }, "reactive": { "$ref": "#/values/basic_values/abstract_value" } } }, "voltage": { "type": "object", "required": [ "magnitude", "angle" ], "additionalProperties": true, "properties": { "magnitude": { "$ref": "#/values/basic_values/abstract_value" }, "angle": { "$ref": "#/values/basic_values/abstract_value" } } } }, "limits": { "current_limits": { "type": "array", "items" : [ { "type": "object", "required": ["duration", "min", "max", "report"], "additionalProperties": true, "properties": { "duration": {"$ref": "#/values/basic_values/extended_number"}, "min": {"$ref": "#/values/basic_values/extended_number"}, "max": {"$ref": "#/values/basic_values/extended_number"}, "report": {"enum": ["on","off"]} } } ], "minItems": 1, "additionalItems": false }, "thermal_limits": { "type": "array", "items" : [ { "type": "object", "required": ["duration", "min", "max", "report"], "additionalProperties": true, "properties": { "duration": {"$ref": "#/values/basic_values/extended_number"}, "min": {"$ref": "#/values/basic_values/extended_number"}, "max": {"$ref": "#/values/basic_values/extended_number"}, "report": {"enum": ["on","off"]} } } ], "minItems": 1, "additionalItems": false } } }, "network": { "type": "object", "required": [ "id", "type", "subtype", "per_unit", "components" ], "allOf": [ { "properties": { "id": { "type": "string" }, "type": { "enum": [ "network" ] }, "per_unit": { "type": "boolean" }, "description": { "type": "string" }, "assignments": { "$ref": "#/network/network_assignments" }, "subtype": { "type": "string" }, "components": { "type": "object" } }, "additionalProperties": true }, { "oneOf": [ { "$ref": "#/network/node_breaker" }, { "$ref": "#/network/bus_breaker" }, { "$ref": "#/network/bus_branch" } ] } ], "network_assignments": { "type": "object", "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/values/basic_values/abstract_value" }, { "$ref": "#/values/basic_values/status" }, {"type": "object"} ] } } }, "network_components": { "ac_line": { "type": "object", "required": [ "type", "id", "link_1", "link_2", "shunt_1", "shunt_2", "impedance" ], "additionalProperties": true, "properties": { "type": { "enum": [ "ac_line" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link_1": { "type": "string" }, "link_2": { "type": "string" }, "shunt_1": { "$ref": "#/values/electrical_values/admittance" }, "shunt_2": { "$ref": "#/values/electrical_values/admittance" }, "impedance": { "$ref": "#/values/electrical_values/impedance" }, "current_limits_1": { "$ref": "#/values/limits/current_limits" }, "current_limits_2": { "$ref": "#/values/limits/current_limits" }, "thermal_limits_1": { "$ref": "#/values/limits/thermal_limits" }, "thermal_limits_2": { "$ref": "#/values/limits/thermal_limits" } } }, "dc_line":{ "type": "object", "required": [ "type", "id", "link_1", "link_2", "resistance", "losses_1", "losses_2" ], "additionalProperties": true, "properties": { "type": { "enum": ["dc_line", "dc_line_vsc", "dc_line_lcc"]}, "subtype": {"type": "string"}, "id": { "type": "string"}, "description": {"type": "string"}, "link_1": {"type": "string"}, "link_2": {"type": "string"}, "resistance": {"$ref": "#/values/basic_values/abstract_value"}, "losses_1": { "type": "object", "required": ["c_0", "c_1"], "additionalProperties": true, "properties": { "min" : {"$ref": "#/values/basic_values/abstract_value"}, "max" : {"$ref": "#/values/basic_values/abstract_value"}, "c_0" : {"$ref": "#/values/basic_values/abstract_value"}, "c_1" : {"$ref": "#/values/basic_values/abstract_value"} } }, "losses_2": { "type": "object", "required": ["c_0", "c_1"], "additionalProperties": true, "properties": { "min" : {"$ref": "#/values/basic_values/abstract_value"}, "max" : {"$ref": "#/values/basic_values/abstract_value"}, "c_0" : {"$ref": "#/values/basic_values/abstract_value"}, "c_1" : {"$ref": "#/values/basic_values/abstract_value"} } }, "output_1" : { "reactive": { "$ref": "#/values/electrical_values/abstract_value" } }, "output_2" : { "reactive": { "$ref": "#/values/electrical_values/abstract_value" } }, "current_limits_1": { "$ref": "#/values/limits/current_limits" }, "current_limits_2": { "$ref": "#/values/limits/current_limits" }, "thermal_limits_1": { "$ref": "#/values/limits/thermal_limits" }, "thermal_limits_2": { "$ref": "#/values/limits/thermal_limits" } } }, "two_winding_transformer": { "type": "object", "required": [ "type", "id", "link_1", "link_2", "tap_changer" ], "additionalProperties": true, "properties": { "type": { "enum": [ "two_winding_transformer", "T_model_transformer", "PI_model_transformer" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link_1": { "type": "string" }, "link_2": { "type": "string" }, "current_limits_1": { "$ref": "#/values/limits/current_limits" }, "current_limits_2": { "$ref": "#/values/limits/current_limits" }, "thermal_limits_1": { "$ref": "#/values/limits/thermal_limits" }, "thermal_limits_2": { "$ref": "#/values/limits/thermal_limits" }, "tap_changer": { "type": "object", "required": [ "position", "impedance", "shunt", "transform", "steps" ], "additionalProperties": true, "properties": { "position": { "$ref": "#/values/basic_values/abstract_value" }, "impedance": { "$ref": "#/values/electrical_values/impedance" }, "shunt": { "$ref": "#/values/electrical_values/admittance" }, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": { "$ref": "#/values/basic_values/abstract_value" }, "angle_shift": { "$ref": "#/values/basic_values/abstract_value" } } }, "steps": { "type": "array", "items" : [ { "type": "object", "required": ["position", "impedance", "shunt", "transform"], "additionalProperties": true, "properties": { "position": {"type": "number"}, "impedance": {"$ref": "#/values/electrical_values/impedance"}, "shunt": {"$ref": "#/values/electrical_values/admittance"}, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": { "$ref": "#/values/basic_values/abstract_value"}, "angle_shift": { "$ref": "#/values/basic_values/abstract_value"} } } } } ], "minItems": 1, "additionalItems": false } } } } }, "three_winding_transformer": { "type": "object", "required": [ "type", "id", "link_1", "link_2", "link_3", "tap_changer_1", "tap_changer_2", "tap_changer_3"], "additionalProperties": true, "properties": { "type": { "enum": [ "three_winding_transformer"] }, "subtype": { "type": "string" }, "id": { "type": "string"}, "description": { "type": "string" }, "link_1": { "type": "string"}, "link_2": { "type": "string"}, "link_3": { "type": "string"}, "current_limits_1": { "$ref": "#/values/limits/current_limits"}, "current_limits_2": { "$ref": "#/values/limits/current_limits"}, "current_limits_3": { "$ref": "#/values/limits/current_limits"}, "thermal_limits_1": { "$ref": "#/values/limits/thermal_limits"}, "thermal_limits_2": { "$ref": "#/values/limits/thermal_limits"}, "thermal_limits_3": { "$ref": "#/values/limits/thermal_limits"}, "tap_changer_1": { "type": "object", "required": [ "position", "impedance", "shunt", "transform", "steps" ], "additionalProperties": true, "properties": { "position": { "$ref": "#/values/basic_values/abstract_value" }, "impedance": { "$ref": "#/values/electrical_values/impedance" }, "shunt": { "$ref": "#/values/electrical_values/admittance" }, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": { "$ref": "#/values/basic_values/abstract_value" }, "angle_shift": { "$ref": "#/values/basic_values/abstract_value" } } }, "steps": { "type": "array", "items" : [{ "type": "object", "required": ["position", "impedance", "shunt", "transform"], "additionalProperties": true, "properties": { "position": {"type": "number"}, "impedance": {"$ref": "#/values/electrical_values/impedance"}, "shunt": {"$ref": "#/values/electrical_values/admittance"}, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": {"$ref": "#/values/basic_values/abstract_value"}, "angle_shift": {"$ref": "#/values/basic_values/abstract_value"} } } } }], "minItems": 1, "additionalItems": false } } }, "tap_changer_2": { "type": "object", "required": [ "position", "impedance", "transform", "steps" ], "additionalProperties": true, "properties": { "position": { "$ref": "#/values/basic_values/abstract_value" }, "impedance": { "$ref": "#/values/electrical_values/impedance" }, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": { "$ref": "#/values/basic_values/abstract_value" }, "angle_shift": { "$ref": "#/values/basic_values/abstract_value" } } }, "steps": { "type": "array", "items" : [{ "type": "object", "required": ["position", "impedance", "transform"], "additionalProperties": true, "properties": { "position": {"type": "number"}, "impedance": {"$ref": "#/values/electrical_values/impedance"}, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": {"$ref": "#/values/basic_values/abstract_value"}, "angle_shift": {"$ref": "#/values/basic_values/abstract_value"} } } } }], "minItems": 1, "additionalItems": false } } }, "tap_changer_3": { "type": "object", "required": [ "position", "impedance", "transform", "steps" ], "additionalProperties": true, "properties": { "position": { "$ref": "#/values/basic_values/abstract_value" }, "impedance": { "$ref": "#/values/electrical_values/impedance" }, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": { "$ref": "#/values/basic_values/abstract_value" }, "angle_shift": { "$ref": "#/values/basic_values/abstract_value" } } }, "steps": { "type": "array", "items" : [{ "type": "object", "required": ["position", "impedance", "transform"], "additionalProperties": true, "properties": { "position": {"type": "number"}, "impedance": {"$ref": "#/values/electrical_values/impedance"}, "transform": { "type": "object", "required": ["tap_ratio", "angle_shift"], "additionalProperties": true, "properties": { "tap_ratio": {"$ref": "#/values/basic_values/abstract_value"}, "angle_shift": {"$ref": "#/values/basic_values/abstract_value"} } } } }], "minItems": 1, "additionalItems": false } } } } }, "bus": { "type": "object", "required": [ "type", "id", "link", "voltage" ], "additionalProperties": true, "properties": { "type": { "enum": [ "bus" ] }, "subtype": { "type": "string" }, "name": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link": { "type": "string" }, "voltage": { "$ref": "#/values/electrical_values/voltage" } } }, "busbar": { "type": "object", "required": [ "type", "id", "link", "voltage" ], "additionalProperties": true, "properties": { "type": { "enum": [ "bus" ] }, "subtype": { "type": "string" }, "name": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link": { "type": "string" }, "voltage": { "$ref": "#/values/electrical_values/voltage" } } }, "logical_bus": { "type": "object", "required": [ "type", "id", "link", "voltage" ], "additionalProperties": true, "properties": { "type": { "enum": [ "bus" ] }, "subtype": { "type": "string" }, "name": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link": { "type": "string" }, "voltage": { "$ref": "#/values/electrical_values/voltage" } } }, "shunt": { "type": "object", "required": [ "type", "id", "link", "shunt" ], "additionalProperties": true, "properties": { "type": { "enum": [ "shunt" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link": { "type": "string" }, "shunt": { "$ref": "#/values/electrical_values/admittance" } } }, "load": { "type": "object", "required": [ "type", "id", "link", "demand" ], "additionalProperties": true, "properties": { "type": { "enum": [ "load" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "link": { "type": "string" }, "demand": { "$ref": "#/values/electrical_values/power" } } }, "generator": { "type": "object", "required": [ "type", "id", "link", "output" ], "additionalProperties": true, "properties": { "type": { "enum": [ "generator" ] }, "subtype": { "enum": [ "hydro", "wind", "thermal", "other", "nuclear", "solar" ] }, "id": { "type": "string" }, "description": { "type": "string" }, "link": { "type": "string" }, "output": { "$ref": "#/values/electrical_values/power" }, "PQ_curve": { "type": "object", "required": [ "arguments", "values" ], "additionalProperties": true, "properties": { "arguments": { "type": "array", "items": [ { "enum": [ "active" ] }, { "enum": [ "reactive_lb" ] }, { "enum": [ "reactive_ub" ] } ], "minItems": 3, "maxItems": 3, "additionalItems": false }, "values": { "type": "array", "items": [ { "type": "array", "items": [ { "$ref": "#/values/basic_values/extended_number" }, { "$ref": "#/values/basic_values/extended_number" }, { "$ref": "#/values/basic_values/extended_number" } ], "minItems": 3, "maxItems": 3, "additionalItems": false } ], "minItemes": 1 } } } } }, "synchronous_condenser": { "type": "object", "required": [ "type", "id", "link", "output" ], "additionalProperties": true, "properties": { "type": { "enum": [ "synchronous_condenser" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "link": { "type": "string" }, "output": { "reactive": { "$ref": "#/values/electrical_values/abstract_value" } } } }, "breaker": { "type": "object", "required": [ "type", "subtype", "id", "status", "link_1", "link_2" ], "additionalProperties": true, "properties": { "type": { "enum": [ "switch" ] }, "subtype": { "enum": [ "breaker" ] }, "description": { "type": "string" }, "id": { "type": "string" }, "status": { "$ref": "#/values/basic_values/status" }, "link_1": { "type": "string" }, "link_2": { "type": "string" } } }, "isolator": { "type": "object", "required": [ "type", "subtype", "id", "status", "link_1", "link_2" ], "additionalProperties": true, "properties": { "type": { "enum": [ "switch" ] }, "subtype": { "enum": [ "isolator" ] }, "description": { "type": "string" }, "id": { "type": "string" }, "status": { "$ref": "#/values/basic_values/status" }, "link_1": { "type": "string" }, "link_2": { "type": "string" } } } }, "node_breaker": { "properties": { "subtype": { "enum": [ "node_breaker" ] }, "components": { "$ref": "#/network/node_breaker/network_components" } }, "network_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/node_breaker/network_components/substation" }, { "$ref": "#/network/network_components/ac_line" }, { "$ref": "#/network/network_components/dc_line" } ] } }, "substation": { "type": "object", "required": [ "type", "id", "substation_components" ], "properties": { "type": { "enum": [ "substation" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "country": { "type": "string" }, "TSO": { "type": "string" }, "substation_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/node_breaker/network_components/voltage_level" }, { "$ref": "#/network/network_components/two_winding_transformer" }, { "$ref": "#/network/network_components/three_winding_transformer" } ] } } } } }, "voltage_level": { "type": "object", "required": [ "type", "id", "voltage", "voltage_points" ], "properties": { "type": { "enum": [ "voltage_level" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "voltage_points": { "type": "array", "items": { "type": "string" }, "minItems": 1 }, "voltage": { "type": "object", "required": [ "nominal_value", "upper_limit", "lower_limit" ], "additionalProperties": true, "properties": { "nominal_value": { "type": "number" }, "upper_limit": { "type": "number" }, "lower_limit": { "type": "number" } } }, "voltage_level_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/network_components/busbar" }, { "$ref": "#/network/network_components/shunt" }, { "$ref": "#/network/network_components/load" }, { "$ref": "#/network/network_components/generator" }, { "$ref": "#/network/network_components/synchronous_condenser" }, { "$ref": "#/network/network_components/breaker" }, { "$ref": "#/network/network_components/isolator" } ] } } } } } } }, "bus_breaker": { "properties": { "subtype": { "enum": [ "bus_breaker" ] }, "components": { "$ref": "#/network/bus_breaker/network_components" } }, "network_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/bus_breaker/network_components/substation" }, { "$ref": "#/network/network_components/ac_line" }, { "$ref": "#/network/network_components/dc_line" } ] } }, "substation": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "enum": [ "substation" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "country": { "type": "string" }, "TSO": { "type": "string" }, "substation_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/bus_breaker/network_components/voltage_level" }, { "$ref": "#/network/network_components/two_winding_transformer" }, { "$ref": "#/network/network_components/three_winding_transformer" } ] } } } } }, "voltage_level": { "type": "object", "required": [ "type", "id", "voltage", "voltage_points" ], "properties": { "type": { "enum": [ "voltage_level" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "voltage_points": { "type": "array", "items": { "type": "string" }, "minItems": 1 }, "voltage": { "type": "object", "required": [ "nominal_value", "upper_limit", "lower_limit" ], "additionalProperties": true, "properties": { "nominal_value": { "type": "number" }, "upper_limit": { "type": "number" }, "lower_limit": { "type": "number" } } }, "voltage_level_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/network_components/logical_bus" }, { "$ref": "#/network/network_components/shunt" }, { "$ref": "#/network/network_components/load" }, { "$ref": "#/network/network_components/generator" }, { "$ref": "#/network/network_components/synchronous_condenser" }, { "$ref": "#/network/network_components/breaker" } ] } } } } } } }, "bus_branch": { "properties": { "subtype": { "enum": [ "bus_branch" ] }, "components": { "$ref": "#/network/bus_branch/network_components" } }, "network_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/bus_branch/network_components/substation" }, { "$ref": "#/network/network_components/ac_line" }, { "$ref": "#/network/network_components/dc_line" } ] } }, "substation": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "enum": [ "substation" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "country": { "type": "string" }, "TSO": { "type": "string" }, "substation_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/bus_branch/network_components/voltage_level" }, { "$ref": "#/network/network_components/two_winding_transformer" }, { "$ref": "#/network/network_components/three_winding_transformer" } ] } } } } }, "voltage_level": { "type": "object", "required": [ "type", "id", "voltage", "voltage_points" ], "properties": { "type": { "enum": [ "voltage_level" ] }, "subtype": { "type": "string" }, "id": { "type": "string" }, "description": { "type": "string" }, "voltage_points": { "type": "array", "items": { "type": "string" }, "minItems": 1 }, "voltage": { "type": "object", "required": [ "nominal_value", "upper_limit", "lower_limit" ], "additionalProperties": true, "properties": { "nominal_value": { "type": "number" }, "upper_limit": { "type": "number" }, "lower_limit": { "type": "number" } } }, "voltage_level_components": { "patternProperties": { ".*": { "oneOf": [ { "$ref": "#/network/network_components/bus" }, { "$ref": "#/network/network_components/shunt" }, { "$ref": "#/network/network_components/load" }, { "$ref": "#/network/network_components/generator" }, { "$ref": "#/network/network_components/synchronous_condenser" } ] } } } } } } } }, "mappings": { "type": "object", "patternProperties": { ".*": { "$ref": "#/network/network_assignments" } } }, "market": { "type": "object", "additionalProperties": true, "properties": { "operational_costs": { "patternProperties": { ".*": { "type": "object", "required": [ "type", "input", "coefficients" ], "additionalProperties": true, "properties": { "type": { "enum": [ "polynomial" ] }, "input": { "$ref": "#/values/basic_values/grg_pointer" }, "coefficients": { "type": "array", "items": { "$ref": "#/values/basic_values/abstract_value" }, "minItems": 1 } } } } } } }, "units": { "type": "object", "required": [ "voltage", "current", "angle", "reactive_power", "active_power", "impedance", "resistance", "reactance", "conductance", "susceptance" ], "properties": { "voltage": { "enum": [ "volt", "kilo_volt", "mega_volt", "pu" ] }, "current": { "enum": [ "ampere", "kilo_ampere", "mega_ampere", "pu" ] }, "angle": { "enum": [ "degree", "radian" ] }, "active_power": { "enum": [ "watt", "kilo_watt", "mega_watt", "pu" ] }, "reactive_power": { "enum": [ "volt_ampere_reactive", "mega_volt_ampre_reactive", "pu" ] }, "impedance": { "enum": [ "ohm", "pu" ] }, "resistance": { "enum": [ "ohm", "pu" ] }, "reactance": { "enum": [ "ohm", "pu" ] }, "conductance": { "enum": [ "siemens", "pu" ] }, "susceptance": { "enum": [ "siemens", "pu" ] }, "time": { "enum": [ "seconds", "minutes", "hours", "days", "months", "years" ] } } }, "operation_constraints": { "type": "object", "patternProperties": { "#/values/basic_values/grg_pointer": { "$ref": "#/network/network_assignments" } } }, "contingencies" : { "type": "object", "additionalProperties": true, "patternProperties": { ".*" :{ "oneOf": [ { "$ref": "#/contingencies/custom_contingency" }, { "$ref": "#/contingencies/traditional_contingency" } ] } }, "custom_contingency" : { "type" : "object", "required" : ["failure-list"], "additionalProperties": true, "properties" :{ "failure-list" : { "type": "array", "items" : { "type" : "string" }, "minItems" : 1 } } }, "traditional_contingency" : { "type" : "object", "required" : ["criteria", "component"], "additionalProperties": true, "properties" :{ "criteria" : { "type": "string"}, "component" : { "type": "string" } } } }, "groups" : { "type": "object", "additionalProperties": true, "patternProperties": { ".*" :{ "oneOf": [ { "$ref": "#/groups/zone" }, { "$ref": "#/groups/area" }, { "$ref": "#/groups/owner" } ] } }, "zone" : { "type" : "object", "required" : ["type", "name", "source_id", "component_ids"], "additionalProperties": true, "properties" :{ "type" : { "enum" : ["zone"]}, "name" : { "type" : "string"}, "source_id" : { "type" : "string"}, "component_ids" : { "type": "array", "items" : {"type" : "string"}, "minItems" : 1 } } }, "area" : { "type" : "object", "required" : ["type", "name", "ptol", "source_id", "component_ids"], "additionalProperties": true, "properties" :{ "type" : { "enum" : ["area"]}, "name" : { "type" : "string"}, "ptol" : {"$ref": "#/values/basic_values/extended_number"}, "source_id" : { "type" : "string"}, "component_ids" : { "type": "array", "items" : {"type" : "string"}, "minItems" : 1 } } }, "owner" : { "type" : "object", "required" : ["type", "name", "source_id", "component_ids"], "additionalProperties": true, "properties" :{ "type" : { "enum" : ["owner"]}, "name" : { "type" : "string"}, "source_id" : { "type" : "string"}, "component_ids" : { "type": "array", "items" : {"type" : "string"}, "minItems" : 1 } } } }, "network_time_series" :{ "type" : "object", "patternProperties" :{ ".*" :{ "type" : "object", "required" : ["step_duration", "steps", "step_duration_units"], "additionalProperties": true, "properties" :{ "step_duration" : {"$ref": "#/values/basic_values/extended_positive_number"}, "steps": {"$ref": "#/values/basic_values/extended_positive_number"}, "step_duration_units": {"enum": [ "microseconds", "milliseconds", "seconds", "minutes", "hours", "days", "months", "years" ]}, "assignments": { "type": "object", "patternProperties":{ ".*":{ "type": "array", "items":{ "oneOf": [ {"$ref": "#/values/basic_values/extended_number"}, {"enum": ["off", "on"]}] }, "minItems" : 1 } } }, "external_file" :{ "type": "object", "required" : ["file_name", "ids"], "additionalProperties": true, "properties" :{ "file_name" : { "type" : "string" }, "ids" : { "type": "array", "items": { "type": "string" }, "minItems" : 1 } } } } } }, "additionalProperties": true }, "time_series_constraints" :{ "type" : "object", "patternProperties" :{ ".*" :{ "type" : "object", "required" : ["units", "assignments"], "additionalProperties": true, "properties" :{ "units": { "type" : "string"}, "assignments": { "$ref": "#/network/network_assignments"} } } }, "additionalProperties": true }, "stochastic_time_series":{ "type" : "object", "patternProperties" :{ ".*" :{ "type" : "object", "required" : ["step_duration", "steps", "step_duration_units", "var", "scenario", "scenario_probability"], "additionalProperties": true, "properties" :{ "step_duration" : {"$ref": "#/values/basic_values/extended_positive_number"}, "steps": {"$ref": "#/values/basic_values/extended_positive_number"}, "step_duration_units": {"enum": [ "microseconds", "milliseconds", "seconds", "minutes", "hours", "days", "months", "years" ]}, "var" : { "type" : "string"}, "scenario": { "type": "object", "patternProperties":{ ".*":{ "type": "array", "items":{ "oneOf": [ {"$ref": "#/values/basic_values/extended_number"}, {"enum": ["off", "on"]}] }, "minItems" : 1 } } }, "scenario_probability": { "type": "object", "patternProperties":{ ".*":{ "type": "string" } } } } } } } }