GridCal 5.3.24__tar.gz → 5.3.26__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +8 -6
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +6 -8
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +5 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +20 -2
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/MainWindow.py +81 -58
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/simulations.py +3 -1
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/__version__.py +1 -1
- {gridcal-5.3.24 → gridcal-5.3.26}/PKG-INFO +1 -1
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ExecuteGridCal.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_editor.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/demo_code.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/gui_functions.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/object_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/python_console.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/python_highlighter.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/toast_widget.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Session/server_driver.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Session/session.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/plugins.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/templates.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/GridCal/update.py +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/setup.cfg +0 -0
- {gridcal-5.3.24 → gridcal-5.3.26}/setup.py +0 -0
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
@@ -496,7 +496,8 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
|
|
496
496
|
def calculate_total_length(self) -> float:
|
497
497
|
"""
|
498
498
|
Calculate the total length of the line by summing the distances between all waypoints
|
499
|
-
using the haversine formula, and update the line's length property.
|
499
|
+
using the haversine formula, and update the line's length property. The coordiates used are the
|
500
|
+
ones from the api_object, not the graphic objects, in order to avoid undesired recalculations. Issue #23
|
500
501
|
|
501
502
|
:return: Total length in kilometers
|
502
503
|
"""
|
@@ -508,17 +509,18 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
|
|
508
509
|
# Add the substation from
|
509
510
|
substation_from = self.substation_from()
|
510
511
|
if substation_from is not None:
|
511
|
-
connection_points.append((substation_from.
|
512
|
-
|
512
|
+
connection_points.append((substation_from.api_object.latitude, substation_from.api_object.longitude))
|
513
|
+
|
513
514
|
# Add all intermediate points
|
514
515
|
for node in self.nodes_list:
|
515
|
-
connection_points.append((node.lat, node.
|
516
|
+
connection_points.append((node.api_object.lat, node.api_object.long))
|
516
517
|
|
517
518
|
# Add the substation to
|
518
519
|
substation_to = self.substation_to()
|
520
|
+
|
519
521
|
if substation_to is not None:
|
520
|
-
connection_points.append((substation_to.
|
521
|
-
|
522
|
+
connection_points.append((substation_to.api_object.latitude, substation_to.api_object.longitude))
|
523
|
+
|
522
524
|
# Calculate total length by summing distances between consecutive points
|
523
525
|
total_length = 0.0
|
524
526
|
for i in range(len(connection_points) - 1):
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -282,7 +282,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
282
282
|
add_menu_entry(menu=menu,
|
283
283
|
text="Change substation connection of the line",
|
284
284
|
function_ptr=self.editor.change_line_connection,
|
285
|
-
icon_path=":/Icons/icons/
|
285
|
+
icon_path=":/Icons/icons/move_bus.svg")
|
286
286
|
else:
|
287
287
|
pass
|
288
288
|
|
@@ -509,10 +509,8 @@ class MapLineSegment(QGraphicsLineItem):
|
|
509
509
|
total_length = self.container.calculate_total_length()
|
510
510
|
|
511
511
|
# Show a message with the calculated length
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
msg.setWindowTitle("Length Calculation")
|
518
|
-
msg.exec()
|
512
|
+
self.editor.gui.show_info_toast(
|
513
|
+
message=f"Line length calculated: {total_length:.2f} km. The length property of line "
|
514
|
+
f"{self.api_object.name} has been updated.")
|
515
|
+
|
516
|
+
|
@@ -638,8 +638,13 @@ class SubstationGraphicItem(NodeTemplate, QGraphicsRectItem):
|
|
638
638
|
for line in self.editor.circuit.lines:
|
639
639
|
if line.bus_from in removed_buses:
|
640
640
|
line.bus_from = recipient_buses[line.bus_from.Vnom]
|
641
|
+
line_graphic = self.editor.graphics_manager.query(elm=line)
|
642
|
+
line_graphic.calculate_total_length()
|
643
|
+
|
641
644
|
if line.bus_to in removed_buses:
|
642
645
|
line.bus_to = recipient_buses[line.bus_to.Vnom]
|
646
|
+
line_graphic = self.editor.graphics_manager.query(elm=line)
|
647
|
+
line_graphic.calculate_total_length()
|
643
648
|
|
644
649
|
for bus in removed_buses:
|
645
650
|
self.editor.circuit.delete_bus(obj=bus, delete_associated=False)
|
@@ -55,7 +55,7 @@ from GridCal.Gui.Diagrams.graphics_manager import ALL_MAP_GRAPHICS
|
|
55
55
|
from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
|
56
56
|
from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget
|
57
57
|
from GridCal.Gui.object_model import ObjectsModel
|
58
|
-
from GridCal.Gui.messages import error_msg, info_msg
|
58
|
+
from GridCal.Gui.messages import error_msg, info_msg, yes_no_question
|
59
59
|
|
60
60
|
if TYPE_CHECKING:
|
61
61
|
from GridCal.Gui.Main.SubClasses.Model.diagrams import DiagramsMain
|
@@ -1400,6 +1400,23 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1400
1400
|
gelm.api_object.lat = gelm.lat
|
1401
1401
|
gelm.api_object.long = gelm.lon
|
1402
1402
|
|
1403
|
+
ok = yes_no_question(title='Update lengths?',
|
1404
|
+
text='Do you want to update lengths of lines? \n'
|
1405
|
+
'IMPORTANT: This will take into account every movement of substation and line '
|
1406
|
+
'locations. If you are unsure of the effects of this updating, click no and perform '
|
1407
|
+
'the individual length update in a new map or in the specific line.')
|
1408
|
+
if ok:
|
1409
|
+
line_graphics_list = self.graphics_manager.graphic_dict[DeviceType.LineDevice]
|
1410
|
+
|
1411
|
+
for key, line_graphic in line_graphics_list.items():
|
1412
|
+
line_graphic.calculate_total_length()
|
1413
|
+
|
1414
|
+
self.gui.show_info_toast(message='Line lengths UPDATED')
|
1415
|
+
|
1416
|
+
|
1417
|
+
else:
|
1418
|
+
self.gui.show_info_toast(message='Line lengths NOT UPDATED')
|
1419
|
+
|
1403
1420
|
def plot_substation(self, i: int, api_object: Substation):
|
1404
1421
|
"""
|
1405
1422
|
Plot branch results
|
@@ -2264,7 +2281,8 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2264
2281
|
# Remove past graphic item and add the new one
|
2265
2282
|
|
2266
2283
|
self.remove_branch_graphic(line=line_graphic, delete_from_db=False)
|
2267
|
-
self.add_api_line(api_object=line_api)
|
2284
|
+
line = self.add_api_line(api_object=line_api)
|
2285
|
+
line.calculate_total_length()
|
2268
2286
|
|
2269
2287
|
msg = QMessageBox()
|
2270
2288
|
msg.setIcon(QMessageBox.Icon.Information)
|
@@ -2590,6 +2590,12 @@ class Ui_mainWindow(object):
|
|
2590
2590
|
|
2591
2591
|
self.verticalLayout_4.addWidget(self.orthogonalize_pf_controls_checkBox)
|
2592
2592
|
|
2593
|
+
self.initialize_pf_angles_checkBox = QCheckBox(self.frame_36)
|
2594
|
+
self.initialize_pf_angles_checkBox.setObjectName(u"initialize_pf_angles_checkBox")
|
2595
|
+
self.initialize_pf_angles_checkBox.setFont(font1)
|
2596
|
+
|
2597
|
+
self.verticalLayout_4.addWidget(self.initialize_pf_angles_checkBox)
|
2598
|
+
|
2593
2599
|
self.label_54 = QLabel(self.frame_36)
|
2594
2600
|
self.label_54.setObjectName(u"label_54")
|
2595
2601
|
|
@@ -2909,11 +2915,23 @@ class Ui_mainWindow(object):
|
|
2909
2915
|
self.groupBox.setFont(font6)
|
2910
2916
|
self.gridLayout_18 = QGridLayout(self.groupBox)
|
2911
2917
|
self.gridLayout_18.setObjectName(u"gridLayout_18")
|
2912
|
-
self.
|
2913
|
-
self.
|
2914
|
-
self.
|
2918
|
+
self.label_10 = QLabel(self.groupBox)
|
2919
|
+
self.label_10.setObjectName(u"label_10")
|
2920
|
+
self.label_10.setFont(font7)
|
2915
2921
|
|
2916
|
-
self.gridLayout_18.addWidget(self.
|
2922
|
+
self.gridLayout_18.addWidget(self.label_10, 0, 0, 1, 1)
|
2923
|
+
|
2924
|
+
self.opfZonalGroupByComboBox = QComboBox(self.groupBox)
|
2925
|
+
self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox")
|
2926
|
+
self.opfZonalGroupByComboBox.setFont(font7)
|
2927
|
+
|
2928
|
+
self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1)
|
2929
|
+
|
2930
|
+
self.opfUnitCommitmentCheckBox = QCheckBox(self.groupBox)
|
2931
|
+
self.opfUnitCommitmentCheckBox.setObjectName(u"opfUnitCommitmentCheckBox")
|
2932
|
+
self.opfUnitCommitmentCheckBox.setFont(font7)
|
2933
|
+
|
2934
|
+
self.gridLayout_18.addWidget(self.opfUnitCommitmentCheckBox, 5, 0, 1, 1)
|
2917
2935
|
|
2918
2936
|
self.label_132 = QLabel(self.groupBox)
|
2919
2937
|
self.label_132.setObjectName(u"label_132")
|
@@ -2926,48 +2944,39 @@ class Ui_mainWindow(object):
|
|
2926
2944
|
|
2927
2945
|
self.gridLayout_18.addWidget(self.opf_time_grouping_comboBox, 1, 1, 1, 1)
|
2928
2946
|
|
2929
|
-
self.
|
2930
|
-
self.
|
2931
|
-
self.
|
2947
|
+
self.mip_solver_comboBox = QComboBox(self.groupBox)
|
2948
|
+
self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox")
|
2949
|
+
self.mip_solver_comboBox.setFont(font7)
|
2932
2950
|
|
2933
|
-
self.gridLayout_18.addWidget(self.
|
2951
|
+
self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1)
|
2952
|
+
|
2953
|
+
self.fixOpfCheckBox = QCheckBox(self.groupBox)
|
2954
|
+
self.fixOpfCheckBox.setObjectName(u"fixOpfCheckBox")
|
2955
|
+
self.fixOpfCheckBox.setFont(font7)
|
2956
|
+
|
2957
|
+
self.gridLayout_18.addWidget(self.fixOpfCheckBox, 8, 0, 1, 2)
|
2934
2958
|
|
2935
2959
|
self.considerContingenciesOpfCheckBox = QCheckBox(self.groupBox)
|
2936
2960
|
self.considerContingenciesOpfCheckBox.setObjectName(u"considerContingenciesOpfCheckBox")
|
2937
2961
|
self.considerContingenciesOpfCheckBox.setFont(font7)
|
2938
2962
|
|
2939
|
-
self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox,
|
2963
|
+
self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox, 6, 0, 1, 2)
|
2940
2964
|
|
2941
|
-
self.
|
2942
|
-
self.
|
2943
|
-
self.
|
2965
|
+
self.label_4 = QLabel(self.groupBox)
|
2966
|
+
self.label_4.setObjectName(u"label_4")
|
2967
|
+
self.label_4.setFont(font7)
|
2944
2968
|
|
2945
|
-
self.gridLayout_18.addWidget(self.
|
2969
|
+
self.gridLayout_18.addWidget(self.label_4, 1, 0, 1, 1)
|
2946
2970
|
|
2947
|
-
self.
|
2948
|
-
self.
|
2949
|
-
self.
|
2950
|
-
self.opfContingencyToleranceSpinBox.setDecimals(4)
|
2951
|
-
self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000)
|
2952
|
-
self.opfContingencyToleranceSpinBox.setValue(0.050000000000000)
|
2971
|
+
self.save_mip_checkBox = QCheckBox(self.groupBox)
|
2972
|
+
self.save_mip_checkBox.setObjectName(u"save_mip_checkBox")
|
2973
|
+
self.save_mip_checkBox.setFont(font7)
|
2953
2974
|
|
2954
|
-
self.gridLayout_18.addWidget(self.
|
2975
|
+
self.gridLayout_18.addWidget(self.save_mip_checkBox, 11, 0, 1, 2)
|
2955
2976
|
|
2956
2977
|
self.verticalSpacer_18 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
2957
2978
|
|
2958
|
-
self.gridLayout_18.addItem(self.verticalSpacer_18,
|
2959
|
-
|
2960
|
-
self.opfZonalGroupByComboBox = QComboBox(self.groupBox)
|
2961
|
-
self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox")
|
2962
|
-
self.opfZonalGroupByComboBox.setFont(font7)
|
2963
|
-
|
2964
|
-
self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1)
|
2965
|
-
|
2966
|
-
self.mip_solver_comboBox = QComboBox(self.groupBox)
|
2967
|
-
self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox")
|
2968
|
-
self.mip_solver_comboBox.setFont(font7)
|
2969
|
-
|
2970
|
-
self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1)
|
2979
|
+
self.gridLayout_18.addItem(self.verticalSpacer_18, 12, 0, 1, 1)
|
2971
2980
|
|
2972
2981
|
self.label_104 = QLabel(self.groupBox)
|
2973
2982
|
self.label_104.setObjectName(u"label_104")
|
@@ -2975,17 +2984,26 @@ class Ui_mainWindow(object):
|
|
2975
2984
|
|
2976
2985
|
self.gridLayout_18.addWidget(self.label_104, 3, 0, 1, 1)
|
2977
2986
|
|
2978
|
-
self.
|
2979
|
-
self.
|
2980
|
-
self.
|
2987
|
+
self.label_103 = QLabel(self.groupBox)
|
2988
|
+
self.label_103.setObjectName(u"label_103")
|
2989
|
+
self.label_103.setFont(font7)
|
2981
2990
|
|
2982
|
-
self.gridLayout_18.addWidget(self.
|
2991
|
+
self.gridLayout_18.addWidget(self.label_103, 2, 0, 1, 1)
|
2983
2992
|
|
2984
|
-
self.
|
2985
|
-
self.
|
2986
|
-
self.
|
2993
|
+
self.opfContingencyToleranceSpinBox = QDoubleSpinBox(self.groupBox)
|
2994
|
+
self.opfContingencyToleranceSpinBox.setObjectName(u"opfContingencyToleranceSpinBox")
|
2995
|
+
self.opfContingencyToleranceSpinBox.setFont(font7)
|
2996
|
+
self.opfContingencyToleranceSpinBox.setDecimals(4)
|
2997
|
+
self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000)
|
2998
|
+
self.opfContingencyToleranceSpinBox.setValue(0.050000000000000)
|
2987
2999
|
|
2988
|
-
self.gridLayout_18.addWidget(self.
|
3000
|
+
self.gridLayout_18.addWidget(self.opfContingencyToleranceSpinBox, 3, 1, 1, 1)
|
3001
|
+
|
3002
|
+
self.opfGEPCheckBox = QCheckBox(self.groupBox)
|
3003
|
+
self.opfGEPCheckBox.setObjectName(u"opfGEPCheckBox")
|
3004
|
+
self.opfGEPCheckBox.setFont(font7)
|
3005
|
+
|
3006
|
+
self.gridLayout_18.addWidget(self.opfGEPCheckBox, 7, 0, 1, 2)
|
2989
3007
|
|
2990
3008
|
|
2991
3009
|
self.gridLayout_10.addWidget(self.groupBox, 3, 3, 1, 1)
|
@@ -3065,12 +3083,6 @@ class Ui_mainWindow(object):
|
|
3065
3083
|
|
3066
3084
|
self.gridLayout_26.addWidget(self.opfMaximizeExcahngeCheckBox, 5, 0, 1, 2)
|
3067
3085
|
|
3068
|
-
self.opfUnitCommitmentCheckBox = QCheckBox(self.groupBox_2)
|
3069
|
-
self.opfUnitCommitmentCheckBox.setObjectName(u"opfUnitCommitmentCheckBox")
|
3070
|
-
self.opfUnitCommitmentCheckBox.setFont(font7)
|
3071
|
-
|
3072
|
-
self.gridLayout_26.addWidget(self.opfUnitCommitmentCheckBox, 4, 0, 1, 2)
|
3073
|
-
|
3074
3086
|
self.skipOpfGenerationLimitsCheckBox = QCheckBox(self.groupBox_2)
|
3075
3087
|
self.skipOpfGenerationLimitsCheckBox.setObjectName(u"skipOpfGenerationLimitsCheckBox")
|
3076
3088
|
self.skipOpfGenerationLimitsCheckBox.setFont(font7)
|
@@ -5624,6 +5636,10 @@ class Ui_mainWindow(object):
|
|
5624
5636
|
self.orthogonalize_pf_controls_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If checked, the controls are adjusted to their closest tap", None))
|
5625
5637
|
#endif // QT_CONFIG(tooltip)
|
5626
5638
|
self.orthogonalize_pf_controls_checkBox.setText(QCoreApplication.translate("mainWindow", u"Orthogonalize controls", None))
|
5639
|
+
#if QT_CONFIG(tooltip)
|
5640
|
+
self.initialize_pf_angles_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If checked, the power flow solution is initialized with a linear (so called DC) power flow first", None))
|
5641
|
+
#endif // QT_CONFIG(tooltip)
|
5642
|
+
self.initialize_pf_angles_checkBox.setText(QCoreApplication.translate("mainWindow", u"Initialize angles", None))
|
5627
5643
|
self.label_54.setText("")
|
5628
5644
|
#if QT_CONFIG(tooltip)
|
5629
5645
|
self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None))
|
@@ -5701,32 +5717,40 @@ class Ui_mainWindow(object):
|
|
5701
5717
|
#endif // QT_CONFIG(tooltip)
|
5702
5718
|
self.ips_control_Qlimits_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control Q limits", None))
|
5703
5719
|
self.groupBox.setTitle(QCoreApplication.translate("mainWindow", u"Linear settings", None))
|
5704
|
-
self.
|
5720
|
+
self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None))
|
5721
|
+
#if QT_CONFIG(tooltip)
|
5722
|
+
self.opfUnitCommitmentCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply unit commitment technique", None))
|
5723
|
+
#endif // QT_CONFIG(tooltip)
|
5724
|
+
self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None))
|
5705
5725
|
self.label_132.setText("")
|
5706
5726
|
#if QT_CONFIG(tooltip)
|
5707
5727
|
self.opf_time_grouping_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>Choose the time grouping to possibly shorten the solution time.</p><p>This splits the time series by week, month, etc. and the subproblems are solved sequentially.</p></body></html>", None))
|
5708
5728
|
#endif // QT_CONFIG(tooltip)
|
5709
|
-
self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None))
|
5710
5729
|
#if QT_CONFIG(tooltip)
|
5711
|
-
self.
|
5730
|
+
self.mip_solver_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Choose the external mixed integer programming solver", None))
|
5712
5731
|
#endif // QT_CONFIG(tooltip)
|
5713
|
-
self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Consider contingencies", None))
|
5714
|
-
self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None))
|
5715
5732
|
#if QT_CONFIG(tooltip)
|
5716
|
-
self.
|
5733
|
+
self.fixOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Fix infeasible problems and rey with the relaxed problem. Applies to OPF and NTC", None))
|
5717
5734
|
#endif // QT_CONFIG(tooltip)
|
5735
|
+
self.fixOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Fix infeasibilities and retry", None))
|
5718
5736
|
#if QT_CONFIG(tooltip)
|
5719
|
-
self.
|
5737
|
+
self.considerContingenciesOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Consider the contingencies when dispatching", None))
|
5720
5738
|
#endif // QT_CONFIG(tooltip)
|
5721
|
-
self.
|
5739
|
+
self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Compute contingencies", None))
|
5740
|
+
self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None))
|
5722
5741
|
#if QT_CONFIG(tooltip)
|
5723
5742
|
self.save_mip_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>The program will save the MIP file in .lp format in the user GridCal folder before running a linear optimization study.</p></body></html>", None))
|
5724
5743
|
#endif // QT_CONFIG(tooltip)
|
5725
5744
|
self.save_mip_checkBox.setText(QCoreApplication.translate("mainWindow", u"Save MIP file", None))
|
5745
|
+
self.label_104.setText(QCoreApplication.translate("mainWindow", u"Contingency tolerance", None))
|
5746
|
+
self.label_103.setText(QCoreApplication.translate("mainWindow", u"Zone grouping", None))
|
5726
5747
|
#if QT_CONFIG(tooltip)
|
5727
|
-
self.
|
5748
|
+
self.opfContingencyToleranceSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"LODF matrix tolerance choosing contingencies", None))
|
5728
5749
|
#endif // QT_CONFIG(tooltip)
|
5729
|
-
|
5750
|
+
#if QT_CONFIG(tooltip)
|
5751
|
+
self.opfGEPCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply generation expansion planning", None))
|
5752
|
+
#endif // QT_CONFIG(tooltip)
|
5753
|
+
self.opfGEPCheckBox.setText(QCoreApplication.translate("mainWindow", u"Generation expansion planning", None))
|
5730
5754
|
self.label_73.setText(QCoreApplication.translate("mainWindow", u"Optimal Power Flow", None))
|
5731
5755
|
self.groupBox_2.setTitle(QCoreApplication.translate("mainWindow", u"General settings", None))
|
5732
5756
|
self.label_128.setText(QCoreApplication.translate("mainWindow", u"Verbose", None))
|
@@ -5743,7 +5767,6 @@ class Ui_mainWindow(object):
|
|
5743
5767
|
self.addOptimalPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None))
|
5744
5768
|
self.label_133.setText("")
|
5745
5769
|
self.opfMaximizeExcahngeCheckBox.setText(QCoreApplication.translate("mainWindow", u"Maximize area exchange", None))
|
5746
|
-
self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None))
|
5747
5770
|
self.skipOpfGenerationLimitsCheckBox.setText(QCoreApplication.translate("mainWindow", u"Skip generation limits", None))
|
5748
5771
|
self.label_72.setText("")
|
5749
5772
|
self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.opf_tab), QCoreApplication.translate("mainWindow", u"Opf", None))
|
@@ -729,7 +729,6 @@ class SimulationsMain(TimeEventsMain):
|
|
729
729
|
verbose=self.ui.verbositySpinBox.value(),
|
730
730
|
tolerance=tolerance,
|
731
731
|
max_iter=self.ui.max_iterations_spinBox.value(),
|
732
|
-
max_outer_loop_iter=1000,
|
733
732
|
control_q=self.ui.control_q_checkBox.isChecked(),
|
734
733
|
control_taps_phase=self.ui.control_tap_phase_checkBox.isChecked(),
|
735
734
|
control_taps_modules=self.ui.control_tap_modules_checkBox.isChecked(),
|
@@ -741,6 +740,7 @@ class SimulationsMain(TimeEventsMain):
|
|
741
740
|
ignore_single_node_islands=self.ui.ignore_single_node_islands_checkBox.isChecked(),
|
742
741
|
trust_radius=self.ui.muSpinBox.value(),
|
743
742
|
use_stored_guess=self.ui.use_voltage_guess_checkBox.isChecked(),
|
743
|
+
initialize_angles=self.ui.initialize_pf_angles_checkBox.isChecked(),
|
744
744
|
generate_report=self.ui.addPowerFlowReportCheckBox.isChecked()
|
745
745
|
)
|
746
746
|
|
@@ -1951,6 +1951,7 @@ class SimulationsMain(TimeEventsMain):
|
|
1951
1951
|
unit_commitment = self.ui.opfUnitCommitmentCheckBox.isChecked()
|
1952
1952
|
generate_report = self.ui.addOptimalPowerFlowReportCheckBox.isChecked()
|
1953
1953
|
robust = self.ui.fixOpfCheckBox.isChecked()
|
1954
|
+
generation_expansion_planning = self.ui.opfGEPCheckBox.isChecked()
|
1954
1955
|
|
1955
1956
|
if self.ui.save_mip_checkBox.isChecked():
|
1956
1957
|
folder = opf_file_path()
|
@@ -1995,6 +1996,7 @@ class SimulationsMain(TimeEventsMain):
|
|
1995
1996
|
maximize_flows=maximize_flows,
|
1996
1997
|
inter_aggregation_info=inter_aggregation_info,
|
1997
1998
|
unit_commitment=unit_commitment,
|
1999
|
+
generation_expansion_planning=generation_expansion_planning,
|
1998
2000
|
export_model_fname=export_model_fname,
|
1999
2001
|
generate_report=generate_report,
|
2000
2002
|
ips_method=ips_method,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.24 → gridcal-5.3.26}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py
RENAMED
File without changes
|