Skip to content
forked from PyPSA/linopy

Linear optimization with N-D labeled arrays in Python

License

Notifications You must be signed in to change notification settings

vishalbelsare/linopy

 
 

Repository files navigation

linopy: Linear optimization with N-D labeled variables

PyPI CI License: GPL v3 doc codecov

linopy is an open-source python package that facilitates linear or mixed-integer optimisation with real world data. It builds a bridge between data analysis packages like xarray & pandas and linear problem solvers like cbc, gurobi (see the full list below). The project aims to make linear programming in python easy, highly-flexible and performant.

Main features

linopy is heavily based on xarray which allows for many flexible data-handling features:

  • Define (arrays of) contnuous or binary variables with coordinates, e.g. time, consumers, etc.
  • Apply arithmetic operations on the variables like adding, substracting, multiplying with all the broadcasting potentials of xarray
  • Apply arithmetic operations on the linear expressions (combination of variables)
  • Group terms of a linear expression by coordinates
  • Get insight into the clear and transparent data model
  • Modify and delete assigned variables and constraints on the fly
  • Use lazy operations for large linear programs with dask
  • Choose from different commercial and non-commercial solvers
  • Fast import and export a linear model using xarray's netcdf IO

Installation

So far linopy is available on the PyPI repository

pip install linopy

Supported solvers

linopy supports the following solvers

Note that these do have to be installed by the user separately.

License

Copyright 2021 Fabian Hofmann

This package is published under license GNU Public License GPLv3

About

Linear optimization with N-D labeled arrays in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.3%
  • Jupyter Notebook 2.2%
  • Julia 0.5%