Node and Edge data interfaces#

pydantic model gridai.interfaces.DistNodeAttrs#

Interface for distribution node attributes.

Example

>>> data = Data(x=[3], edge_index=[2, 2], edge_attr=[2])
>>> data.x[0]
    ['SOURCE', 0.0, 0.0, 0.0, 0.0, 'BC', 7.199557856794634]

Each node is presented as array with 7 elements in it.

  • 1st element: node_type

  • 2nd element: active_demand_kw

  • 3rd element: reactive_demand_kw

  • 4th element: active_generation_kw

  • 5th element: reactive_generation_kw

  • 6th element: phase_type

  • 7th element: kv_level

field active_demand_kw: float | None = 0.0#
field active_generation_kw: float | None = 0.0#
field kv_level: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=700)])] [Required]#
field node_type: <lambda>, return_type=PydanticUndefined, when_used=always)] = None#
field phase_type: <lambda>, return_type=PydanticUndefined, when_used=always)] [Required]#
field reactive_demand_kw: float | None = 0.0#
field reactive_generation_kw: float | None = 0.0#
validator compute_node_type  »  all fields#

Compute node type if not passed.

pydantic model gridai.interfaces.DistEdgeAttrs#

Interface for distribution edge attributes.

Example

>>> data = Data(x=[3], edge_index=[2, 2], edge_attr=[2])
>>> data.edge_attr[0]
    [25.0, 'TRANSFORMER', 0.0]

Each is represented as an array with three values.

  • 1st element: capacity_kva

  • 2nd element: edge_type

  • 3rd element: length_miles

field capacity_kva: Annotated[float, FieldInfo(annotation=NoneType, required=True)] [Required]#
field edge_type: <lambda>, return_type=PydanticUndefined, when_used=always)] [Required]#
field length_miles: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])] [Required]#