VeraGridEngine.Utils.Filtering package

Submodules

VeraGridEngine.Utils.Filtering.filtering module

class VeraGridEngine.Utils.Filtering.filtering.CompOps(value)[source]

Bases: Enum

Enumeration of filter oprations

ENDS = 'ends'
EQ = '='
GEQ = '>='
GT = '>'
LEQ = '<='
LIKE = 'like'
LT = '<'
NOT_EQ = '!='
NOT_LIKE = 'notlike'
STARTS = 'starts'
static argparse(s)[source]
Parameters:

s

Returns:

classmethod list()[source]
Returns:

class VeraGridEngine.Utils.Filtering.filtering.Filter[source]

Bases: object

apply_filter_op(obj_val: float | str, val: float | str) bool[source]

Apply the filter operation :param obj_val: value of the object :param val: value to compare :return: passes the filter?

element
element_args: List[str]
get_list_of_values() List[str][source]

Get a list of values to compare to :return: list of strings

is_negative() bool[source]

Is the filter operation negative? :return: is negative?

op
static try_numeric(value)[source]

Try to convert a value to a numeric type :param value: :return: float

value
class VeraGridEngine.Utils.Filtering.filtering.FilterOps(value)[source]

Bases: Enum

Enumeration of filter operations

AND = 'and'
OR = 'or'
static argparse(s)[source]
Parameters:

s

Returns:

classmethod list()[source]
Returns:

class VeraGridEngine.Utils.Filtering.filtering.FilterSubject(value)[source]

Bases: Enum

Enumeration of filter operations

COL = 'col'
COL_OBJECT = 'colobj'
IDX = 'idx'
IDX_OBJECT = 'idxobj'
VAL = 'val'
static argparse(s)[source]
Parameters:

s

Returns:

classmethod list()[source]
Returns:

class VeraGridEngine.Utils.Filtering.filtering.MasterFilter[source]

Bases: object

add(elm: Filter | FilterOps) None[source]

Add filter or filter operation to the stack :param elm: filter or filter operation

is_correct_size() bool[source]

Returns if the stack has the right size: an odd number :return:

size() int[source]

Get the size of the stack :return: int

stack: List[Filter | FilterOps]
VeraGridEngine.Utils.Filtering.filtering.has_operators(token: str) bool[source]

Check if there are operators and , or in the token :param token: any token :return: has operators?

VeraGridEngine.Utils.Filtering.filtering.is_numeric(obj: ndarray) bool[source]

Checks if the numpy array is numeric :param obj: :return:

VeraGridEngine.Utils.Filtering.filtering.is_odd(number: int)[source]

Check if number is odd :param number: :return:

VeraGridEngine.Utils.Filtering.filtering.parse_expression(expression: str) MasterFilter[source]

Parses the query expression :param expression: :return: MasterFilter

VeraGridEngine.Utils.Filtering.filtering.parse_single(token: str) Filter | None[source]

Parse single token, these are tokens that are composed on 3 parts: element, operation, comparison value :param token: Token :return: Filter or None if the token is not valid

VeraGridEngine.Utils.Filtering.objects_filtering module

class VeraGridEngine.Utils.Filtering.objects_filtering.FilterObjects(objects: List[Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement])[source]

Bases: object

FilterResultsTable class

filter(expression: str) None[source]

Parses the query expression :param expression: :return:

property filtered_indices
Returns:

property filtered_objects
Returns:

VeraGridEngine.Utils.Filtering.objects_filtering.compute_objects_masks(objects: List[Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement], flt: Filter) Tuple[ndarray[tuple[Any, ...], dtype[bool]], ndarray[tuple[Any, ...], dtype[bool]], ndarray[tuple[Any, ...], dtype[float64]] | ndarray[tuple[int, int], dtype[float64]]][source]

Give a list of objects, apply the single filter and return the filtering mask :param objects: List of VeraGrid objects :param flt: Filter :return: boolean array of the same length of objects

