Source code for GUI.input_masks.pandapower_projects

import networkx
import os

import pandapower
import streamlit

from matplotlib import pyplot

from Application import initialization_powerfactory, pandapower_model


[docs] def convert_pf_pandapower(app_path: str, project_name: str) -> None: """ Input mask for the conversion of a power factory pfd file to a pandapower network instance. :param app_path: path of the power factory executable :type app_path: str :param project_name: power factory project name :type project_name: str """ # streamlit button to start the model conversion process if streamlit.sidebar.button("Start Model Conversion Process."): # call model conversion method on click initialization_powerfactory.convert_model( app_path=app_path, project_name=project_name )
[docs] def import_pandapower_model() -> pandapower.pandapowerNet: """ Input mask for the import of a pandapower network stored in a JSON file. :return: **network** (pandapower.pandapowerNet) - pandapower \ network instance """ # get the main path of the python project module_path = ( os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath( __file__ ))))) # Text input for the user's json file path json_path = streamlit.sidebar.text_input( label="Pandapower Model Path.", value=module_path + "/Results" + "/20240507_Kalman_Filter_09_30_2024_12_08_05_network.json" ) # streamlit button to start the import of the pandapowerNet from # JSON if streamlit.sidebar.button("Import Pandapower Model From JSON."): # call import method on click network = pandapower_model.import_pandapower_model_json( json_path=json_path ) return network return streamlit.session_state["network"]
[docs] def load_network_plot(network: pandapower.pandapowerNet) -> None: """ Input mask for network plot creation of a pandapower network instance. :param network: pandapower network instance to be plotted :type network: pandapower.pandapowerNet """ # streamlit button to start the network plot creation if streamlit.button("Load Pandapower Network Plot."): # check if the network instance is not None to avoid errors if network is not None: # call the networkx creation nxg_network, pos = pandapower_model.create_nxgraph(network=network) # add networks powersystem plot to streamlit gui streamlit.session_state["Network Plot"], ax = pyplot.subplots() networkx.draw(nxg_network, pos, with_labels=True) streamlit.session_state["Network Plot Bool"] = "True" else: # Error handling if no pandapower model is loaded streamlit.error("No Pandapower Model loaded.", icon="🚨")
[docs] def load_network_components(network: pandapower.pandapowerNet) -> None: """ Input mask for the visibility of the pandapower network components table. :param network: pandapower network instance to be plotted :type network: pandapower.pandapowerNet """ # streamlit button to change the visibility of the pandapower # network components table if streamlit.button("Load Pandapower Network Components Table."): # check if the network instance is not None to avoid errors if network is not None: streamlit.session_state["Network Components Table Bool"] = "True" else: # Error handling if no pandapower model is loaded streamlit.error("No Pandapower Model loaded.", icon="🚨")