diff --git a/README.rst b/README.rst index 1a63729..be84769 100644 --- a/README.rst +++ b/README.rst @@ -80,7 +80,7 @@ The ESA team works hard to ensure ESA is well tested, and we strive for testing coverage data for ESA, using `coverage `__. -.. table:: ESA's testing coverage as of 2022-10-12 (Git commit: dffb9ef) +.. table:: ESA's testing coverage as of 2022-12-09 (Git commit: 9bf6a24) :widths: auto :align: left @@ -89,7 +89,7 @@ testing coverage data for ESA, using `coverage +=================+===================+=================+=================+====================+ | esa/__init__.py | 2 | 0 | 2 | 100 | +-----------------+-------------------+-----------------+-----------------+--------------------+ - | esa/saw.py | 1158 | 0 | 1158 | 100 | + | esa/saw.py | 1196 | 0 | 1196 | 100 | +-----------------+-------------------+-----------------+-----------------+--------------------+ License diff --git a/VERSION b/VERSION index 785cda8..8c9698a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.3 \ No newline at end of file +1.3.4 \ No newline at end of file diff --git a/docs/doctrees/common_issues.doctree b/docs/doctrees/common_issues.doctree index 9820076..8466b82 100644 --- a/docs/doctrees/common_issues.doctree +++ b/docs/doctrees/common_issues.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:63a9c7757da79c2a87ab202ae923cdf82bfa772d40fab79481244ca0db98fd6e -size 34698 +oid sha256:fdbd098d09b989499b8c3b3ba68f179a30d93c1aba91be9c882bdef17962cb5a +size 31177 diff --git a/docs/doctrees/environment.pickle b/docs/doctrees/environment.pickle index aa53e32..f00d2fc 100644 --- a/docs/doctrees/environment.pickle +++ b/docs/doctrees/environment.pickle @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21591ed98a53306630f5d030223fec588d82fbe04964d5ffa08c4025db73a309 -size 124160 +oid sha256:d696254fd01d3008d62583d234c38f57d3a092a19b19834f9e6359c9ba75b98f +size 121213 diff --git a/docs/doctrees/esa.doctree b/docs/doctrees/esa.doctree index abe9357..7819bc6 100644 --- a/docs/doctrees/esa.doctree +++ b/docs/doctrees/esa.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:082986449c0f64f156b35419ea0aa187d2f6cf081fdcb9bfb85db3755d40b20b -size 480501 +oid sha256:0e944e1959d89fa00c0cf3343791df6427e3856a396c8b6600a9c867e306e045 +size 461166 diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree index f20bb30..b4f353b 100644 --- a/docs/doctrees/index.doctree +++ b/docs/doctrees/index.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:657c2704f5af60f38119e006e6a0172643e6f0822c314b699871f13d5dfcc561 -size 8352 +oid sha256:4238498afe4b95a07aec0fdb1e77abc6f6d34eda633b3a834ba4fe845919b7bd +size 7942 diff --git a/docs/doctrees/installation.doctree b/docs/doctrees/installation.doctree index ac4e94d..3437048 100644 --- a/docs/doctrees/installation.doctree +++ b/docs/doctrees/installation.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30e4d32b275235ccdc4f990ead143d3e9430e350771d9a20b8300f0faaa9162e -size 35254 +oid sha256:348a0da178739bfae3366d275d353d9c4208ec86fe733ab81d053e7c349d55fc +size 32766 diff --git a/docs/doctrees/overview.doctree b/docs/doctrees/overview.doctree index 244618f..ba4d245 100644 --- a/docs/doctrees/overview.doctree +++ b/docs/doctrees/overview.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4ed7821c66ecb1e170e1474f00f420039ef671b7e4f0163e8edf9a7a77a70e2a -size 30665 +oid sha256:3a93e1e0308505e343f7273b18b5e67e3c53cb44f9f1f3d7b19a51980628266c +size 26850 diff --git a/docs/doctrees/quick_start.doctree b/docs/doctrees/quick_start.doctree index aecc657..e351516 100644 --- a/docs/doctrees/quick_start.doctree +++ b/docs/doctrees/quick_start.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f5dc5a31ed3f2424f31487129ab2e9bf37c65d5e4eb6a6414c43ef3dc1d9a633 -size 31554 +oid sha256:34bcab905fd46bc6d6499980c7e8684a52ae617c5396aa01f57fe59e3e3e43de +size 29778 diff --git a/docs/doctrees/snippets.doctree b/docs/doctrees/snippets.doctree index 412b2c8..5c46e4e 100644 --- a/docs/doctrees/snippets.doctree +++ b/docs/doctrees/snippets.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9df16c5ed1481070d5daf396233bd0840e292c0ca0902d710441e3cdbeac4ed9 -size 98236 +oid sha256:9722c5d2689277782eaba7ec1b0130fedf1d3735bea7afe9cedcfdc368bad288 +size 92291 diff --git a/docs/doctrees/welcome.doctree b/docs/doctrees/welcome.doctree index bcf3889..6d4bcfc 100644 --- a/docs/doctrees/welcome.doctree +++ b/docs/doctrees/welcome.doctree @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:839637dc427fd3589383810772b84e8ae58edd9819bc70b2e6e785bd1748cf95 -size 107412 +oid sha256:d2913055f296e593eb7893b7276a1071a7ead5dcc18bebe506a97d2d98efeb5d +size 102239 diff --git a/docs/html/.buildinfo b/docs/html/.buildinfo index 0309b49..277449a 100644 --- a/docs/html/.buildinfo +++ b/docs/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e15d26700d04c6a0e5beedc559d9479f +config: edb0aa8402c165f60523830e3419fa73 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/html/_static/basic.css b/docs/html/_static/basic.css index eeb0519..4e9a9f1 100644 --- a/docs/html/_static/basic.css +++ b/docs/html/_static/basic.css @@ -236,16 +236,6 @@ div.body p, div.body dd, div.body li, div.body blockquote { a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, @@ -334,11 +324,15 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; @@ -377,6 +371,8 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -384,6 +380,8 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { @@ -608,19 +606,26 @@ ol.simple p, ul.simple p { margin-bottom: 0; } -dl.footnote > dt, -dl.citation > dt { +aside.footnote > span, +div.citation > span { float: left; - margin-right: 0.5em; } - -dl.footnote > dd, -dl.citation > dd { +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { margin-bottom: 0em; } - -dl.footnote > dd:after, -dl.citation > dd:after { +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { content: ""; clear: both; } @@ -636,10 +641,6 @@ dl.field-list > dt { padding-left: 0.5em; padding-right: 5px; } -dl.field-list > dt:after { - content: ":"; -} - dl.field-list > dd { padding-left: 0.5em; diff --git a/docs/html/_static/documentation_options.js b/docs/html/_static/documentation_options.js index 69eeb02..4f540df 100644 --- a/docs/html/_static/documentation_options.js +++ b/docs/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.3.3', + VERSION: '1.3.4', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/html/common_issues.html b/docs/html/common_issues.html index f85ed66..d7b524a 100644 --- a/docs/html/common_issues.html +++ b/docs/html/common_issues.html @@ -2,7 +2,7 @@ - + Common Issues @@ -362,7 +362,7 @@

esa.saw.PowerWorldError: Access Violation © Copyright 2022, Zeyu Mao, Brandon Thayer, Yijing Liu.
- Created using
Sphinx 5.2.2 with Press Theme 0.8.0. + Created using Sphinx 5.3.0 with Press Theme 0.8.0. diff --git a/docs/html/esa.html b/docs/html/esa.html index fbca4f3..c4fab86 100644 --- a/docs/html/esa.html +++ b/docs/html/esa.html @@ -2,7 +2,7 @@ - + esa API Documentation @@ -244,13 +244,13 @@ here

-class esa.saw.SAW(FileName, early_bind=False, UIVisible=False, object_field_lookup=('bus', 'gen', 'load', 'shunt', 'branch'), CreateIfNotFound=False, pw_order=False)[source]
+class esa.saw.SAW(FileName, early_bind=False, UIVisible=False, object_field_lookup=('bus', 'gen', 'load', 'shunt', 'branch'), CreateIfNotFound=False, pw_order=False)[source]

Bases: object

A SimAuto Wrapper in Python

Initialize SimAuto wrapper. The case will be opened, and object fields given in object_field_lookup will be retrieved.

-
Parameters
+
Parameters:
  • FileName – Full file path to .pwb file to open. This will be passed to the SimAuto function OpenCase.

  • @@ -313,11 +313,11 @@
    -change_and_confirm_params_multiple_element(ObjectType: str, command_df: DataFrame) None[source]
    +change_and_confirm_params_multiple_element(ObjectType: str, command_df: DataFrame) None[source]

    Change parameters for multiple objects of the same type, and confirm that the change was respected by PowerWorld.

    -
    Parameters
    +
    Parameters:
    • ObjectType – The type of objects you are changing parameters for.

    • @@ -332,14 +332,14 @@ element.

    -
    Raises
    +
    Raises:

    CommandNotRespectedError – if PowerWorld does not actually change the parameters.

    -
    Raises
    +
    Raises:

    PowerWorldError: if PowerWorld reports an error.

    -
    Returns
    +
    Returns:

    None

    @@ -347,14 +347,14 @@
    -change_parameters_multiple_element_df(ObjectType: str, command_df: DataFrame) None[source]
    +change_parameters_multiple_element_df(ObjectType: str, command_df: DataFrame) None[source]

    Helper to call ChangeParametersMultipleElement, but uses a DataFrame to determine parameters and values. This method is lighter weight but perhaps “riskier” than the “change_and_confirm_params_multiple_element” method, as no effort is made to ensure PowerWorld respected the given command.

    -
    Parameters
    +
    Parameters:
    • ObjectType – The type of objects you are changing parameters for.

    • @@ -374,11 +374,11 @@
      -clean_df_or_series(obj: Union[DataFrame, Series], ObjectType: str) Union[DataFrame, Series][source]
      +clean_df_or_series(obj: Union[DataFrame, Series], ObjectType: str) Union[DataFrame, Series][source]

      Helper to cast data to the correct types, clean up strings, and sort DataFrame by BusNum (if applicable/present).

      -
      Parameters
      +
      Parameters:
      • obj – DataFrame or Series to clean up. It’s assumed that the object came more or less directly from placing results @@ -394,7 +394,7 @@ to. E.g. ‘gen’

      -
      Raises
      +
      Raises:
      • ValueError – if the DataFrame (Series) columns (index) are not valid fields for the given object type.

      • @@ -407,19 +407,19 @@
        -exit()[source]
        +exit()[source]

        Clean up for the PowerWorld COM object

        -get_key_fields_for_object_type(ObjectType: str) DataFrame[source]
        +get_key_fields_for_object_type(ObjectType: str) DataFrame[source]

        Helper function to get all key fields for an object type.

        -
        Parameters
        +
        Parameters:

        ObjectType – The type of the object to get key fields for.

        -
        Returns
        +
        Returns:

        DataFrame with the following columns: ‘internal_field_name’, ‘field_data_type’, ‘description’, and ‘display_name’. The DataFrame will be indexed based on the key @@ -434,15 +434,15 @@

        -get_key_field_list(ObjectType: str) List[str][source]
        +get_key_field_list(ObjectType: str) List[str][source]

        Convenience function to get a list of key fields for a given object type.

        -
        Parameters
        +
        Parameters:

        ObjectType – PowerWorld object type for which you would like a list of key fields. E.g. ‘gen’.

        -
        Returns
        +
        Returns:

        List of key fields for the given object type. E.g. [‘BusNum’, ‘GenID’]

        @@ -451,10 +451,10 @@
        -get_power_flow_results(ObjectType: str, additional_fields: Union[None, List[str]] = None) Union[None, DataFrame][source]
        +get_power_flow_results(ObjectType: str, additional_fields: Union[None, List[str]] = None) Union[None, DataFrame][source]

        Get the power flow results from SimAuto server.

        -
        Parameters
        +
        Parameters:
        • ObjectType – Object type to get results for. Valid types are the keys in the POWER_FLOW_FIELDS class attribute (case @@ -463,11 +463,11 @@ the default attributes in the POWER_FLOW_FIELDS.

        -
        Returns
        +
        Returns:

        Pandas DataFrame with the corresponding results, or None if the given ObjectType is not present in the model.

        -
        Raises
        +
        Raises:

        ValueError – if given ObjectType is invalid.

        @@ -475,16 +475,16 @@
        -get_version_and_builddate() tuple[source]
        +get_version_and_builddate() tuple[source]
        -identify_numeric_fields(ObjectType: str, fields: Union[List, ndarray]) ndarray[source]
        +identify_numeric_fields(ObjectType: str, fields: Union[List, ndarray]) ndarray[source]

        Helper which looks up PowerWorld internal field names to determine if they’re numeric (True) or not (False).

        -
        Parameters
        +
        Parameters:
        • ObjectType – Type of object for which we’re identifying numeric fields. E.g. “Branch” or “gen”

        • @@ -493,7 +493,7 @@ E.g. [‘BusNum’, ‘BusNum:1’, ‘LineCircuit’, ‘LineStatus’]

        -
        Returns
        +
        Returns:

        Numpy boolean array indicating which of the given fields are numeric. Going along with the example given for “fields”: np.array([True, True, False, False])

        @@ -503,13 +503,13 @@
        -set_simauto_property(property_name: str, property_value: Union[str, bool])[source]
        +set_simauto_property(property_name: str, property_value: Union[str, bool])[source]

        Set a SimAuto property, e.g. CreateIfNotFound. The currently supported properties are listed in the SAW.SIMAUTO_PROPERTIES class constant.

        PowerWorld Documentation

        -
        Parameters
        +
        Parameters:
        • property_name – Name of the property to set, e.g. UIVisible.

        • @@ -521,7 +521,7 @@
          -get_ybus(full: bool = False, file: Optional[str] = None) Union[ndarray, csr_matrix][source]
          +get_ybus(full: bool = False, file: Optional[str] = None) Union[ndarray, csr_matrix][source]

          Helper to obtain the YBus matrix from PowerWorld (in Matlab sparse matrix format) and then convert to scipy csr_matrix by default. :param full: Convert the csr_matrix to the numpy array (full matrix). @@ -530,7 +530,7 @@

          -get_branch_admittance()[source]
          +get_branch_admittance()[source]

          Helper function to get the branch admittance matrix, usually known as Yf and Yt. :returns: A Yf sparse matrix and a Yt sparse matrix

          @@ -538,14 +538,14 @@
          -get_shunt_admittance()[source]
          +get_shunt_admittance()[source]

          Get shunt admittance Ysh. :return: A Ysh sparse matrix

          -get_jacobian(full=False)[source]
          +get_jacobian(full=False)[source]

          Helper function to get the Jacobian matrix, by default return a scipy sparse matrix in the csr format :param full: Convert the csr_matrix to the numpy array (full matrix).

          @@ -553,13 +553,13 @@
          -to_graph(node: str = 'bus', geographic: bool = False, directed: bool = False, node_attr=None, edge_attr=None) Union[MultiGraph, MultiDiGraph][source]
          +to_graph(node: str = 'bus', geographic: bool = False, directed: bool = False, node_attr=None, edge_attr=None) Union[MultiGraph, MultiDiGraph][source]

          Generate the graph network model (NetworkX) from the topology. Currently supports the bus-level topology and the inter-substation level topology. Parallel lines (if exist) are preserved in the model.

          -
          Parameters
          +
          Parameters:
          • edge_attr – A valid field name(str) or iterable of field names that are used to retrieve values and add them to the @@ -578,7 +578,7 @@ ‘substation’ is supported.

          -
          Returns
          +
          Returns:

          A network graph

          @@ -586,13 +586,13 @@
          -get_lodf_matrix(precision: int = 3, method: str = 'DC', post: bool = True, raw: bool = False)[source]
          +get_lodf_matrix(precision: int = 3, method: str = 'DC', post: bool = True, raw: bool = False)[source]

          Obtain LODF matrix in numpy array or scipy sparse matrix. By default, it obtains the lodf matrix directly from PW. If size is larger than 1000, then precision will be applied to filter out small values and the result will be returned in scipy sparse matrix.

          -
          Parameters
          +
          Parameters:
          • precision – number of decimal to keep.

          • method – The linear method to be used for the LODF calculation. Default is DC. @@ -606,7 +606,7 @@ table shown in the PW GUI. Default is False.

          -
          Returns
          +
          Returns:

          The LODF matrix and a boolean vector to indicate which lines would cause islanding.

          @@ -615,10 +615,10 @@
          -get_incidence_matrix()[source]
          +get_incidence_matrix()[source]

          Obtain the incidence matrix.

          -
          Returns
          +
          Returns:

          Incidence matrix

          @@ -626,15 +626,15 @@
          -get_shift_factor_matrix(method: str = 'DC')[source]
          +get_shift_factor_matrix(method: str = 'DC')[source]

          Calculate the injection shift factor matrix using the auxiliary script CalculateShiftFactorsMultipleElement.

          -
          Parameters
          +
          Parameters:

          method – The linear method to be used for the calculation. The options are AC, DC or DCPS.

          -
          Returns
          +
          Returns:

          A dense float matrix in the numpy array format.

          @@ -642,12 +642,12 @@
          -get_shift_factor_matrix_fast()[source]
          +get_shift_factor_matrix_fast()[source]

          Calculate the injection shift factor matrix directly using the incidence matrix and the susceptance matrix. This method should be much faster than the PW script command for large cases.

          -
          Returns
          +
          Returns:

          A dense float matrix in the numpy array format.

          @@ -655,11 +655,11 @@
          -get_ptdf_matrix_fast()[source]
          +get_ptdf_matrix_fast()[source]

          Calculate the power transfer distribution factor natively. This method should be much faster than the PW script command for large cases.

          -
          Returns
          +
          Returns:

          A dense float matrix in the numpy array format.

          @@ -667,11 +667,11 @@
          -get_lodf_matrix_fast()[source]
          +get_lodf_matrix_fast()[source]

          Calculate the line outage distribution factor natively. This method should be much faster than the PW script command for large cases.

          -
          Returns
          +
          Returns:

          A dense float matrix in the numpy array format.

          @@ -679,10 +679,10 @@
          -fast_n1_test()[source]
          +fast_n1_test()[source]

          A pure LODF-based fast N-1 contingency analysis implementation.

          -
          Returns
          +
          Returns:

          A boolean value to indicate whether the system is N-1 secure.

          @@ -690,19 +690,19 @@
          -fast_n2_islanding_detection()[source]
          +fast_n2_islanding_detection()[source]

          Quickly identify the N-2 islanding CTGs using LODF

          returns: A tuple with the number of islanding CTGs and the islanding matrix

          -change_to_temperature(T: Union[int, float, ndarray], R25=7.283, R75=8.688)[source]
          +change_to_temperature(T: Union[int, float, ndarray], R25=7.283, R75=8.688)[source]

          Change line resistance according to temperature. The default coefficients are from IEEE Std 738-2012. Note: The original case has to be set for 25 degree Celsius.

          -
          Parameters
          +
          Parameters:
          • T – Target temperature. If it is a single int or float, then a uniform temperature will be assigned to all the lines; If it is a numpy array, then you need to pass a @@ -716,18 +716,18 @@

            -run_contingency_analysis(option: str = 'N-1', validate: bool = False)[source]
            +run_contingency_analysis(option: str = 'N-1', validate: bool = False)[source]

            ESA implementation of fast N-1 and N-2 contingency analysis. The case is expected to have a valid power flow state. Run SolvePowerFlow first if you are not sure.

            -
            Parameters
            +
            Parameters:
            • option – Choose between N-1 and N-2 mode

            • validate – Use PW internal CA to validate the result. Default is False.

            -
            Returns
            +
            Returns:

            A tuple of system security status (bool) and a matrix showing the result of contingency analysis (if exist)

            @@ -736,7 +736,7 @@
            -run_robustness_analysis()[source]
            +run_robustness_analysis()[source]

            Compute the metric RCF to quantify the robustness of power grids against cascading failures. The RCF metric takes the operational states, the branch’s capacities and the topological @@ -746,7 +746,7 @@ “An entropy-based metric to quantify the robustness of power grids against cascading failures.” Safety science 59 (2013): 126-134.

            -
            Returns
            +
            Returns:

            The RCF value.

            @@ -754,7 +754,7 @@
            -run_ecological_analysis(target: str = 'MW', split_generator: bool = True)[source]
            +run_ecological_analysis(target: str = 'MW', split_generator: bool = True)[source]

            This method is leveraging applied ecological network analysis to quantify the varity of robustness of the power system.

            Reference: @@ -764,7 +764,7 @@ [2] Panyam, V., Huang, H., Davis, K., & Layton, A. (2019). An ecosystem perspective for the design of sustainable power systems. Procedia Cirp, 80, 269-274.

            -
            Parameters
            +
            Parameters:
            • target – the real, reactive, and apparent power over the system. The default value is MW, which is the real power. Users can change to MVR, which is the reactive power; or @@ -774,7 +774,7 @@ generator.

            -
            Results
            +
            Results:

            it is a list of ecological metrics, including the Ecological Robustness (Reco), the Ascendancy (ASC), the Development Capacity (DC), the Cycled Throughflow (tstc), the Finn Cycling Index (CI) and the Total System Overhead (TSO)

            @@ -784,10 +784,10 @@
            -n1_fast(c1_isl, count, lodf, f, lim)[source]
            +n1_fast(c1_isl, count, lodf, f, lim)[source]

            A modified fast N-1 method.

            -
            Parameters
            +
            Parameters:
            • c1_isl – Array of islanding lines

            • count – Number of lines

            • @@ -796,7 +796,7 @@
            • lim – Array of line limits

            -
            Returns
            +
            Returns:

            A tuple of N-1 status (bool) and the N-1 result (if exist)

            @@ -804,17 +804,17 @@
            -n1_protect(margins, lines, lim)[source]
            +n1_protect(margins, lines, lim)[source]

            Adjust line limits to eliminate N-1 contingencies.

            -
            Parameters
            +
            Parameters:
            • margins – Array of line loading margins.

            • lines – Array of number of line overloading contingencies.

            • lim – Array of line limits.

            -
            Return lim
            +
            Return lim:

            Array of line limits after adjustment.

            @@ -822,10 +822,10 @@
            -n2_fast(c1_isl, count, lodf, f, lim)[source]
            +n2_fast(c1_isl, count, lodf, f, lim)[source]

            A modified fast N-2 method.

            -
            Parameters
            +
            Parameters:
            • c1_isl – Array of islanding lines

            • count – Number of lines

            • @@ -834,7 +834,7 @@
            • lim – Array of line limits

            -
            Returns
            +
            Returns:

            A tuple of N-2 status (bool) and the N-2 result (if exist)

            @@ -842,10 +842,10 @@
            -n2_bruteforce(count, A0, lodf, lim, f)[source]
            +n2_bruteforce(count, A0, lodf, lim, f)[source]

            Bruteforce for fast N-2 method

            -
            Parameters
            +
            Parameters:
            • count – number of branches

            • A0 – filtered contingencies

            • @@ -854,7 +854,7 @@
            • f – branch flow

            -
            Returns
            +
            Returns:

            Security status and detailed results

            @@ -862,17 +862,17 @@
            -ctg_autoinsert(object_type: str, options: Union[None, dict] = None)[source]
            +ctg_autoinsert(object_type: str, options: Union[None, dict] = None)[source]

            Auto insert contingencies.

            -
            Parameters
            +
            Parameters:
            • object_type – Object type, e.g. branch.

            • options – Optional. Pass a custom dictionary if you need to modify the Ctg_AutoInsert_Options.

            -
            Returns
            +
            Returns:

            List of contingencies.

            @@ -880,10 +880,10 @@
            -ctg_solveall()[source]
            +ctg_solveall()[source]

            Solve all of the contingencies that are not marked to be skipped.

            -
            Returns
            +
            Returns:

            List of results.

            @@ -891,10 +891,10 @@
            -update_ui() None[source]
            +update_ui() None[source]

            Re-render the PowerWorld user interface (UI).

            -
            Returns
            +
            Returns:

            None

            @@ -902,7 +902,7 @@
            -ChangeParameters(ObjectType: str, ParamList: list, Values: list) None[source]
            +ChangeParameters(ObjectType: str, ParamList: list, Values: list) None[source]

            The ChangeParameters function has been replaced by the ChangeParametersSingleElement function. ChangeParameters can still be called as before, but will now just automatically @@ -921,7 +921,7 @@ ChangeParameters calls.

            PowerWorld documentation

            -
            Parameters
            +
            Parameters:
            • ObjectType – The type of object you are changing parameters for.

            • @@ -938,11 +938,11 @@
              -ChangeParametersSingleElement(ObjectType: str, ParamList: list, Values: list) None[source]
              +ChangeParametersSingleElement(ObjectType: str, ParamList: list, Values: list) None[source]

              Set a list of parameters for a single object.

              PowerWorld Documentation

              -
              Parameters
              +
              Parameters:
              • ObjectType – The type of object you are changing parameters for.

              • @@ -959,11 +959,11 @@
                -ChangeParametersMultipleElement(ObjectType: str, ParamList: list, ValueList: list) None[source]
                +ChangeParametersMultipleElement(ObjectType: str, ParamList: list, ValueList: list) None[source]

                Set parameters for multiple objects of the same type.

                PowerWorld Documentation

                -
                Parameters
                +
                Parameters:
                • ObjectType – The type of object you are changing parameters for.

                • @@ -978,11 +978,11 @@ should correspond 1:1 with ParamList.

                -
                Returns
                +
                Returns:

                Result from calling SimAuto, which should always simply be None.

                -
                Raises
                +
                Raises:

                PowerWorldError – if PowerWorld reports an error.

                @@ -990,7 +990,7 @@
                -ChangeParametersMultipleElementFlatInput(ObjectType: str, ParamList: list, NoOfObjects: int, ValueList: list) None[source]
                +ChangeParametersMultipleElementFlatInput(ObjectType: str, ParamList: list, NoOfObjects: int, ValueList: list) None[source]

                The ChangeParametersMultipleElementFlatInput function allows you to set parameters for multiple objects of the same type in a case loaded into the Simulator Automation Server. This @@ -1002,7 +1002,7 @@ as it’s simply easier to use.

                PowerWorld documentation

                -
                Parameters
                +
                Parameters:
                • ObjectType – The type of object you are changing parameters for.

                • @@ -1022,7 +1022,7 @@ should correspond 1:1 with ParamList.

                -
                Returns
                +
                Returns:

                Result from calling SimAuto, which should always simply be None.

                @@ -1031,25 +1031,25 @@
                -CloseCase()[source]
                +CloseCase()[source]

                Closes case without saving changes.

                PowerWorld documentation

                -GetCaseHeader(filename: Optional[str] = None) Tuple[str][source]
                +GetCaseHeader(filename: Optional[str] = None) Tuple[str][source]

                The GetCaseHeader function is used to extract the case header information from the file specified. A tuple of strings containing the contents of the case header or description is returned.

                PowerWorld documentation

                -
                Parameters
                +
                Parameters:

                filename – The name of the file you wish to extract the header information from.

                -
                Returns
                +
                Returns:

                A tuple of strings containing the contents of the case header or description.

                @@ -1058,10 +1058,10 @@
                -GetFieldList(ObjectType: str, copy=False) DataFrame[source]
                +GetFieldList(ObjectType: str, copy=False) DataFrame[source]

                Get all fields associated with a given ObjectType.

                -
                Parameters
                +
                Parameters:
                • ObjectType – The type of object for which the fields are requested.

                • @@ -1069,7 +1069,7 @@ You may want a copy if you plan to make any modifications.

                -
                Returns
                +
                Returns:

                Pandas DataFrame with columns from either SAW.FIELD_LIST_COLUMNS or SAW.FIELD_LIST_COLUMNS_OLD, depending on the version of PowerWorld Simulator being used.

                @@ -1080,11 +1080,11 @@
                -GetParametersSingleElement(ObjectType: str, ParamList: list, Values: list) Series[source]
                +GetParametersSingleElement(ObjectType: str, ParamList: list, Values: list) Series[source]

                Request values of specified fields for a particular object.

                PowerWorld Documentation

                -
                Parameters
                +
                Parameters:
                • ObjectType – The type of object you’re retrieving parameters for.

                • @@ -1097,12 +1097,12 @@ and the remaining values should be set to 0.

                -
                Returns
                +
                Returns:

                Pandas Series indexed by the given ParamList. This Series will be cleaned by clean_df_or_series, so data will be of the appropriate type and strings are cleaned up.

                -
                Raises
                +
                Raises:
                • PowerWorldError – if the object cannot be found.

                • ValueError – if any given element in ParamList is not @@ -1116,12 +1116,12 @@

                  -GetParametersMultipleElement(ObjectType: str, ParamList: list, FilterName: str = '') Optional[DataFrame][source]
                  +GetParametersMultipleElement(ObjectType: str, ParamList: list, FilterName: str = '') Optional[DataFrame][source]

                  Request values of specified fields for a set of objects in the load flow case.

                  PowerWorld Documentation

                  -
                  Parameters
                  +
                  Parameters:
                  • ObjectType – Type of object to get parameters for.

                  • ParamList – List of variables to obtain for the given @@ -1135,12 +1135,12 @@ load flow case.

                  -
                  Returns
                  +
                  Returns:

                  Pandas DataFrame with columns matching the given ParamList. If the provided ObjectType is not present in the case, None will be returned.

                  -
                  Raises
                  +
                  Raises:
                  • PowerWorldError – if PowerWorld reports an error.

                  • ValueError – if any parameters given in the ParamList @@ -1156,7 +1156,7 @@

                    -GetParametersMultipleElementFlatOutput(ObjectType: str, ParamList: list, FilterName: str = '') Union[None, Tuple[str]][source]
                    +GetParametersMultipleElementFlatOutput(ObjectType: str, ParamList: list, FilterName: str = '') Union[None, Tuple[str]][source]

                    This function operates the same as the GetParametersMultipleElement function, only with one notable difference. The values returned as the output of the function @@ -1169,7 +1169,7 @@ be directly returned. This will show you just how useful ESA really is!

                    -
                    Parameters
                    +
                    Parameters:
                    • ObjectType – Type of object to get parameters for.

                    • ParamList – List of variables to obtain for the given @@ -1183,7 +1183,7 @@ load flow case.

                    -
                    Return:The format of the output array is the following
                    +
                    Return:The format of the output array is the following:

                    [ NumberOfObjectsReturned, NumberOfFieldsPerObject, Ob1Fld1, Ob1Fld2, …, Ob(n)Fld(m-1), Ob(n)Fld(m)] @@ -1202,13 +1202,13 @@

                    -GetParameters(ObjectType: str, ParamList: list, Values: list) Series[source]
                    +GetParameters(ObjectType: str, ParamList: list, Values: list) Series[source]

                    This function is maintained in versions of Simulator later than version 9 for compatibility with Simulator version 9. This function will call the GetParametersSingleElement implicitly.

                    PowerWorld Documentation

                    -
                    Parameters
                    +
                    Parameters:
                    • ObjectType – The type of object you’re retrieving parameters for.

                    • @@ -1221,12 +1221,12 @@ and the remaining values should be set to 0.

                    -
                    Returns
                    +
                    Returns:

                    Pandas Series indexed by the given ParamList. This Series will be cleaned by clean_df_or_series, so data will be of the appropriate type and strings are cleaned up.

                    -
                    Raises
                    +
                    Raises:
                    • PowerWorldError – if the object cannot be found.

                    • ValueError – if any given element in ParamList is not @@ -1240,14 +1240,14 @@

                      -GetSpecificFieldList(ObjectType: str, FieldList: List[str]) DataFrame[source]
                      +GetSpecificFieldList(ObjectType: str, FieldList: List[str]) DataFrame[source]

                      The GetSpecificFieldList function is used to return identifying information about specific fields used by an object type. Note that in many cases simply using the GetFieldList method is simpler and gives more information.

                      PowerWorld Documentation

                      -
                      Parameters
                      +
                      Parameters:
                      • ObjectType – The type of object for which fields are requested.

                      • @@ -1262,7 +1262,7 @@ of specific variablenames.

                      -
                      Returns
                      +
                      Returns:

                      A Pandas DataFrame with columns given by the class constant SPECIFIC_FIELD_LIST_COLUMNS. There will be a row for each element in the FieldList input unless ‘ALL’ is @@ -1274,13 +1274,13 @@

                      -GetSpecificFieldMaxNum(ObjectType: str, Field: str) int[source]
                      +GetSpecificFieldMaxNum(ObjectType: str, Field: str) int[source]

                      The GetSpecificFieldMaxNum function is used to return the maximum number of a fields that use a particular variablename for a specific object type.

                      PowerWorld Documentation

                      -
                      Parameters
                      +
                      Parameters:
                      • ObjectType – The type of object for which information is being requested.

                      • @@ -1292,7 +1292,7 @@ can be included when identifying a field.

                      -
                      Returns
                      +
                      Returns:

                      An integer that specifies the maximum number of fields that use the same variablename for a particular object type. Fields are identified in the format variablename:location @@ -1308,12 +1308,12 @@

                      -ListOfDevices(ObjType: str, FilterName='') Union[None, DataFrame][source]
                      +ListOfDevices(ObjType: str, FilterName='') Union[None, DataFrame][source]

                      Request a list of objects and their key fields. This function is general, and you may be better off running more specific methods like “get_gens”

                      -
                      Parameters
                      +
                      Parameters:
                      • ObjType – The type of object for which you are acquiring the list of devices. E.g. “Shunt,” “Gen,” “Bus,” “Branch,” @@ -1325,7 +1325,7 @@ returning all objects in the case of type ObjectType.

                      -
                      Returns
                      +
                      Returns:

                      None if there are no objects of the given type in the model. Otherwise, a DataFrame of key fields will be returned. There will be a row for each object of the given @@ -1337,7 +1337,7 @@

                      -ListOfDevicesAsVariantStrings(ObjType: str, FilterName='') tuple[source]
                      +ListOfDevicesAsVariantStrings(ObjType: str, FilterName='') tuple[source]

                      While this method is implemented, you are almost certainly better off using ListOfDevices instead. Since this method isn’t particularly useful, no type casting will be performed on the @@ -1356,7 +1356,7 @@ same manner. This solved some compatibility issues with some software languages.

                      -
                      Parameters
                      +
                      Parameters:
                      • ObjType – The type of object for which you are acquiring the list of devices.

                      • @@ -1367,7 +1367,7 @@ returning all objects in the case of type ObjType.

                      -
                      Returns
                      +
                      Returns:

                      Tuple of tuples as documented by PowerWorld for the ListOfDevices function.

                      @@ -1376,7 +1376,7 @@
                      -ListOfDevicesFlatOutput(ObjType: str, FilterName='') tuple[source]
                      +ListOfDevicesFlatOutput(ObjType: str, FilterName='') tuple[source]

                      While this method is implemented, you are almost certainly better off using ListOfDevices instead. Since this method isn’t particularly useful, no type casting, data type changing, or @@ -1395,7 +1395,7 @@ have other key fields as well.

                      PowerWorld documentation:

                      -
                      Parameters
                      +
                      Parameters:
                      • ObjType – The type of object for which you are acquiring the list of devices.

                      • @@ -1406,7 +1406,7 @@ returning all objects in the case of type ObjType.

                      -
                      Returns
                      +
                      Returns:

                      List in the following format: [NumberOfObjectsReturned, NumberOfFieldsPerObject, Ob1Fld1, Ob1Fld2, …, Ob(n)Fld(m-1), Ob(n)Fld(m)]. @@ -1424,7 +1424,7 @@

                      -LoadState() None[source]
                      +LoadState() None[source]

                      LoadState is used to load the system state previously saved with the SaveState function. Note that LoadState will not properly function if the system topology has changed due to the @@ -1434,15 +1434,15 @@

                      -OpenCase(FileName: Optional[str] = None) None[source]
                      +OpenCase(FileName: Optional[str] = None) None[source]

                      Load PowerWorld case into the automation server.

                      -
                      Parameters
                      +
                      Parameters:

                      FileName – Full path to the case file to be loaded. If None, this method will attempt to use the last FileName used to open a case.

                      -
                      Raises
                      +
                      Raises:

                      TypeError – if FileName is None, and OpenCase has never been called before.

                      @@ -1452,7 +1452,7 @@
                      -OpenCaseType(FileName: str, FileType: str, Options: Optional[Union[list, str]] = None) None[source]
                      +OpenCaseType(FileName: str, FileType: str, Options: Optional[Union[list, str]] = None) None[source]
                      The OpenCaseType function will load a PowerWorld Simulator load
                      flow file into the Simulator Automation Server. This is similar

                      to opening a file using the File > Open Case menu option in @@ -1463,7 +1463,7 @@

                      PowerWorld documentation

                      -
                      Parameters
                      +
                      Parameters:
                      • FileName – Full path to the case file to be loaded. If None, this method will attempt to use the last FileName @@ -1483,13 +1483,13 @@

                        -ProcessAuxFile(FileName)[source]
                        +ProcessAuxFile(FileName)[source]

                        Load a PowerWorld Auxiliary file into SimAuto. This allows you to create a text file (conforming to the PowerWorld Auxiliary file format) that can list a set of data changes and other information for making batch changes in Simulator.

                        -
                        Parameters
                        +
                        Parameters:

                        FileName – Name of auxiliary file to load. Should be a full path.

                        @@ -1499,20 +1499,36 @@
                        -RunScriptCommand(Statements)[source]
                        +RunScriptCommand(Statements)[source]

                        Execute a list of script statements. The script actions are those included in the script sections of auxiliary files.

                        PowerWorld documentation

                        Auxiliary File Format

                        +
                        +
                        +RunScriptCommand2(Statements: str, StatusMessage: str)[source]
                        +

                        Execute a list of script statements. The script actions are +those included in the script sections of auxiliary files. +This function differs from RunScriptCommand in that it allows +informational messages to be returned from the script execution +when the execution is successful.

                        +

                        Output is a boolean value indicating whether the script command +was succesful or not. If False is returned, the error message will +be returned as defined in Status message input parameter. If True, +the Status message will be empty.

                        +

                        PowerWorld documentation

                        +

                        Auxiliary File Format

                        +
                        +
                        -SaveCase(FileName=None, FileType='PWB', Overwrite=True)[source]
                        +SaveCase(FileName=None, FileType='PWB', Overwrite=True)[source]

                        Save the current case to file.

                        PowerWorld documentation

                        -
                        Parameters
                        +
                        Parameters:
                        • FileName – The name of the file you wish to save as, including file path. If None, the original path which was @@ -1544,7 +1560,7 @@

                          -SaveState() None[source]
                          +SaveState() None[source]

                          SaveState is used to save the current state of the power system. This can be useful if you are interested in comparing various cases, much as the “Difference Flows” feature works in @@ -1554,7 +1570,7 @@

                          -SendToExcel(ObjectType: str, FilterName: str, FieldList) None[source]
                          +SendToExcel(ObjectType: str, FilterName: str, FieldList) None[source]

                          Send data from SimAuto to an Excel spreadsheet. While ESA provides this function, we strongly recommend you to use the GetParametersMultipleElement function and save the DataFrame @@ -1564,7 +1580,7 @@ manually save it.

                          PowerWorld documentation

                          -
                          Parameters
                          +
                          Parameters:
                          • ObjectType – A String describing the type of object for which you are requesting data.

                          • @@ -1584,7 +1600,7 @@ fields when exporting the data.

                          -
                          Returns
                          +
                          Returns:

                          None

                          @@ -1592,7 +1608,7 @@
                          -TSGetContingencyResults(CtgName: str, ObjFieldList: List[str], StartTime: Union[None, int, float] = None, StopTime: Union[None, int, float] = None) Union[Tuple[None, None], Tuple[DataFrame, DataFrame]][source]
                          +TSGetContingencyResults(CtgName: str, ObjFieldList: List[str], StartTime: Union[None, int, float] = None, StopTime: Union[None, int, float] = None) Union[Tuple[None, None], Tuple[DataFrame, DataFrame]][source]

                          WARNING: This function should only be used after the simulation is run (for example, use this after running script commands TSSolveAll or TSSolve).

                          @@ -1613,7 +1629,7 @@ been tested as extensively as we would prefer. If your case/code has issues with this method, please file an issue on GitHub.

                          -
                          Parameters
                          +
                          Parameters:
                          • CtgName – The contingency to obtain results from. Only one contingency be obtained at a time.

                          • @@ -1629,7 +1645,7 @@ simulation is used.

                          -
                          Returns
                          +
                          Returns:

                          A tuple containing two DataFrames, “meta” and “data.” Alternatively, if the given CtgName does not exist, a tuple of (None, None) will be returned. @@ -1661,7 +1677,7 @@

                          -WriteAuxFile(FileName: str, FilterName: str, ObjectType: str, FieldList: Union[list, str], ToAppend=True)[source]
                          +WriteAuxFile(FileName: str, FilterName: str, ObjectType: str, FieldList: Union[list, str], ToAppend=True)[source]

                          The WriteAuxFile function can be used to write data from the case in the Simulator Automation Server to a PowerWorld Auxiliary file. The name of an advanced filter which was @@ -1674,10 +1690,10 @@

                          -SolvePowerFlow(SolMethod: str = 'RECTNEWT') None[source]
                          +SolvePowerFlow(SolMethod: str = 'RECTNEWT') None[source]

                          Run the SolvePowerFlow command.

                          -
                          Parameters
                          +
                          Parameters:

                          SolMethod – Solution method to be used for the Power Flow calculation. Case insensitive. Valid options are: ‘RECTNEWT’ - Rectangular Newton-Raphson @@ -1695,11 +1711,11 @@

                          -OpenOneLine(filename: str, view: str = '', FullScreen: str = 'NO', ShowFull: str = 'NO', LinkMethod: str = 'LABELS', Left: float = 0.0, Top: float = 0.0, Width: float = 0.0, Height: float = 0.0) None[source]
                          +OpenOneLine(filename: str, view: str = '', FullScreen: str = 'NO', ShowFull: str = 'NO', LinkMethod: str = 'LABELS', Left: float = 0.0, Top: float = 0.0, Width: float = 0.0, Height: float = 0.0) None[source]

                          Use this function to open a oneline diagram. This function can be used to associate onelines with a PWB file.

                          -
                          Parameters
                          +
                          Parameters:
                          • filename – The file name of the oneline diagram to open.

                          • view – The view name that should be opened. Pass an empty @@ -1728,7 +1744,7 @@ of the Simulator/Retriever window height.

                          -
                          Returns
                          +
                          Returns:

                          None

                          @@ -1736,15 +1752,15 @@
                          -CloseOneline(OnelineName: str = '') None[source]
                          +CloseOneline(OnelineName: str = '') None[source]

                          Use this action to close an open oneline diagram without saving it. If the name is omitted, the last focused oneline diagram will be closed.

                          -
                          Parameters
                          +
                          Parameters:

                          OnelineName – The name of the oneline diagram to close.

                          -
                          Returns
                          +
                          Returns:

                          None

                          @@ -1808,14 +1824,28 @@ set_simauto_property method.

                          +
                          +
                          +property ProgramInformation: bool
                          +

                          Get the Program Information property of the Simulator Automation +Server which returns information about the version of PowerWorld +Simulator run by the current instance of SimAuto. This property +returns a variant array of variant arrays. The order of each array +within the main array is subject to change and additional arrays +may be added in the future. The first entry of each array will +indicate what type of information is in the array. The order of +entries within each array will not change. Set this property through +the set_simauto_property method.

                          +
                          +
                          -esa.saw.df_to_aux(fp, df, object_name: str)[source]
                          +esa.saw.df_to_aux(fp, df, object_name: str)[source]

                          Convert a dataframe to PW aux/axd data section.

                          -
                          Parameters
                          +
                          Parameters:
                          • fp – file handler

                          • df – dataframe

                          • @@ -1827,16 +1857,16 @@
                            -esa.saw.convert_to_windows_path(p)[source]
                            +esa.saw.convert_to_windows_path(p)[source]

                            Given a path, p, convert it to a Windows path.

                            -esa.saw.convert_list_to_variant(list_in: list) VARIANT[source]
                            +esa.saw.convert_list_to_variant(list_in: list) VARIANT[source]

                            Given a list, convert to a variant array.

                            -
                            Parameters
                            +
                            Parameters:

                            list_in – Simple one-dimensional Python list, e.g. [1, ‘a’, 7]

                            @@ -1844,10 +1874,10 @@
                            -esa.saw.convert_nested_list_to_variant(list_in: list) List[VARIANT][source]
                            +esa.saw.convert_nested_list_to_variant(list_in: list) List[VARIANT][source]

                            Given a list of lists, convert to a variant array.

                            -
                            Parameters
                            +
                            Parameters:

                            list_in – List of lists, e.g. [[1, ‘1’], [1, ‘2’], [2, ‘1’]]

                            @@ -1855,21 +1885,21 @@
                            -exception esa.saw.Error[source]
                            +exception esa.saw.Error[source]

                            Bases: Exception

                            Base class for exceptions in this module.

                            -exception esa.saw.PowerWorldError[source]
                            +exception esa.saw.PowerWorldError[source]

                            Bases: Error

                            Raised when PowerWorld reports an error following a SimAuto call.

                            -exception esa.saw.COMError[source]
                            +exception esa.saw.COMError[source]

                            Bases: Error

                            Raised when attempting to call a SimAuto function results in an error.

                            @@ -1877,7 +1907,7 @@
                            -exception esa.saw.CommandNotRespectedError[source]
                            +exception esa.saw.CommandNotRespectedError[source]

                            Bases: Error

                            Raised if a command sent into PowerWorld is not respected, but PowerWorld itself does not raise an error. This exception should @@ -1902,7 +1932,7 @@

                          diff --git a/docs/html/genindex.html b/docs/html/genindex.html index a9a8bfc..ad96cf6 100644 --- a/docs/html/genindex.html +++ b/docs/html/genindex.html @@ -445,6 +445,8 @@

                          P

                        • ProcessAuxFile() (esa.saw.SAW method)
                        • ProcessID (esa.saw.SAW property) +
                        • +
                        • ProgramInformation (esa.saw.SAW property)
                        @@ -456,13 +458,15 @@

                        R

                      • run_contingency_analysis() (esa.saw.SAW method)
                      • -
                      - + @@ -533,7 +537,7 @@

                      W

                    diff --git a/docs/html/index.html b/docs/html/index.html index 03ed454..26fc32b 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -2,7 +2,7 @@ - + Easy SimAuto (ESA) Documentation @@ -284,7 +284,7 @@

                    Indices and tables © Copyright 2022, Zeyu Mao, Brandon Thayer, Yijing Liu.
                    - Created using
                    Sphinx 5.2.2 with Press Theme 0.8.0. + Created using Sphinx 5.3.0 with Press Theme 0.8.0. diff --git a/docs/html/installation.html b/docs/html/installation.html index 9aa375f..9b353e2 100644 --- a/docs/html/installation.html +++ b/docs/html/installation.html @@ -2,7 +2,7 @@ - + Installing ESA @@ -442,7 +442,7 @@

                    pywin32 Post-Installation © Copyright 2022, Zeyu Mao, Brandon Thayer, Yijing Liu.
                    - Created using
                    Sphinx 5.2.2 with Press Theme 0.8.0. + Created using Sphinx 5.3.0 with Press Theme 0.8.0. diff --git a/docs/html/objects.inv b/docs/html/objects.inv index bcd00ab..cb4bcec 100644 Binary files a/docs/html/objects.inv and b/docs/html/objects.inv differ diff --git a/docs/html/overview.html b/docs/html/overview.html index 483cbb1..ee7be4f 100644 --- a/docs/html/overview.html +++ b/docs/html/overview.html @@ -2,7 +2,7 @@ - + ESA Overview @@ -317,8 +317,8 @@

                    Data Types

                    The ESA team strives to write good tests with 100% coverage. The table below provides the latest test coverage data for ESA.

                    - - +
                    ESA’s testing coverage as of 2022-10-12 (Git commit: dffb9ef)
                    + @@ -335,9 +335,9 @@

                    Testing Coverage

                    - + - + @@ -366,7 +366,7 @@

                    Contributing © Copyright 2022, Zeyu Mao, Brandon Thayer, Yijing Liu.
                    - Created using
                    Sphinx 5.2.2 with Press Theme 0.8.0. + Created using Sphinx 5.3.0 with Press Theme 0.8.0. diff --git a/docs/html/py-modindex.html b/docs/html/py-modindex.html index 60f5798..2548365 100644 --- a/docs/html/py-modindex.html +++ b/docs/html/py-modindex.html @@ -225,7 +225,7 @@

                    Python Module Index

                    diff --git a/docs/html/quick_start.html b/docs/html/quick_start.html index d09ff61..6a20621 100644 --- a/docs/html/quick_start.html +++ b/docs/html/quick_start.html @@ -2,7 +2,7 @@ - + Quick Start @@ -455,7 +455,7 @@ diff --git a/docs/html/search.html b/docs/html/search.html index 1aac4c3..a05612d 100644 --- a/docs/html/search.html +++ b/docs/html/search.html @@ -228,7 +228,7 @@

                    Search

                    diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index d573d04..47815e1 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["common_issues", "esa", "index", "installation", "overview", "quick_start", "snippets", "welcome"], "filenames": ["common_issues.rst", "esa.rst", "index.rst", "installation.rst", "overview.rst", "quick_start.rst", "snippets.rst", "welcome.rst"], "titles": ["Common Issues", "esa API Documentation", "Easy SimAuto (ESA) Documentation", "Installing ESA", "ESA Overview", "Quick Start", "Examples", "Welcome!"], "terms": {"section": [0, 1, 2, 4, 6, 7], "describ": [0, 1, 4], "some": [0, 1, 3, 4, 5, 6, 7], "mayb": 0, "solut": [0, 1, 6], "If": [0, 1, 2, 3, 4, 5, 6, 7], "you": [0, 1, 2, 3, 4, 5, 6, 7], "encount": [0, 3, 5, 6, 7], "solv": [0, 1, 5, 6, 7], "an": [0, 1, 3, 5, 6, 7], "file": [0, 1, 3, 4, 5, 6, 7], "github": [0, 1, 3, 6, 7], "so": [0, 1, 3, 4, 5, 6, 7], "we": [0, 1, 3, 4, 5, 6, 7], "add": [0, 1, 2, 3, 7], "your": [0, 1, 3, 4, 5, 6, 7], "problem": [0, 1, 3, 6, 7], "befor": [0, 1, 4, 5, 6], "dive": 0, "too": 0, "deepli": 0, "list": [0, 1, 3, 4, 7], "here": [0, 1, 3, 4, 5, 6, 7], "first": [0, 1, 3, 5, 6, 7], "ensur": [0, 1, 3, 6], "all": [0, 1, 3, 4, 5, 6, 7], "prerequisit": [0, 2], "softwar": [0, 1, 7], "includ": [0, 1, 6, 7], "powerworld": [0, 1, 2, 3, 5, 6, 7], "simul": [0, 1, 2, 3, 5, 6, 7], "simauto": [0, 1, 3, 5, 6], "ar": [0, 1, 3, 4, 5, 6, 7], "us": [0, 1, 2, 3, 4, 5], "support": [0, 1, 4, 6, 7], "version": [0, 1, 3, 6], "python": [0, 1, 2, 3, 6, 7], "3": [0, 1, 3, 5, 6], "5": [0, 3, 5, 6], "its": [0, 3, 5, 6], "depend": [0, 1, 3, 7], "mai": [0, 1, 3, 4, 5, 6], "need": [0, 1, 3, 5, 6, 7], "do": [0, 1, 3, 4, 5, 6, 7], "work": [0, 1, 3, 5, 6, 7], "hopefulli": [0, 7], "follow": [0, 1, 3, 5, 6, 7], "simpl": [0, 1, 2, 3, 5, 7], "direct": [0, 1, 3, 4, 7], "help": [0, 1, 3, 7], "fix": [0, 7], "most": [0, 1, 3, 5, 6], "start": [0, 1, 2, 3, 4], "fresh": 0, "complet": [0, 1, 2], "remov": [0, 1, 6], "recreat": 0, "make": [0, 1, 3, 4, 5, 6, 7], "pretti": 0, "easi": [0, 1, 3, 6, 7], "": [0, 1, 2, 3, 5, 6, 7], "guid": 0, "The": [0, 1, 3, 4, 5, 6, 7], "remain": [0, 1], "assum": [0, 1, 3, 6], "re": [0, 1, 2, 3, 4, 5, 6, 7], "type": [0, 1, 2, 3, 7], "command": [0, 1, 3, 4, 5, 6], "activ": [0, 3, 5, 6, 7], "envrion": 0, "reinstal": [0, 3], "pip": [0, 2, 6, 7], "setuptool": [0, 3], "m": [0, 1, 3, 5, 6, 7], "upgrad": [0, 3], "forc": [0, 1, 3], "intention": 0, "instead": [0, 1, 3, 5, 6], "just": [0, 1], "avoid": 0, "possibl": [0, 4], "path": [0, 1, 3, 4, 5, 6, 7], "note": [0, 1, 3, 4, 5, 6, 7], "might": [0, 1, 3, 6], "twice": 0, "fail": 0, "unknown": [0, 6], "reason": [0, 6], "check": [0, 1, 2, 5, 6], "out": [0, 1, 2, 3, 6, 7], "setup": [0, 3], "py": [0, 1, 3, 4, 5, 6, 7], "look": [0, 1, 2, 3, 6], "install_requir": 0, "It": [0, 1, 3, 4, 5, 6, 7], "ll": [0, 1, 3, 4, 6, 7], "someth": [0, 1, 3], "like": [0, 1, 3, 4, 5, 6, 7], "panda": [0, 1, 4, 5, 6, 7], "numpi": [0, 1, 7], "pywin32": [0, 7], "pypiwin32": [0, 3], "what": [0, 1, 2, 3, 5, 6], "found": [0, 1, 3, 4, 5, 6, 7], "under": [0, 7], "To": [0, 1, 3, 5, 6, 7], "compil": [0, 6], "get": [0, 1, 3, 5, 6, 7], "binari": [0, 1, 3], "distribut": [0, 1, 7], "onli": [0, 1, 3, 4, 7], "pick": 0, "choos": [0, 1, 3], "which": [0, 1, 4, 5, 6, 7], "grab": 0, "other": [0, 1, 4, 6, 7], "document": [0, 3, 4, 5, 6, 7], "As": [0, 1, 4, 6, 7], "strictli": 0, "illustr": [0, 5, 6], "exampl": [0, 1, 2, 4, 5, 7], "want": [0, 1, 3, 4, 5, 6, 7], "d": [0, 3, 6, 7], "modifi": [0, 1, 3, 5, 6, 7], "previou": 0, "read": [0, 1, 2, 4, 6], "author": [0, 1, 3, 7], "time": [0, 1, 3, 4, 6, 7], "had": 0, "when": [0, 1, 3, 4, 5, 6, 7], "option": [0, 1, 3, 6], "suspect": 0, "relat": [0, 1, 4, 5, 6, 7], "try": [0, 5, 6], "uninstal": 0, "after": [0, 1, 3, 4, 5, 6], "ve": [0, 3, 4, 5, 6, 7], "automat": [0, 1, 3, 4, 6, 7], "creat": [0, 1, 2, 4, 5, 7], "littl": 0, "extra": [0, 3], "everyth": [0, 4], "8": [0, 1, 5, 6], "possibli": [0, 6], "well": [0, 1, 4, 6, 7], "up": [0, 1, 3, 4, 5, 6, 7], "termin": [0, 3], "insid": [0, 3], "click": 0, "button": 0, "default": [0, 1, 7], "lower": [0, 4], "left": [0, 1], "area": [0, 7], "In": [0, 1, 3, 4, 5, 6, 7], "u": [0, 6, 7], "mine": 0, "same": [0, 1, 3, 6, 7], "requir": [0, 1, 3, 6, 7], "distutil": 0, "cover": [0, 4], "attempt": [0, 1, 3, 7], "thing": 0, "i": [0, 1, 2, 3, 4, 5, 6], "argument": [0, 3, 6, 7], "correct": [0, 1, 7], "api": [0, 2, 4, 5, 7], "see": [0, 1, 2, 3, 4, 5, 6, 7], "stack": 0, "trace": 0, "traceback": [0, 5, 6], "recent": [0, 1, 5, 6, 7], "call": [0, 1, 4, 5, 6], "last": [0, 1, 5, 6], "input": [0, 1, 4, 7], "line": [0, 1, 2, 3, 4, 5, 7], "1": [0, 1, 5, 6], "c": [0, 1, 3, 5, 6, 7], "user": [0, 1, 2, 3, 5, 6, 7], "myuser": [0, 3, 5, 6, 7], "git": [0, 3, 5, 6, 7], "111": 0, "__init__": [0, 4], "self": [0, 5, 6, 7], "filenam": [0, 1, 5, 6], "680": 0, "return": [0, 1, 2, 4, 5, 6, 7], "_call_simauto": [0, 5, 6], "pwb_file_path": 0, "1101": 0, "rais": [0, 1, 5, 6], "output": [0, 1, 3, 4, 5, 6, 7], "0": [0, 1, 4, 5, 6], "often": [0, 1, 3], "due": [0, 1], "bad": [0, 1], "specif": [0, 1, 6], "provid": [0, 1, 3, 4, 6, 7], "full": [0, 1, 4], "extens": [0, 1, 4, 7], "pwb": [0, 1, 5, 6, 7], "exist": [0, 1], "exact": [0, 1], "specifi": [0, 1, 3], "also": [0, 1, 3, 4, 6, 7], "sure": [0, 1, 5, 6], "actual": [0, 1, 5, 6], "open": [0, 1, 3, 6, 7], "text": [0, 1, 6], "editor": 0, "bunch": 0, "weird": 0, "symbol": 0, "unintellig": 0, "mere": 0, "mortal": 0, "upon": 0, "http": [0, 7], "lf": [0, 3], "spec": 0, "v1": 0, "oid": 0, "sha256": 0, "f05131d24da96daa6a6712c5b9d368c81eeaea5dc7d0b6c7bec7d03ccf021b4a": 0, "size": [0, 1, 6], "34": [0, 3], "Then": [0, 3, 5, 6, 7], "pointer": 0, "perform": [0, 1, 5, 6, 7], "pull": [0, 3, 6, 7], "abov": [0, 5, 6], "again": [0, 5, 6], "set": [0, 1, 2, 3, 5, 6, 7], "early_bind": [0, 1, 6], "fals": [0, 1, 6], "while": [0, 1], "unsur": 0, "root": 0, "caus": [0, 1], "seem": [0, 1, 4, 5, 6], "fact": 0, "true": [0, 1, 5, 6], "preemptiv": 0, "permiss": 0, "crop": 0, "cach": 0, "been": [0, 1, 3, 5, 6, 7], "somehow": 0, "corrupt": 0, "perhap": [0, 1], "comput": [0, 1, 7], "crash": 0, "script": [0, 1, 3, 4, 6], "wa": [0, 1, 6, 7], "simpli": [0, 1, 3, 5, 6, 7], "delet": 0, "directori": [0, 1, 3, 6], "adapt": [0, 3, 5, 6, 7], "system": [0, 1, 3, 5, 6, 7], "appdata": 0, "local": [0, 7], "temp": 0, "kei": [0, 1, 3, 5, 6, 7], "part": 0, "isn": [0, 1, 6, 7], "t": [0, 1, 3, 5, 6, 7], "right": 0, "window": [0, 1, 3, 7], "search": [0, 2, 4], "probabl": 0, "could": [0, 5, 6, 7], "observ": [0, 5, 6], "function": [0, 1, 2, 5, 6], "interfac": [0, 1, 3, 7], "either": [0, 1], "gui": [0, 1, 7], "remot": 0, "desktop": 0, "secur": [0, 1, 6], "block": [0, 6, 7], "save": [0, 1, 3, 4, 5, 6], "ani": [0, 1, 3, 4, 7], "result": [0, 1, 4, 5, 6, 7], "gener": [0, 1, 4, 5, 6, 7], "There": [0, 1, 3], "much": [0, 1, 6, 7], "from": [0, 1, 2, 4, 5, 6, 7], "our": [0, 5, 6, 7], "side": 0, "one": [0, 1, 3, 6, 7], "hack": 0, "login": 0, "continu": [0, 6, 7], "singl": [1, 4], "rememb": [1, 5, 6], "acronym": 1, "wrapper": [1, 4, 5, 6, 7], "within": [1, 5, 6, 7], "class": [1, 4, 5, 6, 7], "workhors": 1, "import": [1, 3, 4, 5, 6, 7], "top": [1, 3, 7], "level": [1, 3, 5, 6, 7], "primari": 1, "error": [1, 2, 3, 6, 7], "base": [1, 4, 6, 7], "except": [1, 5, 6], "thi": [1, 2, 3, 4, 5, 6, 7], "never": 1, "directli": [1, 4, 5, 6, 7], "powerworlderror": [1, 5, 6], "report": [1, 3, 7], "comerror": 1, "goe": [1, 7], "wrong": [1, 3], "commun": [1, 7], "commandnotrespectederror": [1, 5, 6], "chang": [1, 3, 5, 6, 7], "respect": [1, 5, 6], "via": [1, 2, 5, 6, 7], "helper": [1, 5, 6, 7], "method": [1, 2, 6, 7], "change_and_confirm_params_multiple_el": [1, 4, 5, 6], "__version__": 1, "short": [1, 4], "autom": [1, 3, 6, 7], "server": [1, 3, 7], "addit": [1, 7], "few": [1, 7], "custom": 1, "powrworld": 1, "can": [1, 3, 4, 5, 6, 7], "sent": 1, "itself": [1, 6], "doe": [1, 3, 5, 6, 7], "should": [1, 2, 3, 5, 6], "doubl": 1, "uivis": [1, 7], "object_field_lookup": 1, "bu": [1, 5, 6, 7], "gen": [1, 5, 6], "load": [1, 2, 7], "shunt": [1, 7], "branch": [1, 2, 7], "createifnotfound": [1, 6, 7], "pw_order": [1, 6, 7], "object": [1, 3, 5, 6, 7], "A": [1, 3, 4, 5, 6, 7], "initi": [1, 2, 3, 5, 6, 7], "case": [1, 2, 3, 4, 5, 7], "field": [1, 5, 6, 7], "given": 1, "retriev": [1, 5, 6, 7], "paramet": [1, 5, 6, 7], "pass": [1, 4], "opencas": [1, 7], "whether": [1, 7], "connect": [1, 6], "earli": 1, "bind": 1, "displai": [1, 7], "ui": 1, "updat": [1, 3, 4, 5, 6, 7], "through": [1, 5, 6, 7], "changeparamet": [1, 7], "thei": [1, 5, 6], "alreadi": [1, 4, 6, 7], "new": [1, 2, 3, 6, 7], "ones": 1, "avail": [1, 3, 4, 5, 7], "lookup": 1, "later": [1, 5, 6], "necessari": [1, 3], "have": [1, 3, 4, 5, 6, 7], "order": [1, 3, 5, 6, 7], "shown": [1, 7], "pw": [1, 2, 7], "sort": [1, 4], "data": [1, 2, 5, 6, 7], "ascend": 1, "microsoft": [1, 3, 7], "recommend": [1, 3, 4, 7], "objecttyp": [1, 4, 5, 6], "str": 1, "paramlist": [1, 5, 6], "valu": [1, 5, 6], "none": [1, 4, 6], "ha": [1, 3, 4, 5, 6, 7], "replac": [1, 6], "changeparameterssingleel": [1, 7], "still": [1, 7], "now": [1, 5, 6, 7], "unlik": 1, "setdata": 1, "createdata": 1, "explicit": 1, "element": 1, "done": [1, 6, 7], "properti": [1, 6], "global": 1, "onc": [1, 3, 6, 7], "appli": 1, "futur": [1, 3, 4, 5, 6], "variabl": [1, 2, 5, 6, 7], "name": [1, 2, 6, 7], "must": [1, 3, 6], "get_key_fields_for_object_typ": [1, 4], "correspond": [1, 4, 7], "changeparametersmultipleel": [1, 4, 5, 6, 7], "valuelist": [1, 5, 6], "multipl": [1, 4], "length": 1, "n": [1, 6, 7], "where": [1, 4, 7], "number": [1, 6, 7], "each": [1, 7], "sub": [1, 6], "item": 1, "alwai": [1, 3, 5, 6], "changeparametersmultipleelementflatinput": 1, "noofobject": 1, "int": [1, 6], "allow": [1, 7], "veri": [1, 6], "similar": 1, "dimens": 1, "arrai": [1, 6], "multi": 1, "change_parameters_multiple_element_df": [1, 4, 6, 7], "easier": [1, 5, 6], "integ": [1, 6], "devic": [1, 6, 7], "count": 1, "closecas": [1, 7], "close": [1, 7], "without": [1, 3, 6, 7], "closeonelin": [1, 7], "onelinenam": 1, "action": [1, 4], "onelin": 1, "diagram": 1, "omit": 1, "focus": 1, "attribut": [1, 7], "set_simauto_properti": 1, "currentdir": [1, 7], "current": [1, 5, 6, 7], "run": [1, 3, 5, 6], "simulatorauto": 1, "process": [1, 6, 7], "rel": 1, "e": [1, 4, 5, 6, 7], "g": [1, 4, 5, 6, 7], "relativenam": 1, "aux": [1, 6, 7], "versu": 1, "r": [1, 3, 5, 6, 7], "program": [1, 7], "bosultenam": 1, "field_list_column": 1, "key_field": 1, "internal_field_nam": 1, "field_data_typ": 1, "descript": [1, 4, 7], "display_nam": 1, "field_list_columns_new": 1, "enter": [1, 3, 6], "field_list_columns_old": 1, "getcasehead": 1, "tupl": 1, "extract": [1, 3, 7], "header": 1, "inform": [1, 7], "string": [1, 4, 7], "contain": [1, 6], "content": 1, "wish": [1, 7], "getfieldlist": [1, 7], "copi": [1, 3, 5, 6], "datafram": [1, 4, 5, 6, 7], "associ": 1, "request": 1, "plan": [1, 3, 7], "modif": 1, "column": [1, 6], "being": [1, 4], "getparamet": [1, 6, 7], "seri": [1, 4], "maintain": 1, "than": [1, 5, 6, 7], "9": [1, 5, 6], "compat": [1, 7], "getparameterssingleel": [1, 6, 7], "implicitli": 1, "indic": [1, 3, 4, 6], "present": [1, 4, 6, 7], "One": [1, 3], "obtain": [1, 3, 6, 7], "index": [1, 2, 6], "clean": [1, 5, 6, 7], "clean_df_or_seri": 1, "appropri": 1, "cannot": [1, 6, 7], "valueerror": 1, "valid": [1, 5, 6], "assertionerror": 1, "getparametersmultipleel": [1, 5, 6, 7], "filternam": 1, "flow": [1, 2, 5, 7], "busnum": [1, 5, 6, 7], "genid": [1, 5, 6], "genmw": [1, 5, 6], "addition": [1, 4, 7], "These": [1, 5, 6, 7], "advanc": [1, 7], "filter": 1, "defin": [1, 4, 5, 6, 7], "match": [1, 3, 6, 7], "todo": 1, "cast": 1, "nan": 1, "consist": [1, 7], "how": [1, 5, 6, 7], "handl": [1, 5, 6, 7], "miss": [1, 4], "getparametersmultipleelementflatoutput": 1, "union": 1, "oper": [1, 3, 6], "notabl": 1, "differ": [1, 5, 6, 7], "dimension": 1, "vector": 1, "topic": 1, "receiv": [1, 7], "extran": 1, "show": [1, 4, 5, 6, 7], "realli": 1, "format": [1, 6], "numberofobjectsreturn": 1, "numberoffieldsperobject": 1, "ob1fld1": 1, "ob1fld2": 1, "ob": 1, "fld": 1, "thu": [1, 7], "tell": 1, "rest": [1, 7], "popul": 1, "2": [1, 3, 4, 5, 6], "pars": [1, 7], "numberof": 1, "particular": [1, 3], "getspecificfieldlist": [1, 7], "fieldlist": 1, "identifi": [1, 5, 6, 7], "about": [1, 2, 4, 5, 6], "mani": 1, "simpler": [1, 3], "give": [1, 4, 7], "more": [1, 4, 5, 6, 7], "repres": 1, "variablenam": 1, "along": [1, 6, 7], "locat": 1, "would": [1, 3, 4, 5, 6, 7], "normal": 1, "appear": 1, "colon": 1, "constant": [1, 5, 6, 7], "specific_field_list_column": 1, "row": [1, 6], "unless": 1, "alphabet": 1, "getspecificfieldmaxnum": [1, 7], "maximum": 1, "exclud": 1, "go": [1, 7], "keep": 1, "mind": 1, "rang": [1, 7], "skip": [1, 6], "listofdevic": [1, 7], "objtyp": 1, "better": [1, 7], "off": 1, "get_gen": 1, "acquir": 1, "etc": [1, 6, 7], "empti": 1, "desir": [1, 3, 6, 7], "model": [1, 2, 5, 7], "otherwis": 1, "listofdevicesasvariantstr": 1, "implement": [1, 3, 4, 6, 7], "almost": [1, 7], "certainli": 1, "sinc": [1, 4, 6, 7], "particularli": 1, "contrast": 1, "below": [1, 3, 4, 5, 6, 7], "variant": 1, "errantli": 1, "releas": [1, 7], "strongli": [1, 3], "wherea": 1, "ad": [1, 6, 7], "manner": [1, 5, 6], "issu": [1, 2, 3, 4, 6, 7], "languag": [1, 7], "listofdevicesflatoutput": 1, "rearrang": 1, "typic": 1, "applic": [1, 7], "circuit": 1, "common": [1, 2, 5, 6, 7], "loadstat": [1, 5, 6, 7], "state": [1, 5, 6], "previous": [1, 5, 6, 7], "savest": [1, 5, 6, 7], "properli": [1, 3, 7], "topologi": [1, 7], "typeerror": 1, "opencasetyp": 1, "filetyp": 1, "menu": 1, "pti": 1, "pti23": 1, "pti24": 1, "pti25": 1, "pti26": 1, "pti27": 1, "pti28": 1, "pti29": 1, "pti30": 1, "pti31": 1, "pti32": 1, "pti33": 1, "ge": 1, "mean": 1, "ge18": 1, "ge14": 1, "ge15": 1, "ge17": 1, "ge19": 1, "cf": 1, "uct": 1, "arevahdb": 1, "special": [1, 7], "detail": [1, 2, 7], "openonelin": [1, 7], "view": 1, "fullscreen": 1, "NO": [1, 6], "showful": 1, "linkmethod": 1, "label": 1, "float": [1, 6], "width": 1, "height": 1, "denot": 1, "ye": [1, 6], "screen": 1, "mode": [1, 6], "leav": 1, "control": [1, 7], "link": [1, 3, 4, 7], "namenomkv": 1, "between": [1, 6], "100": [1, 4, 5, 6, 7], "edg": [1, 2], "percentag": [1, 6], "power_flow_field": [1, 7], "linecircuit": [1, 6], "linemw": 1, "linemvr": 1, "busnam": [1, 5, 6], "buspuvolt": [1, 5, 6], "busangl": [1, 5, 6], "busnetmw": [1, 5, 6], "busnetmvr": [1, 5, 6], "genmvr": [1, 5, 6], "loadid": [1, 6, 7], "loadmw": 1, "loadmvr": 1, "shuntid": 1, "shuntmw": 1, "shuntmvr": 1, "processauxfil": [1, 6, 7], "auxiliari": [1, 6, 7], "conform": 1, "batch": 1, "processid": [1, 7], "id": [1, 4], "seen": 1, "task": [1, 5, 6, 7], "manag": [1, 3], "shutdown": 1, "synchron": 1, "destroi": 1, "until": 1, "matter": 1, "execut": [1, 6, 7], "requestbuildd": [1, 7], "build": [1, 3, 6, 7], "date": 1, "verifi": [1, 3], "contact": 1, "come": [1, 4, 7], "back": [1, 4, 7], "accord": 1, "delphi": 1, "convent": [1, 2, 6], "dai": 1, "decemb": 1, "30th": 1, "1899": 1, "runscriptcommand": [1, 6, 7], "statement": [1, 4], "those": [1, 7], "simauto_properti": 1, "bool": 1, "specific_field_list_columns_new": 1, "savecas": [1, 7], "overwrit": 1, "origin": [1, 7], "write": [1, 4, 7], "raw": 1, "ge21": 1, "pslf": 1, "epc": 1, "ieee": [1, 5, 6, 7], "exchang": 1, "auxsecond": 1, "secondari": [1, 6], "auxlabel": 1, "auxnetwork": 1, "network": [1, 6], "pwb5": 1, "pwb20": 1, "power": [1, 5, 6, 7], "interest": 1, "compar": 1, "variou": 1, "featur": [1, 3], "sendtoexcel": [1, 7], "send": [1, 7], "excel": [1, 7], "spreadsheet": [1, 7], "csv": [1, 6], "to_csv": 1, "sheet": 1, "manual": [1, 3, 5, 6], "predefin": 1, "export": 1, "solvepowerflow": [1, 4, 5, 6, 7], "solmethod": 1, "rectnewt": 1, "calcul": [1, 7], "insensit": 1, "rectangular": 1, "newton": 1, "raphson": 1, "polarnewton": 1, "polar": 1, "gaussseidel": 1, "gauss": 1, "seidel": 1, "fastdec": 1, "fast": [1, 2, 7], "decoupl": 1, "robust": [1, 7], "dc": [1, 7], "pdf": 1, "tsgetcontingencyresult": [1, 6, 7], "ctgname": 1, "objfieldlist": [1, 6], "starttim": 1, "stoptim": 1, "warn": 1, "tssolveal": 1, "tssolv": [1, 6], "On": [1, 3, 5, 6], "main": 1, "transient": [1, 2], "stabil": [1, 2], "extern": [1, 7], "analog": 1, "tsgetresult": 1, "rather": 1, "com": [1, 3, 5, 6, 7], "further": [1, 7], "experi": [1, 7], "conting": [1, 2, 7], "test": [1, 2, 3, 5, 6, 7], "prefer": 1, "code": 1, "pleas": [1, 2, 3, 4, 6, 7], "plot": [1, 2], "subplot": 1, "individu": 1, "pair": [1, 6], "For": [1, 4, 5, 6, 7], "second": [1, 7], "begin": 1, "stop": 1, "end": [1, 3], "two": [1, 3, 6, 7], "meta": [1, 6], "altern": 1, "map": [1, 7], "primarykei": 1, "secondarykei": 1, "colhead": 1, "forth": 1, "unfortun": [1, 3], "abil": 1, "transform": [1, 6, 7], "limit": [1, 6, 7], "numer": 1, "to_numer": 1, "determin": [1, 7], "unmodifi": 1, "timestamp": 1, "visibl": 1, "behavior": [1, 5, 6], "writeauxfil": [1, 7], "toappend": 1, "command_df": [1, 5, 6], "confirm": [1, 5, 6, 7], "intern": 1, "lighter": 1, "weight": [1, 2], "riskier": 1, "effort": 1, "made": [1, 7], "change_to_temperatur": 1, "ndarrai": 1, "r25": 1, "7": [1, 5, 6], "283": 1, "r75": 1, "688": 1, "resist": 1, "temperatur": [1, 7], "coeffici": 1, "std": 1, "738": 1, "2012": 1, "25": [1, 5, 6], "degre": 1, "celsiu": 1, "target": 1, "uniform": 1, "assign": 1, "2d": 1, "per": [1, 5, 6, 7], "unit": [1, 5, 6, 7], "75": 1, "obj": 1, "came": 1, "less": [1, 4, 6, 7], "place": [1, 7], "even": [1, 6], "unnecessari": 1, "white": [1, 6], "space": [1, 6], "ctg_autoinsert": 1, "object_typ": 1, "dict": 1, "auto": 1, "insert": 1, "dictionari": 1, "ctg_autoinsert_opt": 1, "ctg_solveal": 1, "mark": 1, "exit": [1, 5, 6, 7], "fast_n1_test": 1, "pure": 1, "lodf": [1, 7], "analysi": [1, 2, 5, 7], "boolean": 1, "fast_n2_islanding_detect": 1, "quickli": [1, 7], "island": [1, 6, 7], "ctg": 1, "matrix": [1, 6, 7], "get_branch_admitt": 1, "admitt": [1, 6], "usual": 1, "known": [1, 4, 5, 6], "yf": 1, "yt": 1, "spars": [1, 6, 7], "get_incidence_matrix": 1, "incid": [1, 7], "get_jacobian": [1, 7], "jacobian": 1, "scipi": [1, 7], "csr": 1, "param": [1, 5, 6], "convert": [1, 7], "csr_matrix": 1, "get_key_field_list": [1, 5, 6, 7], "conveni": [1, 6], "worth": [1, 4], "get_lodf_matrix": [1, 7], "precis": 1, "post": [1, 2], "By": 1, "larger": 1, "1000": [1, 7], "small": 1, "decim": [1, 7], "linear": 1, "dcp": [1, 7], "take": [1, 7], "phase": [1, 7], "shifter": [1, 7], "account": 1, "ac": 1, "NOT": [1, 6], "closur": 1, "sensitivi": 1, "lcdf": 1, "sensit": [1, 7], "pre": [1, 6, 7], "voltag": [1, 5, 6, 7], "angl": [1, 5, 6], "mlcdf": [1, 7], "suppos": 1, "exactli": 1, "tabl": [1, 4], "get_lodf_matrix_fast": 1, "4": [5, 6], "outag": [1, 7], "factor": [1, 7], "nativ": [1, 7], "faster": [1, 6], "larg": [1, 3, 7], "dens": 1, "get_power_flow_result": [1, 4, 5, 6, 7], "additional_field": [1, 7], "extend": [1, 3, 7], "invalid": 1, "get_ptdf_matrix_fast": 1, "transfer": 1, "get_shift_factor_matrix": [1, 7], "inject": [1, 5, 6], "shift": 1, "calculateshiftfactorsmultipleel": 1, "get_shift_factor_matrix_fast": 1, "suscept": 1, "get_shunt_admitt": 1, "ysh": 1, "get_version_and_buildd": [1, 7], "get_ybu": [1, 7], "ybu": [1, 6, 7], "matlab": 1, "identify_numeric_field": 1, "aren": [1, 6], "linestatu": 1, "np": 1, "n1_fast": 1, "c1_isl": 1, "f": [1, 6], "lim": [1, 6], "statu": 1, "n1_protect": [1, 6], "margin": 1, "adjust": [1, 6, 7], "elimin": 1, "overload": 1, "n2_bruteforc": 1, "a0": 1, "bruteforc": 1, "n2_fast": 1, "run_contingency_analysi": [1, 6], "expect": [1, 3, 5, 6, 7], "ca": [1, 6], "run_ecological_analysi": 1, "mw": 1, "split_gener": 1, "leverag": [1, 7], "ecolog": [1, 7], "quantifi": 1, "variti": 1, "refer": [1, 4], "h": 1, "huang": 1, "z": 1, "mao": [1, 7], "layton": 1, "k": 1, "davi": [1, 7], "orient": 1, "optim": [1, 7], "surviv": 1, "transact": 1, "doi": [1, 7], "10": [1, 3, 5, 6, 7], "1109": 1, "tpwr": 1, "2022": 1, "3168226": 1, "panyam": 1, "v": 1, "2019": 1, "ecosystem": 1, "perspect": 1, "design": [1, 6, 7], "sustain": 1, "procedia": 1, "cirp": 1, "80": 1, "269": 1, "274": 1, "real": [1, 6, 7], "reactiv": [1, 6, 7], "appar": 1, "over": [1, 6], "mvr": 1, "mva": [1, 6], "split": [1, 6], "aggreg": 1, "consid": 1, "metric": 1, "reco": 1, "asc": 1, "develop": [1, 4, 7], "capac": [1, 7], "cycl": 1, "throughflow": 1, "tstc": 1, "finn": 1, "ci": 1, "total": 1, "overhead": 1, "tso": 1, "run_robustness_analysi": 1, "rcf": 1, "grid": [1, 6, 7], "against": 1, "cascad": 1, "failur": [1, 3, 7], "topolog": 1, "structur": [1, 6], "entropi": 1, "formula": 1, "paper": [1, 6, 7], "ko\u00e7": 1, "yakup": 1, "martijn": 1, "warnier": 1, "robert": 1, "kooij": 1, "franc": 1, "mt": 1, "brazier": 1, "safeti": 1, "scienc": 1, "59": 1, "2013": 1, "126": 1, "134": 1, "property_nam": 1, "property_valu": 1, "to_graph": [1, 7], "node": [1, 7], "geograph": 1, "node_attr": 1, "edge_attr": 1, "multigraph": [1, 6], "multidigraph": 1, "graph": [1, 2, 7], "networkx": [1, 6, 7], "inter": [1, 7], "substat": [1, 7], "parallel": [1, 6, 7], "preserv": [1, 7], "iter": 1, "them": [1, 5, 6], "belong": 1, "latitud": 1, "longitud": 1, "unavail": 1, "update_ui": [1, 7], "render": 1, "convert_list_to_vari": 1, "list_in": 1, "convert_nested_list_to_vari": 1, "convert_to_windows_path": 1, "p": 1, "df_to_aux": 1, "fp": 1, "df": [1, 6], "object_nam": 1, "axd": [1, 7], "handler": 1, "packag": [2, 4, 6, 7], "eas": [2, 7], "interact": [2, 4, 6, 7], "seek": 2, "comprehens": [2, 6], "instal": [2, 4, 6, 7], "instruct": 2, "rich": 2, "welcom": [2, 4], "changelog": 2, "citat": 2, "who": [2, 3], "why": 2, "project": [2, 3], "That": 2, "disclaim": 2, "credit": 2, "overview": 2, "virtual": [2, 6], "environ": [2, 4, 6, 7], "configur": 2, "sourc": [1, 2, 7], "quick": [2, 7], "coverag": [2, 3, 7], "contribut": 2, "saw": [2, 4, 5, 6, 7], "modul": [2, 5, 6, 7], "increas": [2, 7], "built": [2, 7], "capabl": [2, 7], "imped": [2, 7], "histogram": 2, "matplotlib": 2, "instanc": [2, 5, 6, 7], "page": [2, 3, 7], "tl": 3, "dr": 3, "ever": 3, "download": 3, "17": [3, 5, 6, 7], "21": [3, 6, 7], "guarante": 3, "16": [3, 5, 6, 7], "abl": [3, 6], "access": [3, 5, 6, 7], "storag": 3, "repositori": [3, 5, 6], "shouldn": 3, "anyth": 3, "els": 3, "encourag": 3, "nice": [3, 5, 6], "tutori": 3, "machin": [3, 6, 7], "prompt": 3, "hit": 3, "simultan": 3, "cmd": [3, 6], "popup": 3, "cd": 3, "my": [3, 5, 6], "ex": 3, "venv": 3, "bat": 3, "next": 3, "compon": 3, "cleanli": 3, "flag": 3, "unabl": 3, "find": [3, 5, 6, 7], "librari": [3, 6], "conda": 3, "wai": [3, 6, 7], "quit": 3, "tool": [3, 7], "suit": 3, "step": 3, "zip": 3, "archiv": 3, "clone": 3, "bash": 3, "cours": [3, 4], "similarli": 3, "doc": 3, "both": [3, 5, 6], "extras_requir": 3, "headach": 3, "down": 3, "simplest": [3, 7], "correctli": [3, 7], "rear": 3, "head": 3, "point": [3, 5, 6, 7], "print": [3, 5, 6, 7], "messag": 3, "emit": 3, "figur": 3, "own": [3, 6, 7], "feel": 3, "free": [3, 7], "everyon": 3, "At": [3, 4], "discov": 3, "dure": [3, 7], "log": 3, "ran": 3, "73": 3, "542": 3, "ok": 3, "okai": 3, "assess": 3, "incant": 3, "coveragerc": 3, "wide": [3, 7], "regist": 3, "servic": 3, "elev": 3, "pywin32_postinstal": 3, "aforement": 3, "fulli": [4, 6, 7], "hint": 4, "pycharm": 4, "highlight": 4, "incorrect": 4, "brows": 4, "notic": 4, "mix": 4, "camelcas": 4, "lower_case_with_underscor": 4, "higher": 4, "toward": 4, "bottom": 4, "upper": 4, "letter": 4, "everi": 4, "mention": 4, "nasti": 4, "lead": 4, "trail": 4, "whitespac": 4, "best": [4, 7], "afterward": 4, "translat": 4, "deal": 4, "troubl": 4, "thoroughli": 4, "noth": 4, "oppos": 4, "concis": [4, 6], "move": 4, "team": 4, "strive": [4, 7], "good": [4, 5, 6], "latest": [4, 7], "num": 4, "percent": [4, 6], "1146": [], "md": 4, "14": [5, 6, 7], "esa": 5, "texa": [5, 7], "univers": [5, 7], "washington": 5, "sever": [5, 6, 7], "purpos": [5, 6], "demonstr": [5, 6], "high": [5, 6], "wrap": [5, 6, 7], "case_path": [5, 6, 7], "ieee_14": [5, 6, 7], "bus_pws_version_21": [5, 6, 7], "buse": [5, 6], "life": [5, 6], "bus_data": [5, 6], "060000": [5, 6], "000000": [5, 6, 7], "232": [5, 6], "391691": [5, 6], "549389": [5, 6], "045000": [5, 6], "982553": [5, 6], "18": [5, 6, 7], "300001": [5, 6], "30": [5, 6], "855957": [5, 6], "010000": [5, 6], "12": [5, 6, 7], "725027": [5, 6], "94": [5, 6, 7], "199997": [5, 6, 7], "6": [5, 6], "074852": [5, 6], "017672": [5, 6], "312829": [5, 6], "47": [5, 6, 7], "799999": [5, 6, 7], "900000": [5, 6, 7], "019515": [5, 6], "773799": [5, 6], "600000": [5, 6, 7], "070000": [5, 6], "220869": [5, 6], "11": [5, 6, 7], "200000": [5, 6, 7], "229700": [5, 6], "061520": [5, 6], "13": [5, 6, 7], "359558": [5, 6], "090000": [5, 6], "359571": [5, 6], "623067": [5, 6], "055933": [5, 6], "938458": [5, 6], "29": [5, 6, 7], "499999": [5, 6, 7], "584888": [5, 6], "050986": [5, 6], "15": [5, 6, 7], "097221": [5, 6], "800000": [5, 6, 7], "056907": [5, 6], "790552": [5, 6], "500000": [5, 6, 7], "055189": [5, 6], "075512": [5, 6], "100000": [5, 6, 7], "050383": [5, 6], "156196": [5, 6], "500001": [5, 6, 7], "035531": [5, 6], "033565": [5, 6], "gen_data": [5, 6], "40": [5, 6], "000001": [5, 6], "43": [5, 6], "555957": [5, 6], "729700": [5, 6], "learn": [5, 6, 7], "let": [5, 6, 7], "But": [5, 6], "know": [5, 6, 7], "gen_key_field": [5, 6], "50": [5, 6, 7], "did": [5, 6, 7], "new_gen_data": [5, 6], "spoiler": [5, 6], "new_bus_data": [5, 6], "col": [5, 6], "diff": [5, 6], "000000e": [5, 6], "00": [5, 6], "100000e": [5, 6], "07": [5, 6], "015596": [5, 6], "700000e": [5, 6], "813164": [5, 6], "650700e": [5, 6], "03": [5, 6], "920185": [5, 6], "207540e": [5, 6], "238592": [5, 6], "900000e": [5, 6], "586528": [5, 6], "628790e": [5, 6], "309167": [5, 6], "190000e": [5, 6], "06": [5, 6, 7], "655362": [5, 6], "189370e": [5, 6], "284631": [5, 6], "256150e": [5, 6], "987861": [5, 6], "514030e": [5, 6], "297895": [5, 6], "400800e": [5, 6], "04": [5, 6], "709888": [5, 6], "351040e": [5, 6], "827348": [5, 6], "736110e": [5, 6], "662158": [5, 6], "wouldn": [5, 6], "didn": [5, 6], "were": [5, 6, 7], "luck": [5, 6], "gen_copi": [5, 6], "deep": [5, 6, 7], "loc": [5, 6], "isin": [5, 6], "incredibli": [5, 6], "becaus": [5, 6], "unexpectedli": [5, 6], "tri": [5, 6], "shape": [5, 6], "doesn": [5, 6], "drop": [5, 6], "axi": [5, 6], "slack": [5, 6], "62": [5, 6], "128144": [5, 6], "986289": [5, 6], "385347": [5, 6], "893420": [5, 6], "399502": [5, 6], "gen_v": [5, 6], "genregpuvolt": [5, 6], "025425": [5, 6], "stdin": [5, 6], "199": [5, 6], "genvoltset": [5, 6], "confus": [5, 6], "967": [5, 6], "1227": [5, 6], "hasn": [5, 6], "store": [5, 6], "yet": [5, 6], "empow": [5, 6], "whatev": [5, 6], "fit": [5, 6], "oh": [5, 6], "final": [5, 6, 7], "yourself": [5, 6], "don": [5, 6, 7], "hang": [5, 6], "around": [5, 6], "walk": [5, 6], "readi": [5, 6], "improv": [5, 6, 7], "usag": 6, "earlier": 6, "share": 6, "though": 6, "reader": 6, "friendli": [6, 7], "test_saw": 6, "uniformli": [6, 7], "kf": [6, 7], "demand": [6, 7], "load_fram": [6, 7], "loadsmw": [6, 7], "loadsmvr": [6, 7], "699999": [6, 7], "700000": [6, 7], "19": [6, 7], "599999": [6, 7], "inde": [6, 7], "new_load": [6, 7], "32": [6, 7], "549998": [6, 7], "050001": [6, 7], "141": [6, 7], "299999": [6, 7], "28": [6, 7], "71": [6, 7], "699995": [6, 7], "850000": [6, 7], "400000": [6, 7], "800001": [6, 7], "250000": [6, 7], "44": [6, 7], "24": [6, 7], "150000": [6, 7], "20": [6, 7], "250002": [6, 7], "22": [6, 7], "350000": [6, 7], "transmiss": [6, 7], "candidate_lin": 6, "referenc": 6, "tx2000": 6, "tx2000_base_pws_version_21": 6, "candidatelin": 6, "pd": 6, "line_df": 6, "read_csv": 6, "ckt": 6, "x": 6, "b": 6, "8155": 6, "5358": 6, "00037": 6, "00750": 6, "52342": 6, "2768": 6, "8154": 6, "8135": 6, "00895": 6, "03991": 6, "00585": 6, "149": 6, "8153": 6, "8108": 6, "01300": 6, "05400": 6, "02700": 6, "186": 6, "8152": 6, "8160": 6, "00538": 6, "03751": 6, "00613": 6, "221": 6, "8057": 6, "instanti": 6, "renam": [6, 7], "power_world_object_field": 6, "xlsx": 6, "relev": 6, "liner": 6, "linex": 6, "linec": 6, "lineamva": 6, "inplac": 6, "dtype": 6, "tertiari": 6, "line_key_field": 6, "first_lin": 6, "tolist": 6, "693": 6, "edit": 6, "enabl": [6, 7], "creation": 6, "easili": 6, "automag": 6, "entermod": 6, "procedur": 6, "queri": 6, "tsgetcongencyresult": 6, "il200": 6, "activsg200": 6, "pf": 6, "t1": 6, "t2": 6, "stepsiz": 6, "01": 6, "ctg_name": 6, "visual": [6, 7], "area_avg": 6, "hz": 6, "sa": 6, "y": 6, "whole": [6, 7], "datapoint": 6, "rare": 6, "situat": 6, "slightli": [6, 7], "invok": 6, "451": 6, "156": 6, "danger": 6, "contig": 6, "138": 6, "violat": 6, "filepath_aux": 6, "tx2000_contingency_auxfil": 6, "cmd_solv": 6, "ctgsolveal": 6, "ctglabel": 6, "ctgsolv": 6, "ctgproc": 6, "ctgcustmonviol": 6, "ctgviol": 6, "popular": 6, "analyz": 6, "algorithm": [6, 7], "nx": 6, "branch_df": 6, "1001": 6, "1064": 6, "1071": 6, "1002": 6, "1007": 6, "3199": 6, "8157": 6, "5124": 6, "3200": 6, "8156": 6, "3201": 6, "8158": 6, "8030": 6, "3202": 6, "8159": 6, "3203": 6, "3204": 6, "from_pandas_edgelist": 6, "create_us": 6, "number_of_nod": 6, "2000": [6, 7], "number_of_edg": 6, "older": 6, "throw": 6, "saveybusinmatlabformat": 6, "onward": 6, "o": 6, "ybus_fil": 6, "mat": 6, "memori": 6, "readlin": 6, "mat_str": 6, "j": [6, 7], "sqrt": 6, "semicolon": 6, "coupl": [6, 7], "regular": 6, "express": 6, "ie": 6, "fe": 6, "exp": 6, "loop": [6, 7], "ignor": 6, "diagon": 6, "entri": 6, "idx1": 6, "idx2": 6, "imag": 6, "group": 6, "neg_admitt": 6, "1j": 6, "zerodivisionerror": 6, "add_edg": 6, "explor": 6, "data_1_2": 6, "get_edge_data": 6, "01937987032338931": 6, "05917003035204804": 6, "static": 6, "anim": 6, "pyplot": 6, "plt": 6, "branch_key_field": 6, "lineperc": 6, "branch_data": 6, "879348": 6, "35": 6, "731801": 6, "342946": 6, "36": 6, "371236": 6, "46": 6, "769588": 6, "982494": 6, "641971": 6, "57": 6, "452701": 6, "ax": 6, "kind": 6, "hist": 6, "set_xlabel": 6, "set_ylabel": 6, "set_titl": 6, "articl": 7, "21105": 7, "joss": 7, "02289": 7, "url": 7, "org": 7, "year": 7, "2020": 7, "publish": 7, "journal": 7, "volum": 7, "2289": 7, "brandon": 7, "l": 7, "thayer": 7, "zeyu": 7, "yije": 7, "liu": 7, "katherin": 7, "thoma": 7, "overby": 7, "titl": 7, "simplifi": 7, "commerci": 7, "grade": 7, "electr": 7, "licens": 7, "worri": 7, "convers": 7, "scientif": 7, "love": 7, "motiv": 7, "advantag": 7, "launch": 7, "anoth": 7, "manipul": 7, "essenc": 7, "graphic": 7, "wealth": 7, "opportun": 7, "co": 7, "And": 7, "web": 7, "cumbersom": 7, "tediou": 7, "difficult": 7, "excelapp": 7, "audienc": 7, "industri": 7, "practition": 7, "planner": 7, "energi": 7, "trader": 7, "research": 7, "domain": 7, "student": 7, "faculti": 7, "enthusiast": 7, "profici": 7, "familiar": 7, "signific": 7, "knowledg": 7, "whatsoev": 7, "nor": 7, "ultim": 7, "understand": 7, "abstract": 7, "awai": 7, "solid": 7, "put": 7, "breez": 7, "non": 7, "restrict": 7, "plethora": 7, "assur": 7, "intend": 7, "hassl": 7, "unlock": 7, "realm": 7, "signal": 7, "transport": 7, "natur": 7, "ga": 7, "dynam": 7, "tune": 7, "relai": 7, "ai": 7, "ml": 7, "modern": 7, "lightweight": 7, "academ": 7, "util": 7, "past": 7, "cite": 7, "gym": 7, "standard": 7, "reinforc": 7, "carri": 7, "drl": 7, "divers": 7, "condit": 7, "scenario": 7, "renew": 7, "schedul": 7, "commit": 7, "vari": 7, "competit": 7, "host": 7, "depart": 7, "geomagnet": 7, "disturb": 7, "gmd": 7, "affect": 7, "magnet": 7, "earth": 7, "induc": 7, "superimpos": 7, "accept": 7, "martinez": 7, "et": 7, "al": 7, "entitl": 7, "undergradu": 7, "consider": 7, "mitig": 7, "mid": 7, "late": 7, "strategi": 7, "programmat": 7, "gic": 7, "propos": 7, "minim": 7, "effect": 7, "ongo": 7, "monitor": 7, "world": 7, "six": 7, "magnetomet": 7, "deploi": 7, "measur": 7, "ground": 7, "conduct": 7, "fed": 7, "theori": 7, "concept": 7, "julia": 7, "easysimauto": 7, "jl": 7, "amaz": 7, "far": 7, "warranti": 7, "held": 7, "liabl": 7, "bug": 7, "feedback": 7, "ticket": 7, "guidanc": 7, "oversight": 7, "professor": 7, "founder": 7, "corpor": 7, "fund": 7, "engin": 7, "station": 7, "smart": 7, "center": 7, "award": 7, "de": 7, "oe0000895": 7, "sandia": 7, "nation": 7, "laboratori": 7, "222444": 7, "colleagu": 7, "wei": 7, "trinh": 7, "diana": 7, "wallison": 7, "xiangtian": 7, "zheng": 7, "hope": 7, "enjoi": 7, "prior": 7, "pypi": 7, "typo": 7, "linalg": 7, "preliminari": 7, "streamlit": 7, "thread": 7, "safe": 7, "isf": 7, "ptdf": 7, "offici": 7, "pw23": 7, "pw22": 7, "nov": 7, "dec": 7, "aot": 7, "greatli": 7, "simd": 7, "jit": 7, "finish": 7, "synthet": 7, "prof": 7, "kostya": 7, "turitsyn": 7, "mit": 7, "facilit": 7, "directedgraph": 7, "began": 7, "readm": 7, "turn": 7, "delimit": 7, "perman": 7, "detect": 7, "europ": 7, "elsewher": 7, "robinroch": 7, "review": 7, "comment": 7, "build_dat": 7, "impli": 7, "howev": 7, "beta": 7, "accordingli": 7, "suffix": 7, "pws_version_": 7, "discuss": 7, "meet": 7, "coverage_to_rst": 7, "clear": 7, "minor": 7, "1158": 4}, "objects": {"": [[1, 0, 0, "-", "esa"]], "esa": [[1, 0, 0, "-", "saw"]], "esa.saw": [[1, 1, 1, "", "COMError"], [1, 1, 1, "", "CommandNotRespectedError"], [1, 1, 1, "", "Error"], [1, 1, 1, "", "PowerWorldError"], [1, 2, 1, "", "SAW"], [1, 6, 1, "", "convert_list_to_variant"], [1, 6, 1, "", "convert_nested_list_to_variant"], [1, 6, 1, "", "convert_to_windows_path"], [1, 6, 1, "", "df_to_aux"]], "esa.saw.SAW": [[1, 3, 1, "", "ChangeParameters"], [1, 3, 1, "", "ChangeParametersMultipleElement"], [1, 3, 1, "", "ChangeParametersMultipleElementFlatInput"], [1, 3, 1, "", "ChangeParametersSingleElement"], [1, 3, 1, "", "CloseCase"], [1, 3, 1, "", "CloseOneline"], [1, 4, 1, "", "CreateIfNotFound"], [1, 4, 1, "", "CurrentDir"], [1, 5, 1, "", "FIELD_LIST_COLUMNS"], [1, 5, 1, "", "FIELD_LIST_COLUMNS_NEW"], [1, 5, 1, "", "FIELD_LIST_COLUMNS_OLD"], [1, 3, 1, "", "GetCaseHeader"], [1, 3, 1, "", "GetFieldList"], [1, 3, 1, "", "GetParameters"], [1, 3, 1, "", "GetParametersMultipleElement"], [1, 3, 1, "", "GetParametersMultipleElementFlatOutput"], [1, 3, 1, "", "GetParametersSingleElement"], [1, 3, 1, "", "GetSpecificFieldList"], [1, 3, 1, "", "GetSpecificFieldMaxNum"], [1, 3, 1, "", "ListOfDevices"], [1, 3, 1, "", "ListOfDevicesAsVariantStrings"], [1, 3, 1, "", "ListOfDevicesFlatOutput"], [1, 3, 1, "", "LoadState"], [1, 3, 1, "", "OpenCase"], [1, 3, 1, "", "OpenCaseType"], [1, 3, 1, "", "OpenOneLine"], [1, 5, 1, "", "POWER_FLOW_FIELDS"], [1, 3, 1, "", "ProcessAuxFile"], [1, 4, 1, "", "ProcessID"], [1, 4, 1, "", "RequestBuildDate"], [1, 3, 1, "", "RunScriptCommand"], [1, 5, 1, "", "SIMAUTO_PROPERTIES"], [1, 5, 1, "", "SPECIFIC_FIELD_LIST_COLUMNS"], [1, 5, 1, "", "SPECIFIC_FIELD_LIST_COLUMNS_NEW"], [1, 3, 1, "", "SaveCase"], [1, 3, 1, "", "SaveState"], [1, 3, 1, "", "SendToExcel"], [1, 3, 1, "", "SolvePowerFlow"], [1, 3, 1, "", "TSGetContingencyResults"], [1, 4, 1, "", "UIVisible"], [1, 3, 1, "", "WriteAuxFile"], [1, 3, 1, "", "change_and_confirm_params_multiple_element"], [1, 3, 1, "", "change_parameters_multiple_element_df"], [1, 3, 1, "", "change_to_temperature"], [1, 3, 1, "", "clean_df_or_series"], [1, 3, 1, "", "ctg_autoinsert"], [1, 3, 1, "", "ctg_solveall"], [1, 3, 1, "", "exit"], [1, 3, 1, "", "fast_n1_test"], [1, 3, 1, "", "fast_n2_islanding_detection"], [1, 3, 1, "", "get_branch_admittance"], [1, 3, 1, "", "get_incidence_matrix"], [1, 3, 1, "", "get_jacobian"], [1, 3, 1, "", "get_key_field_list"], [1, 3, 1, "", "get_key_fields_for_object_type"], [1, 3, 1, "", "get_lodf_matrix"], [1, 3, 1, "", "get_lodf_matrix_fast"], [1, 3, 1, "", "get_power_flow_results"], [1, 3, 1, "", "get_ptdf_matrix_fast"], [1, 3, 1, "", "get_shift_factor_matrix"], [1, 3, 1, "", "get_shift_factor_matrix_fast"], [1, 3, 1, "", "get_shunt_admittance"], [1, 3, 1, "", "get_version_and_builddate"], [1, 3, 1, "", "get_ybus"], [1, 3, 1, "", "identify_numeric_fields"], [1, 3, 1, "", "n1_fast"], [1, 3, 1, "", "n1_protect"], [1, 3, 1, "", "n2_bruteforce"], [1, 3, 1, "", "n2_fast"], [1, 3, 1, "", "run_contingency_analysis"], [1, 3, 1, "", "run_ecological_analysis"], [1, 3, 1, "", "run_robustness_analysis"], [1, 3, 1, "", "set_simauto_property"], [1, 3, 1, "", "to_graph"], [1, 3, 1, "", "update_ui"]]}, "objtypes": {"0": "py:module", "1": "py:exception", "2": "py:class", "3": "py:method", "4": "py:property", "5": "py:attribute", "6": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "exception", "Python exception"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "function", "Python function"]}, "titleterms": {"common": 0, "issu": 0, "instal": [0, 3], "virtual": [0, 3], "environ": [0, 3], "pycharm": 0, "error": 0, "initi": 0, "saw": [0, 1], "instanc": 0, "esa": [0, 1, 2, 3, 4, 6, 7], "powerworlderror": 0, "opencas": 0, "have": 0, "occur": 0, "typeerror": 0, "thi": 0, "com": 0, "object": 0, "can": 0, "autom": 0, "makepi": 0, "process": 0, "pleas": 0, "run": 0, "manual": 0, "attributeerror": 0, "modul": [0, 1], "win32com": 0, "gen_pi": 0, "c99f1760": 0, "277e": 0, "11d5": 0, "a106": 0, "00c04f469176x0x20x0": 0, "ha": 0, "attribut": 0, "clsidtoclassmap": 0, "modulenotfounderror": 0, "pywintyp": 0, "access": 0, "violat": 0, "api": 1, "document": [1, 2], "packag": [1, 3], "easi": 2, "simauto": [2, 4, 7], "content": 2, "indic": 2, "tabl": 2, "overview": [3, 4], "prerequisit": 3, "configur": 3, "via": 3, "pip": 3, "from": 3, "sourc": 3, "post": 3, "cursori": 3, "verif": 3, "success": 3, "execut": 3, "unittest": 3, "pywin32": 3, "name": 4, "convent": 4, "function": [4, 7], "method": 4, "high": 4, "level": 4, "helper": 4, "runscriptcommand": 4, "clean_df_or_seri": 4, "data": 4, "type": 4, "powerworld": 4, "variabl": 4, "test": 4, "coverag": 4, "": 4, "2022": 4, "09": [], "27": [], "git": 4, "commit": 4, "0e92b98": [], "contribut": 4, "quick": [5, 6], "start": [5, 6], "exampl": 6, "increas": 6, "load": 6, "case": 6, "add": 6, "line": 6, "transient": 6, "stabil": 6, "analysi": 6, "fast": 6, "conting": 6, "us": [6, 7], "pw": 6, "built": 6, "capabl": 6, "creat": 6, "simpl": 6, "graph": 6, "model": 6, "edg": 6, "weight": 6, "branch": 6, "imped": 6, "plot": 6, "histogram": 6, "flow": 6, "matplotlib": 6, "welcom": 7, "citat": 7, "what": 7, "i": 7, "about": 7, "properti": 7, "who": 7, "should": 7, "why": 7, "project": 7, "That": 7, "disclaim": 7, "credit": 7, "thank": 7, "changelog": 7, "version": 7, "1": 7, "3": 7, "2": 7, "0": 7, "9": 7, "8": 7, "7": 7, "6": 7, "5": 7, "4": 7, "10": 4, "12": 4, "dffb9ef": 4}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Common Issues": [[0, "common-issues"]], "Installation/Virtual Environment Issues": [[0, "installation-virtual-environment-issues"]], "PyCharm Virtual Environments": [[0, "pycharm-virtual-environments"]], "Errors/Issues Initializing a SAW Instance": [[0, "errors-issues-initializing-a-saw-instance"]], "esa.saw.PowerWorldError: OpenCase: Errors have occurred": [[0, "esa-saw-powerworlderror-opencase-errors-have-occurred"]], "TypeError: This COM object can not automate the makepy process - please run makepy manually for this object": [[0, "typeerror-this-com-object-can-not-automate-the-makepy-process-please-run-makepy-manually-for-this-object"]], "AttributeError: module \u2018win32com.gen_py.C99F1760-277E-11D5-A106-00C04F469176x0x20x0\u2019 has no attribute \u2018CLSIDToClassMap\u2019": [[0, "attributeerror-module-win32com-gen-py-c99f1760-277e-11d5-a106-00c04f469176x0x20x0-has-no-attribute-clsidtoclassmap"]], "ModuleNotFoundError: no module pywintypes": [[0, "modulenotfounderror-no-module-pywintypes"]], "esa.saw.PowerWorldError: Access Violation": [[0, "esa-saw-powerworlderror-access-violation"]], "Easy SimAuto (ESA) Documentation": [[2, "easy-simauto-esa-documentation"]], "Contents:": [[2, null]], "Indices and tables": [[2, "indices-and-tables"]], "Installing ESA": [[3, "installing-esa"]], "Overview": [[3, "overview"]], "Prerequisites": [[3, "prerequisites"]], "Virtual Environment Configuration": [[3, "virtual-environment-configuration"]], "Install Prerequisite Packages": [[3, "install-prerequisite-packages"]], "Install ESA via Pip": [[3, "install-esa-via-pip"]], "Install ESA from Source": [[3, "install-esa-from-source"]], "Post-Installation": [[3, "post-installation"]], "Cursory Verification of Successful Installation": [[3, "cursory-verification-of-successful-installation"]], "Execute ESA Unittests": [[3, "execute-esa-unittests"]], "pywin32 Post-Installation": [[3, "pywin32-post-installation"]], "ESA Overview": [[4, "esa-overview"]], "Naming Conventions": [[4, "naming-conventions"]], "Functions/Methods": [[4, "functions-methods"]], "SimAuto Functions": [[4, "simauto-functions"], [7, "simauto-functions"]], "High-Level/Helper Functions": [[4, "high-level-helper-functions"]], "RunScriptCommand": [[4, "runscriptcommand"]], "clean_df_or_series": [[4, "clean-df-or-series"]], "Data Types": [[4, "data-types"]], "PowerWorld Variables": [[4, "powerworld-variables"]], "Testing Coverage": [[4, "testing-coverage"]], "ESA\u2019s testing coverage as of 2022-10-12 (Git commit: dffb9ef)": [[4, "id3"]], "Contributing": [[4, "contributing"]], "Quick Start": [[5, "quick-start"]], "Welcome!": [[7, "welcome"]], "Citation": [[7, "citation"]], "What Is ESA?": [[7, "what-is-esa"]], "About SimAuto": [[7, "about-simauto"]], "SimAuto Properties": [[7, "simauto-properties"]], "Who Should Use ESA?": [[7, "who-should-use-esa"]], "Why Use ESA?": [[7, "why-use-esa"]], "Projects That Use ESA": [[7, "projects-that-use-esa"]], "Disclaimer and Credits": [[7, "disclaimer-and-credits"]], "Disclaimer": [[7, "disclaimer"]], "Credits and Thanks": [[7, "credits-and-thanks"]], "Changelog": [[7, "changelog"]], "Version 1.3.3": [[7, "version-1-3-3"]], "Version 1.3.2": [[7, "version-1-3-2"]], "Version 1.3.1": [[7, "version-1-3-1"]], "Version 1.3.0": [[7, "version-1-3-0"]], "Version 1.2.9": [[7, "version-1-2-9"]], "Version 1.2.8": [[7, "version-1-2-8"]], "Version 1.2.7": [[7, "version-1-2-7"]], "Version 1.2.6": [[7, "version-1-2-6"]], "Version 1.2.5": [[7, "version-1-2-5"]], "Version 1.2.4": [[7, "version-1-2-4"]], "Version 1.2.3": [[7, "version-1-2-3"]], "Version 1.2.2": [[7, "version-1-2-2"]], "Version 1.2.1": [[7, "version-1-2-1"]], "Version 1.2.0": [[7, "version-1-2-0"]], "Version 1.1.0": [[7, "version-1-1-0"]], "Version 1.0.9": [[7, "version-1-0-9"]], "Version 1.0.8": [[7, "version-1-0-8"]], "Version 1.0.7": [[7, "version-1-0-7"]], "Version 1.0.6": [[7, "version-1-0-6"]], "Version 1.0.5": [[7, "version-1-0-5"]], "Version 1.0.4": [[7, "version-1-0-4"]], "Version 1.0.3": [[7, "version-1-0-3"]], "Version 1.0.2": [[7, "version-1-0-2"]], "Version 1.0.1": [[7, "version-1-0-1"]], "Version 1.0.0": [[7, "version-1-0-0"]], "Examples": [[6, "examples"]], "ESA Quick Start": [[6, "esa-quick-start"]], "Increase Loading in Case": [[6, "increase-loading-in-case"]], "Add Lines to Case": [[6, "add-lines-to-case"]], "Transient Stability Analysis": [[6, "transient-stability-analysis"]], "Fast Contingency Analysis": [[6, "fast-contingency-analysis"]], "Contingency Analysis using PW Built-in capability": [[6, "contingency-analysis-using-pw-built-in-capability"]], "Create Simple Graph Model": [[6, "create-simple-graph-model"]], "Created Graph Model with Edges Weighted by Branch Impedance": [[6, "created-graph-model-with-edges-weighted-by-branch-impedance"]], "Plot Histogram of Line Flows with Matplotlib": [[6, "plot-histogram-of-line-flows-with-matplotlib"]], "esa API Documentation": [[1, "esa-api-documentation"]], "esa Package": [[1, "module-esa"]], "esa.saw Module": [[1, "module-esa.saw"]]}, "indexentries": {"comerror": [[1, "esa.saw.COMError"]], "changeparameters() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParameters"]], "changeparametersmultipleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParametersMultipleElement"]], "changeparametersmultipleelementflatinput() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParametersMultipleElementFlatInput"]], "changeparameterssingleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParametersSingleElement"]], "closecase() (esa.saw.saw method)": [[1, "esa.saw.SAW.CloseCase"]], "closeoneline() (esa.saw.saw method)": [[1, "esa.saw.SAW.CloseOneline"]], "commandnotrespectederror": [[1, "esa.saw.CommandNotRespectedError"]], "createifnotfound (esa.saw.saw property)": [[1, "esa.saw.SAW.CreateIfNotFound"]], "currentdir (esa.saw.saw property)": [[1, "esa.saw.SAW.CurrentDir"]], "error": [[1, "esa.saw.Error"]], "field_list_columns (esa.saw.saw attribute)": [[1, "esa.saw.SAW.FIELD_LIST_COLUMNS"]], "field_list_columns_new (esa.saw.saw attribute)": [[1, "esa.saw.SAW.FIELD_LIST_COLUMNS_NEW"]], "field_list_columns_old (esa.saw.saw attribute)": [[1, "esa.saw.SAW.FIELD_LIST_COLUMNS_OLD"]], "getcaseheader() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetCaseHeader"]], "getfieldlist() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetFieldList"]], "getparameters() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParameters"]], "getparametersmultipleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParametersMultipleElement"]], "getparametersmultipleelementflatoutput() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParametersMultipleElementFlatOutput"]], "getparameterssingleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParametersSingleElement"]], "getspecificfieldlist() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetSpecificFieldList"]], "getspecificfieldmaxnum() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetSpecificFieldMaxNum"]], "listofdevices() (esa.saw.saw method)": [[1, "esa.saw.SAW.ListOfDevices"]], "listofdevicesasvariantstrings() (esa.saw.saw method)": [[1, "esa.saw.SAW.ListOfDevicesAsVariantStrings"]], "listofdevicesflatoutput() (esa.saw.saw method)": [[1, "esa.saw.SAW.ListOfDevicesFlatOutput"]], "loadstate() (esa.saw.saw method)": [[1, "esa.saw.SAW.LoadState"]], "opencase() (esa.saw.saw method)": [[1, "esa.saw.SAW.OpenCase"]], "opencasetype() (esa.saw.saw method)": [[1, "esa.saw.SAW.OpenCaseType"]], "openoneline() (esa.saw.saw method)": [[1, "esa.saw.SAW.OpenOneLine"]], "power_flow_fields (esa.saw.saw attribute)": [[1, "esa.saw.SAW.POWER_FLOW_FIELDS"]], "powerworlderror": [[1, "esa.saw.PowerWorldError"]], "processauxfile() (esa.saw.saw method)": [[1, "esa.saw.SAW.ProcessAuxFile"]], "processid (esa.saw.saw property)": [[1, "esa.saw.SAW.ProcessID"]], "requestbuilddate (esa.saw.saw property)": [[1, "esa.saw.SAW.RequestBuildDate"]], "runscriptcommand() (esa.saw.saw method)": [[1, "esa.saw.SAW.RunScriptCommand"]], "saw (class in esa.saw)": [[1, "esa.saw.SAW"]], "simauto_properties (esa.saw.saw attribute)": [[1, "esa.saw.SAW.SIMAUTO_PROPERTIES"]], "specific_field_list_columns (esa.saw.saw attribute)": [[1, "esa.saw.SAW.SPECIFIC_FIELD_LIST_COLUMNS"]], "specific_field_list_columns_new (esa.saw.saw attribute)": [[1, "esa.saw.SAW.SPECIFIC_FIELD_LIST_COLUMNS_NEW"]], "savecase() (esa.saw.saw method)": [[1, "esa.saw.SAW.SaveCase"]], "savestate() (esa.saw.saw method)": [[1, "esa.saw.SAW.SaveState"]], "sendtoexcel() (esa.saw.saw method)": [[1, "esa.saw.SAW.SendToExcel"]], "solvepowerflow() (esa.saw.saw method)": [[1, "esa.saw.SAW.SolvePowerFlow"]], "tsgetcontingencyresults() (esa.saw.saw method)": [[1, "esa.saw.SAW.TSGetContingencyResults"]], "uivisible (esa.saw.saw property)": [[1, "esa.saw.SAW.UIVisible"]], "writeauxfile() (esa.saw.saw method)": [[1, "esa.saw.SAW.WriteAuxFile"]], "change_and_confirm_params_multiple_element() (esa.saw.saw method)": [[1, "esa.saw.SAW.change_and_confirm_params_multiple_element"]], "change_parameters_multiple_element_df() (esa.saw.saw method)": [[1, "esa.saw.SAW.change_parameters_multiple_element_df"]], "change_to_temperature() (esa.saw.saw method)": [[1, "esa.saw.SAW.change_to_temperature"]], "clean_df_or_series() (esa.saw.saw method)": [[1, "esa.saw.SAW.clean_df_or_series"]], "convert_list_to_variant() (in module esa.saw)": [[1, "esa.saw.convert_list_to_variant"]], "convert_nested_list_to_variant() (in module esa.saw)": [[1, "esa.saw.convert_nested_list_to_variant"]], "convert_to_windows_path() (in module esa.saw)": [[1, "esa.saw.convert_to_windows_path"]], "ctg_autoinsert() (esa.saw.saw method)": [[1, "esa.saw.SAW.ctg_autoinsert"]], "ctg_solveall() (esa.saw.saw method)": [[1, "esa.saw.SAW.ctg_solveall"]], "df_to_aux() (in module esa.saw)": [[1, "esa.saw.df_to_aux"]], "esa": [[1, "module-esa"]], "esa.saw": [[1, "module-esa.saw"]], "exit() (esa.saw.saw method)": [[1, "esa.saw.SAW.exit"]], "fast_n1_test() (esa.saw.saw method)": [[1, "esa.saw.SAW.fast_n1_test"]], "fast_n2_islanding_detection() (esa.saw.saw method)": [[1, "esa.saw.SAW.fast_n2_islanding_detection"]], "get_branch_admittance() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_branch_admittance"]], "get_incidence_matrix() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_incidence_matrix"]], "get_jacobian() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_jacobian"]], "get_key_field_list() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_key_field_list"]], "get_key_fields_for_object_type() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_key_fields_for_object_type"]], "get_lodf_matrix() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_lodf_matrix"]], "get_lodf_matrix_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_lodf_matrix_fast"]], "get_power_flow_results() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_power_flow_results"]], "get_ptdf_matrix_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_ptdf_matrix_fast"]], "get_shift_factor_matrix() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_shift_factor_matrix"]], "get_shift_factor_matrix_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_shift_factor_matrix_fast"]], "get_shunt_admittance() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_shunt_admittance"]], "get_version_and_builddate() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_version_and_builddate"]], "get_ybus() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_ybus"]], "identify_numeric_fields() (esa.saw.saw method)": [[1, "esa.saw.SAW.identify_numeric_fields"]], "module": [[1, "module-esa"], [1, "module-esa.saw"]], "n1_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.n1_fast"]], "n1_protect() (esa.saw.saw method)": [[1, "esa.saw.SAW.n1_protect"]], "n2_bruteforce() (esa.saw.saw method)": [[1, "esa.saw.SAW.n2_bruteforce"]], "n2_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.n2_fast"]], "run_contingency_analysis() (esa.saw.saw method)": [[1, "esa.saw.SAW.run_contingency_analysis"]], "run_ecological_analysis() (esa.saw.saw method)": [[1, "esa.saw.SAW.run_ecological_analysis"]], "run_robustness_analysis() (esa.saw.saw method)": [[1, "esa.saw.SAW.run_robustness_analysis"]], "set_simauto_property() (esa.saw.saw method)": [[1, "esa.saw.SAW.set_simauto_property"]], "to_graph() (esa.saw.saw method)": [[1, "esa.saw.SAW.to_graph"]], "update_ui() (esa.saw.saw method)": [[1, "esa.saw.SAW.update_ui"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["common_issues", "esa", "index", "installation", "overview", "quick_start", "snippets", "welcome"], "filenames": ["common_issues.rst", "esa.rst", "index.rst", "installation.rst", "overview.rst", "quick_start.rst", "snippets.rst", "welcome.rst"], "titles": ["Common Issues", "esa API Documentation", "Easy SimAuto (ESA) Documentation", "Installing ESA", "ESA Overview", "Quick Start", "Examples", "Welcome!"], "terms": {"section": [0, 1, 2, 4, 6, 7], "describ": [0, 1, 4], "some": [0, 1, 3, 4, 5, 6, 7], "mayb": 0, "solut": [0, 1, 6], "If": [0, 1, 2, 3, 4, 5, 6, 7], "you": [0, 1, 2, 3, 4, 5, 6, 7], "encount": [0, 3, 5, 6, 7], "solv": [0, 1, 5, 6, 7], "an": [0, 1, 3, 5, 6, 7], "file": [0, 1, 3, 4, 5, 6, 7], "github": [0, 1, 3, 6, 7], "so": [0, 1, 3, 4, 5, 6, 7], "we": [0, 1, 3, 4, 5, 6, 7], "add": [0, 1, 2, 3, 7], "your": [0, 1, 3, 4, 5, 6, 7], "problem": [0, 1, 3, 6, 7], "befor": [0, 1, 4, 5, 6], "dive": 0, "too": 0, "deepli": 0, "list": [0, 1, 3, 4, 7], "here": [0, 1, 3, 4, 5, 6, 7], "first": [0, 1, 3, 5, 6, 7], "ensur": [0, 1, 3, 6], "all": [0, 1, 3, 4, 5, 6, 7], "prerequisit": [0, 2], "softwar": [0, 1, 7], "includ": [0, 1, 6, 7], "powerworld": [0, 1, 2, 3, 5, 6, 7], "simul": [0, 1, 2, 3, 5, 6, 7], "simauto": [0, 1, 3, 5, 6], "ar": [0, 1, 3, 4, 5, 6, 7], "us": [0, 1, 2, 3, 4, 5], "support": [0, 1, 4, 6, 7], "version": [0, 1, 3, 6], "python": [0, 1, 2, 3, 6, 7], "3": [0, 1, 3, 5, 6], "5": [0, 3, 5, 6], "its": [0, 3, 5, 6], "depend": [0, 1, 3, 7], "mai": [0, 1, 3, 4, 5, 6], "need": [0, 1, 3, 5, 6, 7], "do": [0, 1, 3, 4, 5, 6, 7], "work": [0, 1, 3, 5, 6, 7], "hopefulli": [0, 7], "follow": [0, 1, 3, 5, 6, 7], "simpl": [0, 1, 2, 3, 5, 7], "direct": [0, 1, 3, 4, 7], "help": [0, 1, 3, 7], "fix": [0, 7], "most": [0, 1, 3, 5, 6], "start": [0, 1, 2, 3, 4], "fresh": 0, "complet": [0, 1, 2], "remov": [0, 1, 6], "recreat": 0, "make": [0, 1, 3, 4, 5, 6, 7], "pretti": 0, "easi": [0, 1, 3, 6, 7], "": [0, 1, 2, 3, 5, 6, 7], "guid": 0, "The": [0, 1, 3, 4, 5, 6, 7], "remain": [0, 1], "assum": [0, 1, 3, 6], "re": [0, 1, 2, 3, 4, 5, 6, 7], "type": [0, 1, 2, 3, 7], "command": [0, 1, 3, 4, 5, 6], "activ": [0, 3, 5, 6, 7], "envrion": 0, "reinstal": [0, 3], "pip": [0, 2, 6, 7], "setuptool": [0, 3], "m": [0, 1, 3, 5, 6, 7], "upgrad": [0, 3], "forc": [0, 1, 3], "intention": 0, "instead": [0, 1, 3, 5, 6], "just": [0, 1], "avoid": 0, "possibl": [0, 4], "path": [0, 1, 3, 4, 5, 6, 7], "note": [0, 1, 3, 4, 5, 6, 7], "might": [0, 1, 3, 6], "twice": 0, "fail": 0, "unknown": [0, 6], "reason": [0, 6], "check": [0, 1, 2, 5, 6], "out": [0, 1, 2, 3, 6, 7], "setup": [0, 3], "py": [0, 1, 3, 4, 5, 6, 7], "look": [0, 1, 2, 3, 6], "install_requir": 0, "It": [0, 1, 3, 4, 5, 6, 7], "ll": [0, 1, 3, 4, 6, 7], "someth": [0, 1, 3], "like": [0, 1, 3, 4, 5, 6, 7], "panda": [0, 1, 4, 5, 6, 7], "numpi": [0, 1, 7], "pywin32": [0, 7], "pypiwin32": [0, 3], "what": [0, 1, 2, 3, 5, 6], "found": [0, 1, 3, 4, 5, 6, 7], "under": [0, 7], "To": [0, 1, 3, 5, 6, 7], "compil": [0, 6], "get": [0, 1, 3, 5, 6, 7], "binari": [0, 1, 3], "distribut": [0, 1, 7], "onli": [0, 1, 3, 4, 7], "pick": 0, "choos": [0, 1, 3], "which": [0, 1, 4, 5, 6, 7], "grab": 0, "other": [0, 1, 4, 6, 7], "document": [0, 3, 4, 5, 6, 7], "As": [0, 1, 4, 6, 7], "strictli": 0, "illustr": [0, 5, 6], "exampl": [0, 1, 2, 4, 5, 7], "want": [0, 1, 3, 4, 5, 6, 7], "d": [0, 3, 6, 7], "modifi": [0, 1, 3, 5, 6, 7], "previou": 0, "read": [0, 1, 2, 4, 6], "author": [0, 1, 3, 7], "time": [0, 1, 3, 4, 6, 7], "had": 0, "when": [0, 1, 3, 4, 5, 6, 7], "option": [0, 1, 3, 6], "suspect": 0, "relat": [0, 1, 4, 5, 6, 7], "try": [0, 5, 6], "uninstal": 0, "after": [0, 1, 3, 4, 5, 6], "ve": [0, 3, 4, 5, 6, 7], "automat": [0, 1, 3, 4, 6, 7], "creat": [0, 1, 2, 4, 5, 7], "littl": 0, "extra": [0, 3], "everyth": [0, 4], "8": [0, 1, 5, 6], "possibli": [0, 6], "well": [0, 1, 4, 6, 7], "up": [0, 1, 3, 4, 5, 6, 7], "termin": [0, 3], "insid": [0, 3], "click": 0, "button": 0, "default": [0, 1, 7], "lower": [0, 4], "left": [0, 1], "area": [0, 7], "In": [0, 1, 3, 4, 5, 6, 7], "u": [0, 6, 7], "mine": 0, "same": [0, 1, 3, 6, 7], "requir": [0, 1, 3, 6, 7], "distutil": 0, "cover": [0, 4], "attempt": [0, 1, 3, 7], "thing": 0, "i": [0, 1, 2, 3, 4, 5, 6], "argument": [0, 3, 6, 7], "correct": [0, 1, 7], "api": [0, 2, 4, 5, 7], "see": [0, 1, 2, 3, 4, 5, 6, 7], "stack": 0, "trace": 0, "traceback": [0, 5, 6], "recent": [0, 1, 5, 6, 7], "call": [0, 1, 4, 5, 6], "last": [0, 1, 5, 6], "input": [0, 1, 4, 7], "line": [0, 1, 2, 3, 4, 5, 7], "1": [0, 1, 5, 6], "c": [0, 1, 3, 5, 6, 7], "user": [0, 1, 2, 3, 5, 6, 7], "myuser": [0, 3, 5, 6, 7], "git": [0, 3, 5, 6, 7], "111": 0, "__init__": [0, 4], "self": [0, 5, 6, 7], "filenam": [0, 1, 5, 6], "680": 0, "return": [0, 1, 2, 4, 5, 6, 7], "_call_simauto": [0, 5, 6], "pwb_file_path": 0, "1101": 0, "rais": [0, 1, 5, 6], "output": [0, 1, 3, 4, 5, 6, 7], "0": [0, 1, 4, 5, 6], "often": [0, 1, 3], "due": [0, 1], "bad": [0, 1], "specif": [0, 1, 6], "provid": [0, 1, 3, 4, 6, 7], "full": [0, 1, 4], "extens": [0, 1, 4, 7], "pwb": [0, 1, 5, 6, 7], "exist": [0, 1], "exact": [0, 1], "specifi": [0, 1, 3], "also": [0, 1, 3, 4, 6, 7], "sure": [0, 1, 5, 6], "actual": [0, 1, 5, 6], "open": [0, 1, 3, 6, 7], "text": [0, 1, 6], "editor": 0, "bunch": 0, "weird": 0, "symbol": 0, "unintellig": 0, "mere": 0, "mortal": 0, "upon": 0, "http": [0, 7], "lf": [0, 3], "spec": 0, "v1": 0, "oid": 0, "sha256": 0, "f05131d24da96daa6a6712c5b9d368c81eeaea5dc7d0b6c7bec7d03ccf021b4a": 0, "size": [0, 1, 6], "34": [0, 3], "Then": [0, 3, 5, 6, 7], "pointer": 0, "perform": [0, 1, 5, 6, 7], "pull": [0, 3, 6, 7], "abov": [0, 5, 6], "again": [0, 5, 6], "set": [0, 1, 2, 3, 5, 6, 7], "early_bind": [0, 1, 6], "fals": [0, 1, 6], "while": [0, 1], "unsur": 0, "root": 0, "caus": [0, 1], "seem": [0, 1, 4, 5, 6], "fact": 0, "true": [0, 1, 5, 6], "preemptiv": 0, "permiss": 0, "crop": 0, "cach": 0, "been": [0, 1, 3, 5, 6, 7], "somehow": 0, "corrupt": 0, "perhap": [0, 1], "comput": [0, 1, 7], "crash": 0, "script": [0, 1, 3, 4, 6], "wa": [0, 1, 6, 7], "simpli": [0, 1, 3, 5, 6, 7], "delet": 0, "directori": [0, 1, 3, 6], "adapt": [0, 3, 5, 6, 7], "system": [0, 1, 3, 5, 6, 7], "appdata": 0, "local": [0, 7], "temp": 0, "kei": [0, 1, 3, 5, 6, 7], "part": 0, "isn": [0, 1, 6, 7], "t": [0, 1, 3, 5, 6, 7], "right": 0, "window": [0, 1, 3, 7], "search": [0, 2, 4], "probabl": 0, "could": [0, 5, 6, 7], "observ": [0, 5, 6], "function": [0, 1, 2, 5, 6], "interfac": [0, 1, 3, 7], "either": [0, 1], "gui": [0, 1, 7], "remot": 0, "desktop": 0, "secur": [0, 1, 6], "block": [0, 6, 7], "save": [0, 1, 3, 4, 5, 6], "ani": [0, 1, 3, 4, 7], "result": [0, 1, 4, 5, 6, 7], "gener": [0, 1, 4, 5, 6, 7], "There": [0, 1, 3], "much": [0, 1, 6, 7], "from": [0, 1, 2, 4, 5, 6, 7], "our": [0, 5, 6, 7], "side": 0, "one": [0, 1, 3, 6, 7], "hack": 0, "login": 0, "continu": [0, 6, 7], "singl": [1, 4], "rememb": [1, 5, 6], "acronym": 1, "wrapper": [1, 4, 5, 6, 7], "within": [1, 5, 6, 7], "class": [1, 4, 5, 6, 7], "workhors": 1, "import": [1, 3, 4, 5, 6, 7], "top": [1, 3, 7], "level": [1, 3, 5, 6, 7], "primari": 1, "error": [1, 2, 3, 6, 7], "base": [1, 4, 6, 7], "except": [1, 5, 6], "thi": [1, 2, 3, 4, 5, 6, 7], "never": 1, "directli": [1, 4, 5, 6, 7], "powerworlderror": [1, 5, 6], "report": [1, 3, 7], "comerror": 1, "goe": [1, 7], "wrong": [1, 3], "commun": [1, 7], "commandnotrespectederror": [1, 5, 6], "chang": [1, 3, 5, 6, 7], "respect": [1, 5, 6], "via": [1, 2, 5, 6, 7], "helper": [1, 5, 6, 7], "method": [1, 2, 6, 7], "change_and_confirm_params_multiple_el": [1, 4, 5, 6], "__version__": 1, "short": [1, 4], "autom": [1, 3, 6, 7], "server": [1, 3, 7], "addit": [1, 7], "few": [1, 7], "custom": 1, "powrworld": 1, "can": [1, 3, 4, 5, 6, 7], "sent": 1, "itself": [1, 6], "doe": [1, 3, 5, 6, 7], "should": [1, 2, 3, 5, 6], "doubl": 1, "uivis": [1, 7], "object_field_lookup": 1, "bu": [1, 5, 6, 7], "gen": [1, 5, 6], "load": [1, 2, 7], "shunt": [1, 7], "branch": [1, 2, 7], "createifnotfound": [1, 6, 7], "pw_order": [1, 6, 7], "object": [1, 3, 5, 6, 7], "A": [1, 3, 4, 5, 6, 7], "initi": [1, 2, 3, 5, 6, 7], "case": [1, 2, 3, 4, 5, 7], "field": [1, 5, 6, 7], "given": 1, "retriev": [1, 5, 6, 7], "paramet": [1, 5, 6, 7], "pass": [1, 4], "opencas": [1, 7], "whether": [1, 7], "connect": [1, 6], "earli": 1, "bind": 1, "displai": [1, 7], "ui": 1, "updat": [1, 3, 4, 5, 6, 7], "through": [1, 5, 6, 7], "changeparamet": [1, 7], "thei": [1, 5, 6], "alreadi": [1, 4, 6, 7], "new": [1, 2, 3, 6, 7], "ones": 1, "avail": [1, 3, 4, 5, 7], "lookup": 1, "later": [1, 5, 6], "necessari": [1, 3], "have": [1, 3, 4, 5, 6, 7], "order": [1, 3, 5, 6, 7], "shown": [1, 7], "pw": [1, 2, 7], "sort": [1, 4], "data": [1, 2, 5, 6, 7], "ascend": 1, "microsoft": [1, 3, 7], "recommend": [1, 3, 4, 7], "objecttyp": [1, 4, 5, 6], "str": 1, "paramlist": [1, 5, 6], "valu": [1, 5, 6], "none": [1, 4, 6], "ha": [1, 3, 4, 5, 6, 7], "replac": [1, 6], "changeparameterssingleel": [1, 7], "still": [1, 7], "now": [1, 5, 6, 7], "unlik": 1, "setdata": 1, "createdata": 1, "explicit": 1, "element": 1, "done": [1, 6, 7], "properti": [1, 6], "global": 1, "onc": [1, 3, 6, 7], "appli": 1, "futur": [1, 3, 4, 5, 6], "variabl": [1, 2, 5, 6, 7], "name": [1, 2, 6, 7], "must": [1, 3, 6], "get_key_fields_for_object_typ": [1, 4], "correspond": [1, 4, 7], "changeparametersmultipleel": [1, 4, 5, 6, 7], "valuelist": [1, 5, 6], "multipl": [1, 4], "length": 1, "n": [1, 6, 7], "where": [1, 4, 7], "number": [1, 6, 7], "each": [1, 7], "sub": [1, 6], "item": 1, "alwai": [1, 3, 5, 6], "changeparametersmultipleelementflatinput": 1, "noofobject": 1, "int": [1, 6], "allow": [1, 7], "veri": [1, 6], "similar": 1, "dimens": 1, "arrai": [1, 6], "multi": 1, "change_parameters_multiple_element_df": [1, 4, 6, 7], "easier": [1, 5, 6], "integ": [1, 6], "devic": [1, 6, 7], "count": 1, "closecas": [1, 7], "close": [1, 7], "without": [1, 3, 6, 7], "closeonelin": [1, 7], "onelinenam": 1, "action": [1, 4], "onelin": 1, "diagram": 1, "omit": 1, "focus": 1, "attribut": [1, 7], "set_simauto_properti": 1, "currentdir": [1, 7], "current": [1, 5, 6, 7], "run": [1, 3, 5, 6], "simulatorauto": 1, "process": [1, 6, 7], "rel": 1, "e": [1, 4, 5, 6, 7], "g": [1, 4, 5, 6, 7], "relativenam": 1, "aux": [1, 6, 7], "versu": 1, "r": [1, 3, 5, 6, 7], "program": [1, 7], "bosultenam": 1, "field_list_column": 1, "key_field": 1, "internal_field_nam": 1, "field_data_typ": 1, "descript": [1, 4, 7], "display_nam": 1, "field_list_columns_new": 1, "enter": [1, 3, 6], "field_list_columns_old": 1, "getcasehead": 1, "tupl": 1, "extract": [1, 3, 7], "header": 1, "inform": [1, 7], "string": [1, 4, 7], "contain": [1, 6], "content": 1, "wish": [1, 7], "getfieldlist": [1, 7], "copi": [1, 3, 5, 6], "datafram": [1, 4, 5, 6, 7], "associ": 1, "request": 1, "plan": [1, 3, 7], "modif": 1, "column": [1, 6], "being": [1, 4], "getparamet": [1, 6, 7], "seri": [1, 4], "maintain": 1, "than": [1, 5, 6, 7], "9": [1, 5, 6], "compat": [1, 7], "getparameterssingleel": [1, 6, 7], "implicitli": 1, "indic": [1, 3, 4, 6], "present": [1, 4, 6, 7], "One": [1, 3], "obtain": [1, 3, 6, 7], "index": [1, 2, 6], "clean": [1, 5, 6, 7], "clean_df_or_seri": 1, "appropri": 1, "cannot": [1, 6, 7], "valueerror": 1, "valid": [1, 5, 6], "assertionerror": 1, "getparametersmultipleel": [1, 5, 6, 7], "filternam": 1, "flow": [1, 2, 5, 7], "busnum": [1, 5, 6, 7], "genid": [1, 5, 6], "genmw": [1, 5, 6], "addition": [1, 4, 7], "These": [1, 5, 6, 7], "advanc": [1, 7], "filter": 1, "defin": [1, 4, 5, 6, 7], "match": [1, 3, 6, 7], "todo": 1, "cast": 1, "nan": 1, "consist": [1, 7], "how": [1, 5, 6, 7], "handl": [1, 5, 6, 7], "miss": [1, 4], "getparametersmultipleelementflatoutput": 1, "union": 1, "oper": [1, 3, 6], "notabl": 1, "differ": [1, 5, 6, 7], "dimension": 1, "vector": 1, "topic": 1, "receiv": [1, 7], "extran": 1, "show": [1, 4, 5, 6, 7], "realli": 1, "format": [1, 6], "numberofobjectsreturn": 1, "numberoffieldsperobject": 1, "ob1fld1": 1, "ob1fld2": 1, "ob": 1, "fld": 1, "thu": [1, 7], "tell": 1, "rest": [1, 7], "popul": 1, "2": [1, 3, 4, 5, 6], "pars": [1, 7], "numberof": 1, "particular": [1, 3], "getspecificfieldlist": [1, 7], "fieldlist": 1, "identifi": [1, 5, 6, 7], "about": [1, 2, 4, 5, 6], "mani": 1, "simpler": [1, 3], "give": [1, 4, 7], "more": [1, 4, 5, 6, 7], "repres": 1, "variablenam": 1, "along": [1, 6, 7], "locat": 1, "would": [1, 3, 4, 5, 6, 7], "normal": 1, "appear": 1, "colon": 1, "constant": [1, 5, 6, 7], "specific_field_list_column": 1, "row": [1, 6], "unless": 1, "alphabet": 1, "getspecificfieldmaxnum": [1, 7], "maximum": 1, "exclud": 1, "go": [1, 7], "keep": 1, "mind": 1, "rang": [1, 7], "skip": [1, 6], "listofdevic": [1, 7], "objtyp": 1, "better": [1, 7], "off": 1, "get_gen": 1, "acquir": 1, "etc": [1, 6, 7], "empti": 1, "desir": [1, 3, 6, 7], "model": [1, 2, 5, 7], "otherwis": 1, "listofdevicesasvariantstr": 1, "implement": [1, 3, 4, 6, 7], "almost": [1, 7], "certainli": 1, "sinc": [1, 4, 6, 7], "particularli": 1, "contrast": 1, "below": [1, 3, 4, 5, 6, 7], "variant": 1, "errantli": 1, "releas": [1, 7], "strongli": [1, 3], "wherea": 1, "ad": [1, 6, 7], "manner": [1, 5, 6], "issu": [1, 2, 3, 4, 6, 7], "languag": [1, 7], "listofdevicesflatoutput": 1, "rearrang": 1, "typic": 1, "applic": [1, 7], "circuit": 1, "common": [1, 2, 5, 6, 7], "loadstat": [1, 5, 6, 7], "state": [1, 5, 6], "previous": [1, 5, 6, 7], "savest": [1, 5, 6, 7], "properli": [1, 3, 7], "topologi": [1, 7], "typeerror": 1, "opencasetyp": 1, "filetyp": 1, "menu": 1, "pti": 1, "pti23": 1, "pti24": 1, "pti25": 1, "pti26": 1, "pti27": 1, "pti28": 1, "pti29": 1, "pti30": 1, "pti31": 1, "pti32": 1, "pti33": 1, "ge": 1, "mean": 1, "ge18": 1, "ge14": 1, "ge15": 1, "ge17": 1, "ge19": 1, "cf": 1, "uct": 1, "arevahdb": 1, "special": [1, 7], "detail": [1, 2, 7], "openonelin": [1, 7], "view": 1, "fullscreen": 1, "NO": [1, 6], "showful": 1, "linkmethod": 1, "label": 1, "float": [1, 6], "width": 1, "height": 1, "denot": 1, "ye": [1, 6], "screen": 1, "mode": [1, 6], "leav": 1, "control": [1, 7], "link": [1, 3, 4, 7], "namenomkv": 1, "between": [1, 6], "100": [1, 4, 5, 6, 7], "edg": [1, 2], "percentag": [1, 6], "power_flow_field": [1, 7], "linecircuit": [1, 6], "linemw": 1, "linemvr": 1, "busnam": [1, 5, 6], "buspuvolt": [1, 5, 6], "busangl": [1, 5, 6], "busnetmw": [1, 5, 6], "busnetmvr": [1, 5, 6], "genmvr": [1, 5, 6], "loadid": [1, 6, 7], "loadmw": 1, "loadmvr": 1, "shuntid": 1, "shuntmw": 1, "shuntmvr": 1, "processauxfil": [1, 6, 7], "auxiliari": [1, 6, 7], "conform": 1, "batch": 1, "processid": [1, 7], "id": [1, 4], "seen": 1, "task": [1, 5, 6, 7], "manag": [1, 3], "shutdown": 1, "synchron": 1, "destroi": 1, "until": 1, "matter": 1, "execut": [1, 6, 7], "requestbuildd": [1, 7], "build": [1, 3, 6, 7], "date": 1, "verifi": [1, 3], "contact": 1, "come": [1, 4, 7], "back": [1, 4, 7], "accord": 1, "delphi": 1, "convent": [1, 2, 6], "dai": 1, "decemb": 1, "30th": 1, "1899": 1, "runscriptcommand": [1, 6, 7], "statement": [1, 4], "those": [1, 6, 7], "simauto_properti": 1, "bool": 1, "specific_field_list_columns_new": 1, "savecas": [1, 7], "overwrit": 1, "origin": [1, 7], "write": [1, 4, 7], "raw": 1, "ge21": 1, "pslf": 1, "epc": 1, "ieee": [1, 5, 6, 7], "exchang": 1, "auxsecond": 1, "secondari": [1, 6], "auxlabel": 1, "auxnetwork": 1, "network": [1, 6], "pwb5": 1, "pwb20": 1, "power": [1, 5, 6, 7], "interest": 1, "compar": 1, "variou": 1, "featur": [1, 3], "sendtoexcel": [1, 7], "send": [1, 7], "excel": [1, 7], "spreadsheet": [1, 7], "csv": [1, 6], "to_csv": 1, "sheet": 1, "manual": [1, 3, 5, 6], "predefin": 1, "export": 1, "solvepowerflow": [1, 4, 5, 6, 7], "solmethod": 1, "rectnewt": 1, "calcul": [1, 7], "insensit": 1, "rectangular": 1, "newton": 1, "raphson": 1, "polarnewton": 1, "polar": 1, "gaussseidel": 1, "gauss": 1, "seidel": 1, "fastdec": 1, "fast": [1, 2, 7], "decoupl": 1, "robust": [1, 7], "dc": [1, 7], "pdf": 1, "tsgetcontingencyresult": [1, 6, 7], "ctgname": 1, "objfieldlist": [1, 6], "starttim": 1, "stoptim": 1, "warn": 1, "tssolveal": 1, "tssolv": [1, 6], "On": [1, 3, 5, 6], "main": 1, "transient": [1, 2], "stabil": [1, 2], "extern": [1, 7], "analog": 1, "tsgetresult": 1, "rather": 1, "com": [1, 3, 5, 6, 7], "further": [1, 7], "experi": [1, 7], "conting": [1, 2, 7], "test": [1, 2, 3, 5, 6, 7], "prefer": 1, "code": 1, "pleas": [1, 2, 3, 4, 6, 7], "plot": [1, 2], "subplot": 1, "individu": 1, "pair": [1, 6], "For": [1, 4, 5, 6, 7], "second": [1, 7], "begin": 1, "stop": 1, "end": [1, 3], "two": [1, 3, 6, 7], "meta": [1, 6], "altern": 1, "map": [1, 7], "primarykei": 1, "secondarykei": 1, "colhead": 1, "forth": 1, "unfortun": [1, 3], "abil": 1, "transform": [1, 6, 7], "limit": [1, 6, 7], "numer": 1, "to_numer": 1, "determin": [1, 7], "unmodifi": 1, "timestamp": 1, "visibl": 1, "behavior": [1, 5, 6], "writeauxfil": [1, 7], "toappend": 1, "command_df": [1, 5, 6], "confirm": [1, 5, 6, 7], "intern": 1, "lighter": 1, "weight": [1, 2], "riskier": 1, "effort": 1, "made": [1, 7], "change_to_temperatur": 1, "ndarrai": 1, "r25": 1, "7": [1, 5, 6], "283": 1, "r75": 1, "688": 1, "resist": 1, "temperatur": [1, 7], "coeffici": 1, "std": 1, "738": 1, "2012": 1, "25": [1, 5, 6], "degre": 1, "celsiu": 1, "target": 1, "uniform": 1, "assign": 1, "2d": 1, "per": [1, 5, 6, 7], "unit": [1, 5, 6, 7], "75": 1, "obj": 1, "came": 1, "less": [1, 4, 6, 7], "place": [1, 7], "even": [1, 6], "unnecessari": 1, "white": [1, 6], "space": [1, 6], "ctg_autoinsert": 1, "object_typ": 1, "dict": 1, "auto": 1, "insert": 1, "dictionari": 1, "ctg_autoinsert_opt": 1, "ctg_solveal": 1, "mark": 1, "exit": [1, 5, 6, 7], "fast_n1_test": 1, "pure": 1, "lodf": [1, 7], "analysi": [1, 2, 5, 7], "boolean": 1, "fast_n2_islanding_detect": 1, "quickli": [1, 7], "island": [1, 6, 7], "ctg": 1, "matrix": [1, 6, 7], "get_branch_admitt": 1, "admitt": [1, 6], "usual": 1, "known": [1, 4, 5, 6], "yf": 1, "yt": 1, "spars": [1, 6, 7], "get_incidence_matrix": 1, "incid": [1, 7], "get_jacobian": [1, 7], "jacobian": 1, "scipi": [1, 7], "csr": 1, "param": [1, 5, 6], "convert": [1, 7], "csr_matrix": 1, "get_key_field_list": [1, 5, 6, 7], "conveni": [1, 6], "worth": [1, 4], "get_lodf_matrix": [1, 7], "precis": 1, "post": [1, 2], "By": 1, "larger": 1, "1000": [1, 7], "small": 1, "decim": [1, 7], "linear": 1, "dcp": [1, 7], "take": [1, 7], "phase": [1, 7], "shifter": [1, 7], "account": 1, "ac": 1, "NOT": [1, 6], "closur": 1, "sensitivi": 1, "lcdf": 1, "sensit": [1, 7], "pre": [1, 6, 7], "voltag": [1, 5, 6, 7], "angl": [1, 5, 6], "mlcdf": [1, 7], "suppos": 1, "exactli": 1, "tabl": [1, 4], "get_lodf_matrix_fast": 1, "4": [5, 6], "outag": [1, 7], "factor": [1, 7], "nativ": [1, 7], "faster": [1, 6], "larg": [1, 3, 7], "dens": 1, "get_power_flow_result": [1, 4, 5, 6, 7], "additional_field": [1, 7], "extend": [1, 3, 7], "invalid": 1, "get_ptdf_matrix_fast": 1, "transfer": 1, "get_shift_factor_matrix": [1, 7], "inject": [1, 5, 6], "shift": 1, "calculateshiftfactorsmultipleel": 1, "get_shift_factor_matrix_fast": 1, "suscept": 1, "get_shunt_admitt": 1, "ysh": 1, "get_version_and_buildd": [1, 7], "get_ybu": [1, 7], "ybu": [1, 6, 7], "matlab": 1, "identify_numeric_field": 1, "aren": [1, 6], "linestatu": 1, "np": 1, "n1_fast": 1, "c1_isl": 1, "f": [1, 6], "lim": [1, 6], "statu": 1, "n1_protect": [1, 6], "margin": 1, "adjust": [1, 6, 7], "elimin": 1, "overload": 1, "n2_bruteforc": 1, "a0": 1, "bruteforc": 1, "n2_fast": 1, "run_contingency_analysi": [1, 6], "expect": [1, 3, 5, 6, 7], "ca": [1, 6], "run_ecological_analysi": 1, "mw": 1, "split_gener": 1, "leverag": [1, 7], "ecolog": [1, 7], "quantifi": 1, "variti": 1, "refer": [1, 4], "h": 1, "huang": 1, "z": 1, "mao": [1, 7], "layton": 1, "k": 1, "davi": [1, 7], "orient": 1, "optim": [1, 7], "surviv": 1, "transact": 1, "doi": [1, 7], "10": [1, 3, 5, 6, 7], "1109": 1, "tpwr": 1, "2022": [1, 6], "3168226": 1, "panyam": 1, "v": 1, "2019": 1, "ecosystem": 1, "perspect": 1, "design": [1, 6, 7], "sustain": 1, "procedia": 1, "cirp": 1, "80": 1, "269": 1, "274": 1, "real": [1, 6, 7], "reactiv": [1, 6, 7], "appar": 1, "over": [1, 6], "mvr": 1, "mva": [1, 6], "split": [1, 6], "aggreg": 1, "consid": 1, "metric": 1, "reco": 1, "asc": 1, "develop": [1, 4, 7], "capac": [1, 7], "cycl": 1, "throughflow": 1, "tstc": 1, "finn": 1, "ci": 1, "total": 1, "overhead": 1, "tso": 1, "run_robustness_analysi": 1, "rcf": 1, "grid": [1, 6, 7], "against": 1, "cascad": 1, "failur": [1, 3, 7], "topolog": 1, "structur": [1, 6], "entropi": 1, "formula": 1, "paper": [1, 6, 7], "ko\u00e7": 1, "yakup": 1, "martijn": 1, "warnier": 1, "robert": 1, "kooij": 1, "franc": 1, "mt": 1, "brazier": 1, "safeti": 1, "scienc": 1, "59": 1, "2013": 1, "126": 1, "134": 1, "property_nam": 1, "property_valu": 1, "to_graph": [1, 7], "node": [1, 7], "geograph": 1, "node_attr": 1, "edge_attr": 1, "multigraph": [1, 6], "multidigraph": 1, "graph": [1, 2, 7], "networkx": [1, 6, 7], "inter": [1, 7], "substat": [1, 7], "parallel": [1, 6, 7], "preserv": [1, 7], "iter": 1, "them": [1, 5, 6], "belong": 1, "latitud": 1, "longitud": 1, "unavail": 1, "update_ui": [1, 7], "render": 1, "convert_list_to_vari": 1, "list_in": 1, "convert_nested_list_to_vari": 1, "convert_to_windows_path": 1, "p": 1, "df_to_aux": 1, "fp": 1, "df": [1, 6], "object_nam": 1, "axd": [1, 7], "handler": 1, "packag": [2, 4, 6, 7], "eas": [2, 7], "interact": [2, 4, 6, 7], "seek": 2, "comprehens": [2, 6], "instal": [2, 4, 6, 7], "instruct": 2, "rich": 2, "welcom": [2, 4], "changelog": 2, "citat": 2, "who": [2, 3], "why": 2, "project": [2, 3], "That": 2, "disclaim": 2, "credit": 2, "overview": 2, "virtual": [2, 6], "environ": [2, 4, 6, 7], "configur": 2, "sourc": [1, 2, 7], "quick": [2, 7], "coverag": [2, 3, 7], "contribut": 2, "saw": [2, 4, 5, 6, 7], "modul": [2, 5, 6, 7], "increas": [2, 7], "built": [2, 7], "capabl": [2, 7], "imped": [2, 7], "histogram": 2, "matplotlib": 2, "instanc": [1, 2, 5, 6, 7], "page": [2, 3, 7], "tl": 3, "dr": 3, "ever": 3, "download": 3, "17": [3, 5, 6, 7], "21": [3, 6, 7], "guarante": 3, "16": [3, 5, 6, 7], "abl": [3, 6], "access": [3, 5, 6, 7], "storag": 3, "repositori": [3, 5, 6], "shouldn": 3, "anyth": 3, "els": 3, "encourag": 3, "nice": [3, 5, 6], "tutori": 3, "machin": [3, 6, 7], "prompt": 3, "hit": 3, "simultan": 3, "cmd": [3, 6], "popup": 3, "cd": 3, "my": [3, 5, 6], "ex": 3, "venv": 3, "bat": 3, "next": 3, "compon": 3, "cleanli": 3, "flag": 3, "unabl": 3, "find": [3, 5, 6, 7], "librari": [3, 6], "conda": 3, "wai": [3, 6, 7], "quit": 3, "tool": [3, 7], "suit": 3, "step": 3, "zip": 3, "archiv": 3, "clone": 3, "bash": 3, "cours": [3, 4], "similarli": 3, "doc": 3, "both": [3, 5, 6], "extras_requir": 3, "headach": 3, "down": 3, "simplest": [3, 7], "correctli": [3, 7], "rear": 3, "head": 3, "point": [3, 5, 6, 7], "print": [3, 5, 6, 7], "messag": [1, 3], "emit": 3, "figur": 3, "own": [3, 6, 7], "feel": 3, "free": [3, 7], "everyon": 3, "At": [3, 4], "discov": 3, "dure": [3, 7], "log": 3, "ran": 3, "73": 3, "542": 3, "ok": 3, "okai": 3, "assess": 3, "incant": 3, "coveragerc": 3, "wide": [3, 7], "regist": 3, "servic": 3, "elev": 3, "pywin32_postinstal": 3, "aforement": 3, "fulli": [4, 6, 7], "hint": 4, "pycharm": 4, "highlight": 4, "incorrect": 4, "brows": 4, "notic": 4, "mix": 4, "camelcas": 4, "lower_case_with_underscor": 4, "higher": 4, "toward": 4, "bottom": 4, "upper": 4, "letter": 4, "everi": 4, "mention": 4, "nasti": 4, "lead": 4, "trail": 4, "whitespac": 4, "best": [4, 7], "afterward": 4, "translat": 4, "deal": 4, "troubl": 4, "thoroughli": 4, "noth": 4, "oppos": 4, "concis": [4, 6], "move": 4, "team": 4, "strive": [4, 7], "good": [4, 5, 6], "latest": [4, 7], "num": 4, "percent": [4, 6], "1146": [], "md": 4, "14": [5, 6, 7], "esa": 5, "texa": [5, 7], "univers": [5, 7], "washington": 5, "sever": [5, 6, 7], "purpos": [5, 6], "demonstr": [5, 6], "high": [5, 6], "wrap": [5, 6, 7], "case_path": [5, 6, 7], "ieee_14": [5, 6, 7], "bus_pws_version_21": [5, 6, 7], "buse": [5, 6], "life": [5, 6], "bus_data": [5, 6], "060000": [5, 6], "000000": [5, 6, 7], "232": [5, 6], "391691": [5, 6], "549389": [5, 6], "045000": [5, 6], "982553": [5, 6], "18": [5, 6, 7], "300001": [5, 6], "30": [5, 6], "855957": [5, 6], "010000": [5, 6], "12": [5, 6, 7], "725027": [5, 6], "94": [5, 6, 7], "199997": [5, 6, 7], "6": [5, 6], "074852": [5, 6], "017672": [5, 6], "312829": [5, 6], "47": [5, 6, 7], "799999": [5, 6, 7], "900000": [5, 6, 7], "019515": [5, 6], "773799": [5, 6], "600000": [5, 6, 7], "070000": [5, 6], "220869": [5, 6], "11": [5, 6, 7], "200000": [5, 6, 7], "229700": [5, 6], "061520": [5, 6], "13": [5, 6, 7], "359558": [5, 6], "090000": [5, 6], "359571": [5, 6], "623067": [5, 6], "055933": [5, 6], "938458": [5, 6], "29": [5, 6, 7], "499999": [5, 6, 7], "584888": [5, 6], "050986": [5, 6], "15": [5, 6, 7], "097221": [5, 6], "800000": [5, 6, 7], "056907": [5, 6], "790552": [5, 6], "500000": [5, 6, 7], "055189": [5, 6], "075512": [5, 6], "100000": [5, 6, 7], "050383": [5, 6], "156196": [5, 6], "500001": [5, 6, 7], "035531": [5, 6], "033565": [5, 6], "gen_data": [5, 6], "40": [5, 6], "000001": [5, 6], "43": [5, 6], "555957": [5, 6], "729700": [5, 6], "learn": [5, 6, 7], "let": [5, 6, 7], "But": [5, 6], "know": [5, 6, 7], "gen_key_field": [5, 6], "50": [5, 6, 7], "did": [5, 6, 7], "new_gen_data": [5, 6], "spoiler": [5, 6], "new_bus_data": [5, 6], "col": [5, 6], "diff": [5, 6], "000000e": [5, 6], "00": [5, 6], "100000e": [5, 6], "07": [5, 6], "015596": [5, 6], "700000e": [5, 6], "813164": [5, 6], "650700e": [5, 6], "03": [5, 6], "920185": [5, 6], "207540e": [5, 6], "238592": [5, 6], "900000e": [5, 6], "586528": [5, 6], "628790e": [5, 6], "309167": [5, 6], "190000e": [5, 6], "06": [5, 6, 7], "655362": [5, 6], "189370e": [5, 6], "284631": [5, 6], "256150e": [5, 6], "987861": [5, 6], "514030e": [5, 6], "297895": [5, 6], "400800e": [5, 6], "04": [5, 6], "709888": [5, 6], "351040e": [5, 6], "827348": [5, 6], "736110e": [5, 6], "662158": [5, 6], "wouldn": [5, 6], "didn": [5, 6], "were": [5, 6, 7], "luck": [5, 6], "gen_copi": [5, 6], "deep": [5, 6, 7], "loc": [5, 6], "isin": [5, 6], "incredibli": [5, 6], "becaus": [5, 6], "unexpectedli": [5, 6], "tri": [5, 6], "shape": [5, 6], "doesn": [5, 6], "drop": [5, 6], "axi": [5, 6], "slack": [5, 6], "62": [5, 6], "128144": [5, 6], "986289": [5, 6], "385347": [5, 6], "893420": [5, 6], "399502": [5, 6], "gen_v": [5, 6], "genregpuvolt": [5, 6], "025425": [5, 6], "stdin": [5, 6], "199": [5, 6], "genvoltset": [5, 6], "confus": [5, 6], "967": [5, 6], "1227": [5, 6], "hasn": [5, 6], "store": [5, 6], "yet": [5, 6], "empow": [5, 6], "whatev": [5, 6], "fit": [5, 6], "oh": [5, 6], "final": [5, 6, 7], "yourself": [5, 6], "don": [5, 6, 7], "hang": [5, 6], "around": [5, 6], "walk": [5, 6], "readi": [5, 6], "improv": [5, 6, 7], "usag": 6, "earlier": 6, "share": 6, "though": 6, "reader": 6, "friendli": [6, 7], "test_saw": 6, "uniformli": [6, 7], "kf": [6, 7], "demand": [6, 7], "load_fram": [6, 7], "loadsmw": [6, 7], "loadsmvr": [6, 7], "699999": [6, 7], "700000": [6, 7], "19": [6, 7], "599999": [6, 7], "inde": [6, 7], "new_load": [6, 7], "32": [6, 7], "549998": [6, 7], "050001": [6, 7], "141": [6, 7], "299999": [6, 7], "28": [6, 7], "71": [6, 7], "699995": [6, 7], "850000": [6, 7], "400000": [6, 7], "800001": [6, 7], "250000": [6, 7], "44": [6, 7], "24": [6, 7], "150000": [6, 7], "20": [6, 7], "250002": [6, 7], "22": [6, 7], "350000": [6, 7], "transmiss": [6, 7], "candidate_lin": 6, "referenc": 6, "tx2000": 6, "tx2000_base_pws_version_21": 6, "candidatelin": 6, "pd": 6, "line_df": 6, "read_csv": 6, "ckt": 6, "x": 6, "b": 6, "8155": 6, "5358": 6, "00037": 6, "00750": 6, "52342": 6, "2768": 6, "8154": 6, "8135": 6, "00895": 6, "03991": 6, "00585": 6, "149": 6, "8153": 6, "8108": 6, "01300": 6, "05400": 6, "02700": 6, "186": 6, "8152": 6, "8160": 6, "00538": 6, "03751": 6, "00613": 6, "221": 6, "8057": 6, "instanti": 6, "renam": [6, 7], "power_world_object_field": 6, "xlsx": 6, "relev": 6, "liner": 6, "linex": 6, "linec": 6, "lineamva": 6, "inplac": 6, "dtype": 6, "tertiari": 6, "line_key_field": 6, "first_lin": 6, "tolist": 6, "693": 6, "edit": 6, "enabl": [6, 7], "creation": 6, "easili": 6, "automag": 6, "entermod": 6, "procedur": 6, "queri": 6, "tsgetcongencyresult": 6, "il200": 6, "activsg200": 6, "pf": 6, "t1": 6, "t2": 6, "stepsiz": 6, "01": 6, "ctg_name": 6, "visual": [6, 7], "area_avg": 6, "hz": 6, "sa": 6, "y": 6, "whole": [6, 7], "datapoint": 6, "rare": 6, "situat": 6, "slightli": [6, 7], "invok": 6, "451": 6, "156": 6, "danger": 6, "contig": 6, "138": 6, "violat": 6, "filepath_aux": 6, "tx2000_contingency_auxfil": 6, "cmd_solv": 6, "ctgsolveal": 6, "ctglabel": 6, "ctgsolv": 6, "ctgproc": 6, "ctgcustmonviol": 6, "ctgviol": 6, "popular": 6, "analyz": 6, "algorithm": [6, 7], "nx": 6, "branch_df": 6, "1001": 6, "1064": 6, "1071": 6, "1002": 6, "1007": 6, "3199": 6, "8157": 6, "5124": 6, "3200": 6, "8156": 6, "3201": 6, "8158": 6, "8030": 6, "3202": 6, "8159": 6, "3203": 6, "3204": 6, "from_pandas_edgelist": 6, "create_us": 6, "number_of_nod": 6, "2000": [6, 7], "number_of_edg": 6, "older": 6, "throw": 6, "saveybusinmatlabformat": 6, "onward": 6, "o": 6, "ybus_fil": 6, "mat": 6, "memori": 6, "readlin": 6, "mat_str": 6, "j": [6, 7], "sqrt": 6, "semicolon": 6, "coupl": [6, 7], "regular": 6, "express": 6, "ie": 6, "fe": 6, "exp": 6, "loop": [6, 7], "ignor": 6, "diagon": 6, "entri": [1, 6], "idx1": 6, "idx2": 6, "imag": 6, "group": 6, "neg_admitt": 6, "1j": 6, "zerodivisionerror": 6, "add_edg": 6, "explor": 6, "data_1_2": 6, "get_edge_data": 6, "01937987032338931": 6, "05917003035204804": 6, "static": 6, "anim": 6, "pyplot": 6, "plt": 6, "branch_key_field": 6, "lineperc": 6, "branch_data": 6, "879348": 6, "35": 6, "731801": 6, "342946": 6, "36": 6, "371236": 6, "46": 6, "769588": 6, "982494": 6, "641971": 6, "57": 6, "452701": 6, "ax": 6, "kind": 6, "hist": 6, "set_xlabel": 6, "set_ylabel": 6, "set_titl": 6, "articl": 7, "21105": 7, "joss": 7, "02289": 7, "url": 7, "org": 7, "year": 7, "2020": 7, "publish": 7, "journal": 7, "volum": 7, "2289": 7, "brandon": 7, "l": 7, "thayer": 7, "zeyu": 7, "yije": 7, "liu": 7, "katherin": 7, "thoma": 7, "overby": 7, "titl": 7, "simplifi": 7, "commerci": 7, "grade": 7, "electr": 7, "licens": 7, "worri": 7, "convers": 7, "scientif": 7, "love": 7, "motiv": 7, "advantag": 7, "launch": 7, "anoth": 7, "manipul": 7, "essenc": 7, "graphic": 7, "wealth": 7, "opportun": 7, "co": 7, "And": 7, "web": 7, "cumbersom": 7, "tediou": 7, "difficult": 7, "excelapp": 7, "audienc": 7, "industri": 7, "practition": 7, "planner": 7, "energi": 7, "trader": 7, "research": 7, "domain": 7, "student": 7, "faculti": 7, "enthusiast": 7, "profici": 7, "familiar": 7, "signific": 7, "knowledg": 7, "whatsoev": 7, "nor": 7, "ultim": 7, "understand": 7, "abstract": 7, "awai": 7, "solid": 7, "put": 7, "breez": 7, "non": 7, "restrict": 7, "plethora": 7, "assur": 7, "intend": 7, "hassl": 7, "unlock": 7, "realm": 7, "signal": 7, "transport": 7, "natur": 7, "ga": 7, "dynam": 7, "tune": 7, "relai": 7, "ai": 7, "ml": 7, "modern": 7, "lightweight": 7, "academ": 7, "util": 7, "past": 7, "cite": 7, "gym": 7, "standard": 7, "reinforc": 7, "carri": 7, "drl": 7, "divers": 7, "condit": 7, "scenario": 7, "renew": 7, "schedul": 7, "commit": 7, "vari": 7, "competit": 7, "host": 7, "depart": 7, "geomagnet": 7, "disturb": 7, "gmd": 7, "affect": 7, "magnet": 7, "earth": 7, "induc": 7, "superimpos": 7, "accept": 7, "martinez": 7, "et": 7, "al": 7, "entitl": 7, "undergradu": 7, "consider": 7, "mitig": 7, "mid": 7, "late": 7, "strategi": 7, "programmat": 7, "gic": 7, "propos": 7, "minim": 7, "effect": 7, "ongo": 7, "monitor": 7, "world": 7, "six": 7, "magnetomet": 7, "deploi": 7, "measur": 7, "ground": 7, "conduct": 7, "fed": 7, "theori": 7, "concept": 7, "julia": 7, "easysimauto": 7, "jl": 7, "amaz": 7, "far": 7, "warranti": 7, "held": 7, "liabl": 7, "bug": 7, "feedback": 7, "ticket": 7, "guidanc": 7, "oversight": 7, "professor": 7, "founder": 7, "corpor": 7, "fund": 7, "engin": 7, "station": 7, "smart": 7, "center": 7, "award": 7, "de": 7, "oe0000895": 7, "sandia": 7, "nation": 7, "laboratori": 7, "222444": 7, "colleagu": 7, "wei": 7, "trinh": 7, "diana": 7, "wallison": 7, "xiangtian": 7, "zheng": 7, "hope": 7, "enjoi": 7, "prior": 7, "pypi": 7, "typo": 7, "linalg": 7, "preliminari": 7, "streamlit": 7, "thread": 7, "safe": 7, "isf": 7, "ptdf": 7, "offici": 7, "pw23": 7, "pw22": 7, "nov": 7, "dec": 7, "aot": 7, "greatli": 7, "simd": 7, "jit": 7, "finish": 7, "synthet": 7, "prof": 7, "kostya": 7, "turitsyn": 7, "mit": 7, "facilit": 7, "directedgraph": 7, "began": 7, "readm": 7, "turn": 7, "delimit": 7, "perman": 7, "detect": 7, "europ": 7, "elsewher": 7, "robinroch": 7, "review": 7, "comment": 7, "build_dat": 7, "impli": 7, "howev": 7, "beta": 7, "accordingli": 7, "suffix": 7, "pws_version_": 7, "discuss": 7, "meet": 7, "coverage_to_rst": 7, "clear": 7, "minor": 7, "1158": [], "runscriptcommand2": [1, 7], "statusmessag": 1, "success": 1, "succes": 1, "programinform": [1, 7], "subject": 1, "1196": 4, "26": 6, "word": 6, "determinebranchesthatcreateisland": 7, "determinepathdist": 7, "determineshortestpath": 7}, "objects": {"": [[1, 0, 0, "-", "esa"]], "esa": [[1, 0, 0, "-", "saw"]], "esa.saw": [[1, 1, 1, "", "COMError"], [1, 1, 1, "", "CommandNotRespectedError"], [1, 1, 1, "", "Error"], [1, 1, 1, "", "PowerWorldError"], [1, 2, 1, "", "SAW"], [1, 6, 1, "", "convert_list_to_variant"], [1, 6, 1, "", "convert_nested_list_to_variant"], [1, 6, 1, "", "convert_to_windows_path"], [1, 6, 1, "", "df_to_aux"]], "esa.saw.SAW": [[1, 3, 1, "", "ChangeParameters"], [1, 3, 1, "", "ChangeParametersMultipleElement"], [1, 3, 1, "", "ChangeParametersMultipleElementFlatInput"], [1, 3, 1, "", "ChangeParametersSingleElement"], [1, 3, 1, "", "CloseCase"], [1, 3, 1, "", "CloseOneline"], [1, 4, 1, "", "CreateIfNotFound"], [1, 4, 1, "", "CurrentDir"], [1, 5, 1, "", "FIELD_LIST_COLUMNS"], [1, 5, 1, "", "FIELD_LIST_COLUMNS_NEW"], [1, 5, 1, "", "FIELD_LIST_COLUMNS_OLD"], [1, 3, 1, "", "GetCaseHeader"], [1, 3, 1, "", "GetFieldList"], [1, 3, 1, "", "GetParameters"], [1, 3, 1, "", "GetParametersMultipleElement"], [1, 3, 1, "", "GetParametersMultipleElementFlatOutput"], [1, 3, 1, "", "GetParametersSingleElement"], [1, 3, 1, "", "GetSpecificFieldList"], [1, 3, 1, "", "GetSpecificFieldMaxNum"], [1, 3, 1, "", "ListOfDevices"], [1, 3, 1, "", "ListOfDevicesAsVariantStrings"], [1, 3, 1, "", "ListOfDevicesFlatOutput"], [1, 3, 1, "", "LoadState"], [1, 3, 1, "", "OpenCase"], [1, 3, 1, "", "OpenCaseType"], [1, 3, 1, "", "OpenOneLine"], [1, 5, 1, "", "POWER_FLOW_FIELDS"], [1, 3, 1, "", "ProcessAuxFile"], [1, 4, 1, "", "ProcessID"], [1, 4, 1, "", "ProgramInformation"], [1, 4, 1, "", "RequestBuildDate"], [1, 3, 1, "", "RunScriptCommand"], [1, 3, 1, "", "RunScriptCommand2"], [1, 5, 1, "", "SIMAUTO_PROPERTIES"], [1, 5, 1, "", "SPECIFIC_FIELD_LIST_COLUMNS"], [1, 5, 1, "", "SPECIFIC_FIELD_LIST_COLUMNS_NEW"], [1, 3, 1, "", "SaveCase"], [1, 3, 1, "", "SaveState"], [1, 3, 1, "", "SendToExcel"], [1, 3, 1, "", "SolvePowerFlow"], [1, 3, 1, "", "TSGetContingencyResults"], [1, 4, 1, "", "UIVisible"], [1, 3, 1, "", "WriteAuxFile"], [1, 3, 1, "", "change_and_confirm_params_multiple_element"], [1, 3, 1, "", "change_parameters_multiple_element_df"], [1, 3, 1, "", "change_to_temperature"], [1, 3, 1, "", "clean_df_or_series"], [1, 3, 1, "", "ctg_autoinsert"], [1, 3, 1, "", "ctg_solveall"], [1, 3, 1, "", "exit"], [1, 3, 1, "", "fast_n1_test"], [1, 3, 1, "", "fast_n2_islanding_detection"], [1, 3, 1, "", "get_branch_admittance"], [1, 3, 1, "", "get_incidence_matrix"], [1, 3, 1, "", "get_jacobian"], [1, 3, 1, "", "get_key_field_list"], [1, 3, 1, "", "get_key_fields_for_object_type"], [1, 3, 1, "", "get_lodf_matrix"], [1, 3, 1, "", "get_lodf_matrix_fast"], [1, 3, 1, "", "get_power_flow_results"], [1, 3, 1, "", "get_ptdf_matrix_fast"], [1, 3, 1, "", "get_shift_factor_matrix"], [1, 3, 1, "", "get_shift_factor_matrix_fast"], [1, 3, 1, "", "get_shunt_admittance"], [1, 3, 1, "", "get_version_and_builddate"], [1, 3, 1, "", "get_ybus"], [1, 3, 1, "", "identify_numeric_fields"], [1, 3, 1, "", "n1_fast"], [1, 3, 1, "", "n1_protect"], [1, 3, 1, "", "n2_bruteforce"], [1, 3, 1, "", "n2_fast"], [1, 3, 1, "", "run_contingency_analysis"], [1, 3, 1, "", "run_ecological_analysis"], [1, 3, 1, "", "run_robustness_analysis"], [1, 3, 1, "", "set_simauto_property"], [1, 3, 1, "", "to_graph"], [1, 3, 1, "", "update_ui"]]}, "objtypes": {"0": "py:module", "1": "py:exception", "2": "py:class", "3": "py:method", "4": "py:property", "5": "py:attribute", "6": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "exception", "Python exception"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "function", "Python function"]}, "titleterms": {"common": 0, "issu": 0, "instal": [0, 3], "virtual": [0, 3], "environ": [0, 3], "pycharm": 0, "error": 0, "initi": 0, "saw": [0, 1], "instanc": 0, "esa": [0, 1, 2, 3, 4, 6, 7], "powerworlderror": 0, "opencas": 0, "have": 0, "occur": 0, "typeerror": 0, "thi": 0, "com": 0, "object": 0, "can": 0, "autom": 0, "makepi": 0, "process": 0, "pleas": 0, "run": 0, "manual": 0, "attributeerror": 0, "modul": [0, 1], "win32com": 0, "gen_pi": 0, "c99f1760": 0, "277e": 0, "11d5": 0, "a106": 0, "00c04f469176x0x20x0": 0, "ha": 0, "attribut": 0, "clsidtoclassmap": 0, "modulenotfounderror": 0, "pywintyp": 0, "access": 0, "violat": 0, "api": 1, "document": [1, 2], "packag": [1, 3], "easi": 2, "simauto": [2, 4, 7], "content": 2, "indic": 2, "tabl": 2, "overview": [3, 4], "prerequisit": 3, "configur": 3, "via": 3, "pip": 3, "from": 3, "sourc": 3, "post": 3, "cursori": 3, "verif": 3, "success": 3, "execut": 3, "unittest": 3, "pywin32": 3, "name": 4, "convent": 4, "function": [4, 7], "method": 4, "high": 4, "level": 4, "helper": 4, "runscriptcommand": 4, "clean_df_or_seri": 4, "data": 4, "type": 4, "powerworld": 4, "variabl": 4, "test": 4, "coverag": 4, "": 4, "2022": 4, "09": 4, "27": [], "git": 4, "commit": 4, "0e92b98": [], "contribut": 4, "quick": [5, 6], "start": [5, 6], "exampl": 6, "increas": 6, "load": 6, "case": 6, "add": 6, "line": 6, "transient": 6, "stabil": 6, "analysi": 6, "fast": 6, "conting": 6, "us": [6, 7], "pw": 6, "built": 6, "capabl": 6, "creat": 6, "simpl": 6, "graph": 6, "model": 6, "edg": 6, "weight": 6, "branch": 6, "imped": 6, "plot": 6, "histogram": 6, "flow": 6, "matplotlib": 6, "welcom": 7, "citat": 7, "what": 7, "i": 7, "about": 7, "properti": 7, "who": 7, "should": 7, "why": 7, "project": 7, "That": 7, "disclaim": 7, "credit": 7, "thank": 7, "changelog": 7, "version": 7, "1": 7, "3": 7, "2": 7, "0": 7, "9": 7, "8": 7, "7": 7, "6": 7, "5": 7, "4": 7, "10": [], "12": 4, "dffb9ef": [], "9bf6a24": 4}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Common Issues": [[0, "common-issues"]], "Installation/Virtual Environment Issues": [[0, "installation-virtual-environment-issues"]], "PyCharm Virtual Environments": [[0, "pycharm-virtual-environments"]], "Errors/Issues Initializing a SAW Instance": [[0, "errors-issues-initializing-a-saw-instance"]], "esa.saw.PowerWorldError: OpenCase: Errors have occurred": [[0, "esa-saw-powerworlderror-opencase-errors-have-occurred"]], "TypeError: This COM object can not automate the makepy process - please run makepy manually for this object": [[0, "typeerror-this-com-object-can-not-automate-the-makepy-process-please-run-makepy-manually-for-this-object"]], "AttributeError: module \u2018win32com.gen_py.C99F1760-277E-11D5-A106-00C04F469176x0x20x0\u2019 has no attribute \u2018CLSIDToClassMap\u2019": [[0, "attributeerror-module-win32com-gen-py-c99f1760-277e-11d5-a106-00c04f469176x0x20x0-has-no-attribute-clsidtoclassmap"]], "ModuleNotFoundError: no module pywintypes": [[0, "modulenotfounderror-no-module-pywintypes"]], "esa.saw.PowerWorldError: Access Violation": [[0, "esa-saw-powerworlderror-access-violation"]], "esa API Documentation": [[1, "esa-api-documentation"]], "esa Package": [[1, "module-esa"]], "esa.saw Module": [[1, "module-esa.saw"]], "Easy SimAuto (ESA) Documentation": [[2, "easy-simauto-esa-documentation"]], "Contents:": [[2, null]], "Indices and tables": [[2, "indices-and-tables"]], "Installing ESA": [[3, "installing-esa"]], "Overview": [[3, "overview"]], "Prerequisites": [[3, "prerequisites"]], "Virtual Environment Configuration": [[3, "virtual-environment-configuration"]], "Install Prerequisite Packages": [[3, "install-prerequisite-packages"]], "Install ESA via Pip": [[3, "install-esa-via-pip"]], "Install ESA from Source": [[3, "install-esa-from-source"]], "Post-Installation": [[3, "post-installation"]], "Cursory Verification of Successful Installation": [[3, "cursory-verification-of-successful-installation"]], "Execute ESA Unittests": [[3, "execute-esa-unittests"]], "pywin32 Post-Installation": [[3, "pywin32-post-installation"]], "ESA Overview": [[4, "esa-overview"]], "Naming Conventions": [[4, "naming-conventions"]], "Functions/Methods": [[4, "functions-methods"]], "SimAuto Functions": [[4, "simauto-functions"], [7, "simauto-functions"]], "High-Level/Helper Functions": [[4, "high-level-helper-functions"]], "RunScriptCommand": [[4, "runscriptcommand"]], "clean_df_or_series": [[4, "clean-df-or-series"]], "Data Types": [[4, "data-types"]], "PowerWorld Variables": [[4, "powerworld-variables"]], "Testing Coverage": [[4, "testing-coverage"]], "ESA\u2019s testing coverage as of 2022-12-09 (Git commit: 9bf6a24)": [[4, "id3"]], "Contributing": [[4, "contributing"]], "Quick Start": [[5, "quick-start"]], "Examples": [[6, "examples"]], "ESA Quick Start": [[6, "esa-quick-start"]], "Increase Loading in Case": [[6, "increase-loading-in-case"]], "Add Lines to Case": [[6, "add-lines-to-case"]], "Transient Stability Analysis": [[6, "transient-stability-analysis"]], "Fast Contingency Analysis": [[6, "fast-contingency-analysis"]], "Contingency Analysis using PW Built-in capability": [[6, "contingency-analysis-using-pw-built-in-capability"]], "Create Simple Graph Model": [[6, "create-simple-graph-model"]], "Created Graph Model with Edges Weighted by Branch Impedance": [[6, "created-graph-model-with-edges-weighted-by-branch-impedance"]], "Plot Histogram of Line Flows with Matplotlib": [[6, "plot-histogram-of-line-flows-with-matplotlib"]], "Welcome!": [[7, "welcome"]], "Citation": [[7, "citation"]], "What Is ESA?": [[7, "what-is-esa"]], "About SimAuto": [[7, "about-simauto"]], "SimAuto Properties": [[7, "simauto-properties"]], "Who Should Use ESA?": [[7, "who-should-use-esa"]], "Why Use ESA?": [[7, "why-use-esa"]], "Projects That Use ESA": [[7, "projects-that-use-esa"]], "Disclaimer and Credits": [[7, "disclaimer-and-credits"]], "Disclaimer": [[7, "disclaimer"]], "Credits and Thanks": [[7, "credits-and-thanks"]], "Changelog": [[7, "changelog"]], "Version 1.3.3": [[7, "version-1-3-3"], [7, "id6"]], "Version 1.3.2": [[7, "version-1-3-2"]], "Version 1.3.1": [[7, "version-1-3-1"]], "Version 1.3.0": [[7, "version-1-3-0"]], "Version 1.2.9": [[7, "version-1-2-9"]], "Version 1.2.8": [[7, "version-1-2-8"]], "Version 1.2.7": [[7, "version-1-2-7"]], "Version 1.2.6": [[7, "version-1-2-6"]], "Version 1.2.5": [[7, "version-1-2-5"]], "Version 1.2.4": [[7, "version-1-2-4"]], "Version 1.2.3": [[7, "version-1-2-3"]], "Version 1.2.2": [[7, "version-1-2-2"]], "Version 1.2.1": [[7, "version-1-2-1"]], "Version 1.2.0": [[7, "version-1-2-0"]], "Version 1.1.0": [[7, "version-1-1-0"]], "Version 1.0.9": [[7, "version-1-0-9"]], "Version 1.0.8": [[7, "version-1-0-8"]], "Version 1.0.7": [[7, "version-1-0-7"]], "Version 1.0.6": [[7, "version-1-0-6"]], "Version 1.0.5": [[7, "version-1-0-5"]], "Version 1.0.4": [[7, "version-1-0-4"]], "Version 1.0.3": [[7, "version-1-0-3"]], "Version 1.0.2": [[7, "version-1-0-2"]], "Version 1.0.1": [[7, "version-1-0-1"]], "Version 1.0.0": [[7, "version-1-0-0"]]}, "indexentries": {"comerror": [[1, "esa.saw.COMError"]], "changeparameters() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParameters"]], "changeparametersmultipleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParametersMultipleElement"]], "changeparametersmultipleelementflatinput() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParametersMultipleElementFlatInput"]], "changeparameterssingleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.ChangeParametersSingleElement"]], "closecase() (esa.saw.saw method)": [[1, "esa.saw.SAW.CloseCase"]], "closeoneline() (esa.saw.saw method)": [[1, "esa.saw.SAW.CloseOneline"]], "commandnotrespectederror": [[1, "esa.saw.CommandNotRespectedError"]], "createifnotfound (esa.saw.saw property)": [[1, "esa.saw.SAW.CreateIfNotFound"]], "currentdir (esa.saw.saw property)": [[1, "esa.saw.SAW.CurrentDir"]], "error": [[1, "esa.saw.Error"]], "field_list_columns (esa.saw.saw attribute)": [[1, "esa.saw.SAW.FIELD_LIST_COLUMNS"]], "field_list_columns_new (esa.saw.saw attribute)": [[1, "esa.saw.SAW.FIELD_LIST_COLUMNS_NEW"]], "field_list_columns_old (esa.saw.saw attribute)": [[1, "esa.saw.SAW.FIELD_LIST_COLUMNS_OLD"]], "getcaseheader() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetCaseHeader"]], "getfieldlist() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetFieldList"]], "getparameters() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParameters"]], "getparametersmultipleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParametersMultipleElement"]], "getparametersmultipleelementflatoutput() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParametersMultipleElementFlatOutput"]], "getparameterssingleelement() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetParametersSingleElement"]], "getspecificfieldlist() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetSpecificFieldList"]], "getspecificfieldmaxnum() (esa.saw.saw method)": [[1, "esa.saw.SAW.GetSpecificFieldMaxNum"]], "listofdevices() (esa.saw.saw method)": [[1, "esa.saw.SAW.ListOfDevices"]], "listofdevicesasvariantstrings() (esa.saw.saw method)": [[1, "esa.saw.SAW.ListOfDevicesAsVariantStrings"]], "listofdevicesflatoutput() (esa.saw.saw method)": [[1, "esa.saw.SAW.ListOfDevicesFlatOutput"]], "loadstate() (esa.saw.saw method)": [[1, "esa.saw.SAW.LoadState"]], "opencase() (esa.saw.saw method)": [[1, "esa.saw.SAW.OpenCase"]], "opencasetype() (esa.saw.saw method)": [[1, "esa.saw.SAW.OpenCaseType"]], "openoneline() (esa.saw.saw method)": [[1, "esa.saw.SAW.OpenOneLine"]], "power_flow_fields (esa.saw.saw attribute)": [[1, "esa.saw.SAW.POWER_FLOW_FIELDS"]], "powerworlderror": [[1, "esa.saw.PowerWorldError"]], "processauxfile() (esa.saw.saw method)": [[1, "esa.saw.SAW.ProcessAuxFile"]], "processid (esa.saw.saw property)": [[1, "esa.saw.SAW.ProcessID"]], "programinformation (esa.saw.saw property)": [[1, "esa.saw.SAW.ProgramInformation"]], "requestbuilddate (esa.saw.saw property)": [[1, "esa.saw.SAW.RequestBuildDate"]], "runscriptcommand() (esa.saw.saw method)": [[1, "esa.saw.SAW.RunScriptCommand"]], "runscriptcommand2() (esa.saw.saw method)": [[1, "esa.saw.SAW.RunScriptCommand2"]], "saw (class in esa.saw)": [[1, "esa.saw.SAW"]], "simauto_properties (esa.saw.saw attribute)": [[1, "esa.saw.SAW.SIMAUTO_PROPERTIES"]], "specific_field_list_columns (esa.saw.saw attribute)": [[1, "esa.saw.SAW.SPECIFIC_FIELD_LIST_COLUMNS"]], "specific_field_list_columns_new (esa.saw.saw attribute)": [[1, "esa.saw.SAW.SPECIFIC_FIELD_LIST_COLUMNS_NEW"]], "savecase() (esa.saw.saw method)": [[1, "esa.saw.SAW.SaveCase"]], "savestate() (esa.saw.saw method)": [[1, "esa.saw.SAW.SaveState"]], "sendtoexcel() (esa.saw.saw method)": [[1, "esa.saw.SAW.SendToExcel"]], "solvepowerflow() (esa.saw.saw method)": [[1, "esa.saw.SAW.SolvePowerFlow"]], "tsgetcontingencyresults() (esa.saw.saw method)": [[1, "esa.saw.SAW.TSGetContingencyResults"]], "uivisible (esa.saw.saw property)": [[1, "esa.saw.SAW.UIVisible"]], "writeauxfile() (esa.saw.saw method)": [[1, "esa.saw.SAW.WriteAuxFile"]], "change_and_confirm_params_multiple_element() (esa.saw.saw method)": [[1, "esa.saw.SAW.change_and_confirm_params_multiple_element"]], "change_parameters_multiple_element_df() (esa.saw.saw method)": [[1, "esa.saw.SAW.change_parameters_multiple_element_df"]], "change_to_temperature() (esa.saw.saw method)": [[1, "esa.saw.SAW.change_to_temperature"]], "clean_df_or_series() (esa.saw.saw method)": [[1, "esa.saw.SAW.clean_df_or_series"]], "convert_list_to_variant() (in module esa.saw)": [[1, "esa.saw.convert_list_to_variant"]], "convert_nested_list_to_variant() (in module esa.saw)": [[1, "esa.saw.convert_nested_list_to_variant"]], "convert_to_windows_path() (in module esa.saw)": [[1, "esa.saw.convert_to_windows_path"]], "ctg_autoinsert() (esa.saw.saw method)": [[1, "esa.saw.SAW.ctg_autoinsert"]], "ctg_solveall() (esa.saw.saw method)": [[1, "esa.saw.SAW.ctg_solveall"]], "df_to_aux() (in module esa.saw)": [[1, "esa.saw.df_to_aux"]], "esa": [[1, "module-esa"]], "esa.saw": [[1, "module-esa.saw"]], "exit() (esa.saw.saw method)": [[1, "esa.saw.SAW.exit"]], "fast_n1_test() (esa.saw.saw method)": [[1, "esa.saw.SAW.fast_n1_test"]], "fast_n2_islanding_detection() (esa.saw.saw method)": [[1, "esa.saw.SAW.fast_n2_islanding_detection"]], "get_branch_admittance() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_branch_admittance"]], "get_incidence_matrix() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_incidence_matrix"]], "get_jacobian() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_jacobian"]], "get_key_field_list() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_key_field_list"]], "get_key_fields_for_object_type() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_key_fields_for_object_type"]], "get_lodf_matrix() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_lodf_matrix"]], "get_lodf_matrix_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_lodf_matrix_fast"]], "get_power_flow_results() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_power_flow_results"]], "get_ptdf_matrix_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_ptdf_matrix_fast"]], "get_shift_factor_matrix() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_shift_factor_matrix"]], "get_shift_factor_matrix_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_shift_factor_matrix_fast"]], "get_shunt_admittance() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_shunt_admittance"]], "get_version_and_builddate() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_version_and_builddate"]], "get_ybus() (esa.saw.saw method)": [[1, "esa.saw.SAW.get_ybus"]], "identify_numeric_fields() (esa.saw.saw method)": [[1, "esa.saw.SAW.identify_numeric_fields"]], "module": [[1, "module-esa"], [1, "module-esa.saw"]], "n1_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.n1_fast"]], "n1_protect() (esa.saw.saw method)": [[1, "esa.saw.SAW.n1_protect"]], "n2_bruteforce() (esa.saw.saw method)": [[1, "esa.saw.SAW.n2_bruteforce"]], "n2_fast() (esa.saw.saw method)": [[1, "esa.saw.SAW.n2_fast"]], "run_contingency_analysis() (esa.saw.saw method)": [[1, "esa.saw.SAW.run_contingency_analysis"]], "run_ecological_analysis() (esa.saw.saw method)": [[1, "esa.saw.SAW.run_ecological_analysis"]], "run_robustness_analysis() (esa.saw.saw method)": [[1, "esa.saw.SAW.run_robustness_analysis"]], "set_simauto_property() (esa.saw.saw method)": [[1, "esa.saw.SAW.set_simauto_property"]], "to_graph() (esa.saw.saw method)": [[1, "esa.saw.SAW.to_graph"]], "update_ui() (esa.saw.saw method)": [[1, "esa.saw.SAW.update_ui"]]}}) \ No newline at end of file diff --git a/docs/html/snippets.html b/docs/html/snippets.html index f0ccb76..513bfc2 100644 --- a/docs/html/snippets.html +++ b/docs/html/snippets.html @@ -2,7 +2,7 @@ - + Examples @@ -666,6 +666,9 @@

                    Transient Stability Analysis

                    Fast Contingency Analysis

                    @@ -983,7 +986,7 @@

                    Plot Histogram of Line Flows with Matplotlib © Copyright 2022, Zeyu Mao, Brandon Thayer, Yijing Liu.
                    - Created using
                    Sphinx 5.2.2 with Press Theme 0.8.0. + Created using Sphinx 5.3.0 with Press Theme 0.8.0. diff --git a/docs/html/welcome.html b/docs/html/welcome.html index 2a68ce9..9398cf3 100644 --- a/docs/html/welcome.html +++ b/docs/html/welcome.html @@ -2,7 +2,7 @@ - + Welcome! @@ -556,6 +556,16 @@

                    Credits and Thanks

                    Version 1.3.3

                      +
                    • Add DetermineBranchesThatCreateIslands

                    • +
                    • Add DeterminePathDistance

                    • +
                    • Add DetermineShortestPath

                    • +
                    • Add RunScriptCommand2

                    • +
                    • Add ProgramInformation property

                    • +
                    + +
                    +

                    Version 1.3.3

                    +
                    • Fix the get_shift_factor_matrix function when the system is large

                    @@ -782,7 +792,7 @@

                    Version 1.0.0 © Copyright 2022, Zeyu Mao, Brandon Thayer, Yijing Liu.
                    - Created using
                    Sphinx 5.2.2 with Press Theme 0.8.0. + Created using Sphinx 5.3.0 with Press Theme 0.8.0. diff --git a/docs/rst/coverage.rst b/docs/rst/coverage.rst index 9961086..2143a16 100644 --- a/docs/rst/coverage.rst +++ b/docs/rst/coverage.rst @@ -1,4 +1,4 @@ -.. table:: ESA's testing coverage as of 2022-10-12 (Git commit: dffb9ef) +.. table:: ESA's testing coverage as of 2022-12-09 (Git commit: 9bf6a24) :widths: auto :align: left @@ -7,5 +7,5 @@ +=================+===================+=================+=================+====================+ | esa/__init__.py | 2 | 0 | 2 | 100 | +-----------------+-------------------+-----------------+-----------------+--------------------+ - | esa/saw.py | 1158 | 0 | 1158 | 100 | + | esa/saw.py | 1196 | 0 | 1196 | 100 | +-----------------+-------------------+-----------------+-----------------+--------------------+ diff --git a/docs/rst/welcome/changelog.rst b/docs/rst/welcome/changelog.rst index b911c5e..5a5461d 100644 --- a/docs/rst/welcome/changelog.rst +++ b/docs/rst/welcome/changelog.rst @@ -5,6 +5,15 @@ versions prior to 1.0.0 are not listed here, but are still available on Version 1.3.3 ^^^^^^^^^^^^^ +* Add `DetermineBranchesThatCreateIslands` +* Add `DeterminePathDistance` +* Add `DetermineShortestPath` +* Add `RunScriptCommand2` +* Add `ProgramInformation` property + +Version 1.3.3 +^^^^^^^^^^^^^ + * Fix the `get_shift_factor_matrix` function when the system is large Version 1.3.2 diff --git a/esa/__about__.py b/esa/__about__.py index 07a73c0..a787d3e 100644 --- a/esa/__about__.py +++ b/esa/__about__.py @@ -10,4 +10,4 @@ __email__ = "me@zeyumao.com" __license__ = "Apache License 2.0" __copyright__ = "Copyright 2022 - Zeyu Mao" -__version__ = "1.3.3" +__version__ = "1.3.4" diff --git a/esa/__init__.py b/esa/__init__.py index ab1121c..a30eeba 100644 --- a/esa/__init__.py +++ b/esa/__init__.py @@ -16,4 +16,4 @@ # Please keep the docstring above up to date with all the imports. from .saw import SAW, PowerWorldError, COMError, CommandNotRespectedError,\ Error -__version__ = "1.3.3" +__version__ = "1.3.4" diff --git a/esa/saw.py b/esa/saw.py index a3f47a9..2be681b 100644 --- a/esa/saw.py +++ b/esa/saw.py @@ -891,6 +891,73 @@ def to_graph(self, node: str = 'bus', geographic: bool = False, self.pw_order = original return graph + def DeterminePathDistance(self, start: str, BranchDistMeas: str = "X", BranchFilter: str = "ALL", + BusField="CustomFloat:1"): + """ + Powerworld's built-in function to calculate a distance measure at each bus in the entire model. + The distance measure will represent how far each bus is from the starting group specified. The distance + measure can be related to impedance, geographical distance, or simply the number of nodes. + + :param start: The starting location. String only. Follow the powerworld auxilliary file document. + :param BranchDistMeas: is either X, Z, Length, Nodes, or a field variable name for a branch. + :param BranchFilter: is either ALL, Selected, Closed, or the name of a branch Advanced Filter. + :param BusField: Optional. Only need to change if the CustomFloat:1 column has been used. + + :returns: A dataframe with bus number and distance measurements. + """ + original = self.pw_order + self.pw_order = True + statement = f"DeterminePathDistance({start}, {BranchDistMeas}, {BranchFilter}, {BusField});" + self.RunScriptCommand(statement) + key = self.get_key_field_list("Bus") + df = self.GetParametersMultipleElement("Bus", key + [BusField]) + df.rename(columns={BusField: BranchDistMeas}, inplace=True) + df["BusNum"] = df["BusNum"].astype(int) + df[BranchDistMeas] = df[BranchDistMeas].astype(float) + self.pw_order = original + return df + + def DetermineBranchesThatCreateIslands(self, Filter: str = "ALL", StoreBuses: str = "YES", SetSelectedOnLines: str = "NO"): + """ + Powerworld's built-in function to determine the branches whose outage results in island formation. Note that + setting the Selected field will overwrite the Selected fields. + + :param Filter: This parameter is used to specify which branches are checked + :param StoreBuses: YES to store the buses in the island + :param SetSelectedOnLines: Yes to set the SELECTED field to YES for branches that create islands + + :returns: A dataframe that contains the branch and the island information + """ + file = tempfile.NamedTemporaryFile() + filename = Path(file.name).as_posix() + file.close() + statement = f"DetermineBranchesThatCreateIslands({Filter},{StoreBuses},{filename},{SetSelectedOnLines},CSV);" + self.RunScriptCommand(statement) + df = pd.read_csv(filename, header=0) + return df + + def DetermineShortestPath(self, start: str, end: str, BranchDistanceMeasure: str = "X", BranchFilter: str = "ALL"): + """ + Powerworld's built-in function to calculate the shortest path between a starting group and an ending group. The + first bus listed in the dataframe will be in the end grouping and the last bus listed will be the start grouping. + The dataframe will have a line for each bus passed. + + :param start: same as the starting place for the DeterminePathDistance function + :param end: same as the starting place for the DeterminePathDistance function + :param BranchDistanceMeasure: same as for the DeterminePathDistance function + :param BranchFilter: same as for the DeterminePathDistance function + + :returns: A dataframe with number, distance, and name + """ + file = tempfile.NamedTemporaryFile() + filename = Path(file.name).as_posix() + file.close() + statement = f"DetermineShortestPath({start}, {end}, {BranchDistanceMeasure}, {BranchFilter}, {filename});" + self.RunScriptCommand(statement) + df = pd.read_csv(filename, header=None, delim_whitespace=True, names=["BusNum", BranchDistanceMeasure, "BusName"]) + df["BusNum"] = df["BusNum"].astype(int) + return df + def get_lodf_matrix(self, precision: int = 3, method: str = 'DC', post: bool = True, raw: bool = False): """Obtain LODF matrix in numpy array or scipy sparse matrix. @@ -2988,7 +3055,7 @@ def ProgramInformation(self) -> Union[tuple, bool]: # convert list of list back to tuple of tuple result = tuple(tuple(x) for x in result) return result - except AttributeError: # pragma: no cover + except AttributeError: # pragma: no cover self.log.warning( 'ProgramInformation attribute could not be accessed. Note this SimAuto ' 'property was not introduced until Simulator version 21. ' diff --git a/tests/test_saw.py b/tests/test_saw.py index 3733bc7..ebcda70 100644 --- a/tests/test_saw.py +++ b/tests/test_saw.py @@ -2110,6 +2110,63 @@ def test_failure_if_pwb_file_path_none(self): saw_14.OpenCase() +class DeterminePathDistanceTestCase(unittest.TestCase): + """Test DeterminePathDistance""" + + @classmethod + def setUpClass(cls) -> None: + # Open up the nine bus model. + cls.saw = SAW(PATH_9, early_bind=True) + + # noinspection PyUnresolvedReferences + @classmethod + def tearDownClass(cls) -> None: + cls.saw.exit() + + def test_normal_op(self): + """Should return a dataframe with bus number and distance""" + df = self.saw.DeterminePathDistance(start="[Bus 1]") + self.assertEqual(df.shape, (9, 2)) + + +class DetermineBranchesThatCreateIslands(unittest.TestCase): + """Test DetermineBranchesThatCreateIslands""" + + @classmethod + def setUpClass(cls) -> None: + # Open up the nine bus model. + cls.saw = SAW(PATH_9, early_bind=True) + + # noinspection PyUnresolvedReferences + @classmethod + def tearDownClass(cls) -> None: + cls.saw.exit() + + def test_normal_op(self): + """Should return a dataframe""" + df = self.saw.DetermineBranchesThatCreateIslands() + self.assertIsInstance(df, pd.DataFrame) + + +class DetermineShortestPath(unittest.TestCase): + """Test DetermineShortestPath""" + + @classmethod + def setUpClass(cls) -> None: + # Open up the nine bus model. + cls.saw = SAW(PATH_9, early_bind=True) + + # noinspection PyUnresolvedReferences + @classmethod + def tearDownClass(cls) -> None: + cls.saw.exit() + + def test_normal_op(self): + """Should return a dataframe""" + df = self.saw.DetermineShortestPath(start="[Bus 1]", end="[Bus 2]") + self.assertIsInstance(df, pd.DataFrame) + + class TSGetContingencyResultsTestCase(unittest.TestCase): """Test TSGetContingencyResults."""

                    ESA’s testing coverage as of 2022-12-09 (Git commit: 9bf6a24)

                    Name

                    Num. Statements

                    esa/saw.py

                    1158

                    1196

                    0

                    1158

                    1196

                    100