{"id":28360006,"url":"https://github.com/e2niee/pandamodels.jl","last_synced_at":"2026-03-03T05:31:58.814Z","repository":{"id":40296301,"uuid":"348752994","full_name":"e2nIEE/PandaModels.jl","owner":"e2nIEE","description":"PandaModels is the developing Julia package that contains supplementary data and codes to prepare pandapower networks in a compatible format for PowerModels.jl.","archived":false,"fork":false,"pushed_at":"2023-12-13T14:01:24.000Z","size":1364,"stargazers_count":12,"open_issues_count":16,"forks_count":12,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-04T16:24:56.941Z","etag":null,"topics":["julia","optimization","pandapower"],"latest_commit_sha":null,"homepage":"https://e2niee.github.io/PandaModels.jl/dev/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e2nIEE.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-03-17T15:08:11.000Z","updated_at":"2025-02-26T22:25:24.000Z","dependencies_parsed_at":"2023-12-13T15:24:56.891Z","dependency_job_id":null,"html_url":"https://github.com/e2nIEE/PandaModels.jl","commit_stats":{"total_commits":325,"total_committers":7,"mean_commits":46.42857142857143,"dds":0.4092307692307692,"last_synced_commit":"d849c6a575022846811e86ba63c99862270f3ddf"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/e2nIEE/PandaModels.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2nIEE%2FPandaModels.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2nIEE%2FPandaModels.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2nIEE%2FPandaModels.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2nIEE%2FPandaModels.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e2nIEE","download_url":"https://codeload.github.com/e2nIEE/PandaModels.jl/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e2nIEE%2FPandaModels.jl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261372160,"owners_count":23148765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["julia","optimization","pandapower"],"created_at":"2025-05-28T10:10:57.001Z","updated_at":"2026-03-03T05:31:58.809Z","avatar_url":"https://github.com/e2nIEE.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PandaModels\n\n[![Dev](https://img.shields.io/badge/docs-dev-blue)](https://e2niee.github.io/PandaModels.jl/dev/)\n[![Documentation](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/documentation.yml/badge.svg)](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/documentation.yml)\n\n[![CI](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/ci.yml)\n[![CompatHelper](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/CompatHelper.yml/badge.svg)](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/CompatHelper.yml)\n[![TagBot](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/TagBot.yml/badge.svg)](https://github.com/e2nIEE/PandaModels.jl/actions/workflows/TagBot.yml)\n\n[![codecov](https://codecov.io/gh/e2nIEE/PandaModels.jl/branch/master/graph/badge.svg?label=codecov)](https://codecov.io/gh/e2nIEE/PandaModels.jl)\n[![coveralls](https://coveralls.io/repos/github/e2nIEE/PandaModels.jl/badge.svg?branch=master)](https://coveralls.io/github/e2nIEE/PandaModels.jl?branch=master)\n\n[PandaModels.jl](https://github.com/e2nIEE/PandaModels.jl) is a [Julia](https://julialang.org/) package which containing supplementary data and codes to prepare [pandapower](https://github.com/e2nIEE/pandapower) networks in a compatible format for Julia packages which are based on [InfrastructureModels](https://lanl-ansi.github.io/InfrastructureModels.jl/dev/), such as [PowerModels.jl](https://github.com/lanl-ansi/PowerModels.jl) to run and calculate steady-state power network optimization. These packages use [JuMP](https://github.com/JuliaOpt/JuMP.jl) as optimization environment.\n\n## Acknowledgements\nThis package has been developed as part of the De­part­ment of En­er­gy Ma­nage­ment and Power Sys­tem Ope­ra­ti­on [(e²n)](https://www.uni-kassel.de/eecs/en/faculties/energy-management-and-power-system-operation/home), University of Kassel and Fraunhofer Institute for Energy Economics and Energy System Technology [(IEE)](https://www.iee.fraunhofer.de/en.html).\n\nThe developers thank [Carleton Coffrin](https://www.coffrin.com/), the primary developer of [PowerModels.jl](https://lanl-ansi.github.io/PowerModels.jl/stable/), for his support.\n\u003c!--\n### Dependencies\n\n* [JuMP.jl](https://github.com/JuliaOpt/JuMP.jl)\n* [PowerModels.jl](https://github.com/lanl-ansi/PowerModels.jl)\n\ni/o:\n* [JSON.jl](https://github.com/JuliaIO/JSON.jl)\n\nsolvers:\n* [Ipopt.jl](https://github.com/jump-dev/Ipopt.jl)\n* [Juniper.jl](https://github.com/lanl-ansi/Juniper.jl)\n* [Cbc.jl](https://github.com/jump-dev/Cbc.jl)\n* [Gurobi.jl](https://github.com/jump-dev/Gurobi.jl)\n* [HiGHS.jl](https://github.com/jump-dev/HiGHS.jl)\n\n#### Gurobi Installation\n\n* To use [Gurobi](https://www.gurobi.com/):\n\n    1. Download and install from [Gurobi Download Center](https://www.gurobi.com/downloads/)\n\n    1. Get the Gurobi license, activate it and add its path to the local PATH environment variables by following the steps from [Gurobi License Center](https://www.gurobi.com/downloads/licenses/)\n\n        * for `linux` users: open `.bashrc` file with , e.g., `nano .bashrc` in your home folder and add:\n        ```bash\n        # gurobi\n        export GUROBI_HOME=\"/opt/gurobi_VERSION/linux64\"\n        export PATH=\"${PATH}:${GUROBI_HOME}/bin\"\n        export LD_LIBRARY_PATH=\"${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib\"\n        export GRB_LICENSE_FILE=\"/PATH_TO_YOUR_LICENSE_DIR/gurobi.lic\"\n        ```\n\n    1. Add the package to `Julia` by following the installation Instructions from [Gurobi.jl](https://github.com/jump-dev/Gurobi.jl)\n\n\n### Add and Develop PandaModels\n\nTo install and develop, as-for-yet unregistered, [PandaModels](https://github.com/e2nIEE/PandaModels.jl) from `Git Bash`:\n\n\n1. Clone [PandaModels](https://github.com/e2nIEE/PandaModels.jl) repository into your local machine: ::\n    ```bash\n    $ git clone https://github.com/e2nIEE/PandaModels.jl.git\n    ```\n1. open `Julia REPL` in `Git Bash`:\n    ```bash\n    $ julia\n    ```\n\n1. In `Julia REPL`, type:\n    ```julia\n    import Pkg\n    # path to cloned repository\n    Pkg.add(path = \"path/to/your/local/PandaModels.jl\")\n    Pkg.develop(\"PandaModels\")\n    Pkg.build(\"PandaModels\")\n    Pkg.resolve()\n    ```\n\n1. Check if your package is in develop mode:\n    ```julia\n    import PandaModels\n    pathof(PandaModels)\n    ```\n\n\u003e The result should be:\n\u003e```julia\n\u003e\"~/.julia/dev/PandaModels/src/PandaModels.jl\"\n\u003e```\n\nTo install and develop [PandaModels](https://github.com/e2nIEE/PandaModels.jl) directly from `python`:\n\n1. call `Julia` in `python`:\n\n* before running the following codes please set the `Julia/python` interface by following the steps [here](https://syl1.gitbook.io/julia-language-a-concise-tutorial/language-core/interfacing-julia-with-other-languages).\n\n```python\nimport julia\nfrom julia import Main\nfrom julia import Pkg\n```\n\n2. install `PandaModels` and build the develop mode:\n```python\n# add PandaModels in \"~/.julia/packages/PandaModels\"\nPkg.add(url = \"https://github.com/e2nIEE/PandaModels.jl\")\nPkg.develop(\"PandaModels\")\nPkg.build(\"PandaModels\")\nPkg.resolve()\n```\n\n3. Check if your package is in develop mode:\n```python\nfrom julia import Base\nBase.find_package(\"PandaModels\")\n```\n\u003e The result should be:\n\u003e ```python\n\u003e \"~/.julia/dev/PandaModels/src/PandaModels.jl\"\n\u003e ```\n\n\n\u003e Note: [PyJulia](https://pyjulia.readthedocs.io/en/latest/) crashes on Julia new released version 1.6.0, please install the older versions.\n\n--\u003e\n\n\u003c!--### Optimization Tool\n\nIn `python`, for any net in [pandapower](https://github.com/e2nIEE/pandapower) or [SimBench](https://github.com/e2nIEE/simbench) format, simply by calling `pandapower.runpm` function you are able to solve wide range of available OPF [models, approximations and relaxations](https://lanl-ansi.github.io/PowerModels.jl/stable/formulation-details/), from [PowerModels.jl](https://github.com/lanl-ansi/PowerModels.jl).\n\n```python\nrunpm(net, julia_file=None, pp_to_pm_callback=None, calculate_voltage_angles=True,\n          trafo_model=\"t\", delta=1e-8, trafo3w_losses=\"hv\", check_connectivity=True,\n          correct_pm_network_data=True, pm_model=\"ACPPowerModel\", pm_solver=\"ipopt\",\n          pm_mip_solver=\"cbc\", pm_nl_solver=\"ipopt\", pm_time_limits=None, pm_log_level=0,\n          delete_buffer_file=True, pm_file_path = None, opf_flow_lim=\"S\", **kwargs)\n```\nFor example to run semi-definite relaxation of AC OPF with :\n\n```python\nimport pandapower as pp\nimport pandapower.networks as nw\n\nnet = nw.example_simple()\npp.runpm(net, pm_model=\"SDPWRMPowerModel\", pm_solver=\"gurobi\", pm_nl_solver=\"gurobi\")\n```\n\n| exact non-convex model  | linear approximations | quadratic approximations | quadratic relaxations | sdp relaxations |\n| ------------- | ------------- |------------- | ------------- | ------------- |\n| ACPPowerModel | DCPPowerModel | DCPLLPowerModel | SOCWRPowerModel | SDPWRMPowerModel |\n| ACRPowerModel | DCMPPowerModel | LPACCPowerModel | SOCWRConicPowerModel | SparseSDPWRMPowerModel |\n| ACTPowerModel | BFAPowerModel | | SOCBFPowerModel | |\n| IVRPowerModel | NFAPowerModel | | SOCBFConicPowerModel | |\n| | | | QCRMPowerModel | |\n| | | | QCLSPowerModel | |\n\n\nDifferent solver options are availabe in [PandaModels](https://github.com/e2nIEE/PandaModels.jl). For more information please check the supported solvers by [JuMP.jl](https://github.com/JuliaOpt/JuMP.jl) in [here](https://jump.dev/JuMP.jl/dev/installation/).\n\n\n| solvers  | support | license |\n| ------------- | ------------- | ------------- |\n| Juniper | (MI)SOCP, (MI)NLP | MIT |  \n| Ipopt | LP, QP, NLP | EPL |\n| Cbc | (MI)LP | EPL |\n| SCIP | (MI)LP, (MI)NLP | ZIB |\n| Gurobi | (MI)LP, (MI)SOCP | Comm. |\n| KNITRO | (MI)LP, (MI)SOCP, (MI)NLP | Comm. |\n\n\n\nFor DC and AC OPF, you can directly call `pandapower.runpm_dc_opf` and `pandapower.runpm_ac_opf`, respectively.\n\n\nFor example:\n\n```python\nimport pandapower as pp\nimport pandapower.networks as nw\n\nnet = nw.example_simple()\npp.runpm_ac_opf(net)\n```\n\nfor more  details about the settings please see [here](https://pandapower.readthedocs.io/en/v2.6.0/opf/powermodels.html#usage), also the detailed tutorial is available [here](https://github.com/e2nIEE/pandapower/blob/develop/tutorials/opf_powermodels.ipynb).\n--\u003e\n\n\u003c!-- ### Developing:\n##### Add New Optimization Model to PowerModels\n\n\n\n### Use pandapower Directly in Julia\n\n\n\n\n### Test pandapower\n\nAll changes in [PandaModels](https://github.com/e2nIEE/PandaModels.jl) should be synced to [pandapower](https://github.com/e2nIEE/pandapower). To test the changes, first checkout to `julia_pkg` branch in [pandapower](https://github.com/e2nIEE/pandapower) and run pandapower test:\n\n```python\nimport pandapower.test\npandapower.test.run_all_tests()\n```\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe2niee%2Fpandamodels.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe2niee%2Fpandamodels.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe2niee%2Fpandamodels.jl/lists"}