VeraGridEngine.Utils.Filtering.objects_filtering.object_extract(elm: Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement, args: List[str]) Any[source]

Extract value from object’s property chain :param elm: Device :param args: list of properties (i.e. bus.area.name as [β€˜bus’, β€˜area’, β€˜name’]) :return: value

VeraGridEngine.Utils.Filtering.results_table_filtering module

class VeraGridEngine.Utils.Filtering.results_table_filtering.FilterResultsTable(table: ResultsTable)[source]

Bases: object

FilterResultsTable class

apply() ResultsTable[source]
Returns:

master_filter
parse(expression: str)[source]

Parses the query expression :param expression: :return:

table
VeraGridEngine.Utils.Filtering.results_table_filtering.compute_results_table_masks(table: ResultsTable, flt: Filter) Tuple[ndarray[tuple[Any, ...], dtype[bool]], ndarray[tuple[Any, ...], dtype[bool]], ndarray[tuple[Any, ...], dtype[float64]] | ndarray[tuple[int, int], dtype[float64]]][source]
Parameters:
  • table

  • flt

Returns:

VeraGridEngine.Utils.Filtering.results_table_filtering.object_extract(elm: Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement, args: List[str]) Any[source]

Extract value from object’s property chain :param elm: Device :param args: list of properties (i.e. bus.area.name as [β€˜bus’, β€˜area’, β€˜name’]) :return: value

VeraGridEngine.Utils.Filtering.results_table_filtering.try_numeric(value)[source]

VeraGridEngine.Utils.Filtering.timeseries_filtering module

class VeraGridEngine.Utils.Filtering.timeseries_filtering.FilterTimeSeries(objects: List[Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement])[source]

Bases: object

FilterResultsTable class

apply() List[Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement][source]
Returns:

master_filter
objects
parse(expression: str)[source]

Parses the query expression :param expression: :return:

VeraGridEngine.Utils.Filtering.timeseries_filtering.compute_timeseries_masks(objects: List[Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement], flt: Filter) Tuple[ndarray[tuple[Any, ...], dtype[bool]], ndarray[tuple[Any, ...], dtype[bool]], ndarray[tuple[Any, ...], dtype[float64]] | ndarray[tuple[int, int], dtype[float64]]][source]

Give a list of objects, apply the single filter and return the filtering mask :param objects: List of VeraGrid objects :param flt: Filter :return: boolean array of the same length of objects

VeraGridEngine.Utils.Filtering.timeseries_filtering.object_extract(elm: Generator | Battery | Load | ExternalGrid | StaticGenerator | Shunt | ControllableShunt | CurrentInjection | Line | DcLine | Transformer2W | HvdcLine | VSC | UPFC | Winding | Switch | SeriesReactance | FluidNode | FluidPath | FluidP2x | FluidTurbine | FluidPump | Substation | Bus | BusBar | VoltageLevel | Country | Region | Community | Municipality | Area | Zone | Transformer3W | TransformerNW | OverheadLineType | Wire | TransformerType | EmissionGas | BranchGroup | LineLocations | LineLocation | ModellingAuthority | Facility | Fuel | Investment | InvestmentsGroup | Contingency | ContingencyGroup | RemedialAction | RemedialActionGroup | Technology | Owner | UndergroundLineType | SequenceLineType | RmsModelTemplate | EmtModelTemplate | FmuTemplate | RmsEvent | RmsEventsGroup | ShortCircuitEvent | IfMeasurement | ItMeasurement | QfMeasurement | PfMeasurement | QtMeasurement | PtMeasurement | QiMeasurement | PiMeasurement | VmMeasurement | VaMeasurement | PgMeasurement | QgMeasurement, args: List[str]) Any[source]

Extract value from object’s property chain :param elm: Device :param args: list of properties (i.e. bus.area.name as [β€˜bus’, β€˜area’, β€˜name’]) :return: value

Module contents