osemosys_gnu_mathprog

The GNU MathProg implementation of OSeMOSYS

https://github.com/osemosys/osemosys_gnu_mathprog

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    3 of 13 committers (23.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.4%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

The GNU MathProg implementation of OSeMOSYS

Basic Info
  • Host: GitHub
  • Owner: OSeMOSYS
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 4.22 MB
Statistics
  • Stars: 9
  • Watchers: 6
  • Forks: 15
  • Open Issues: 45
  • Releases: 5
Created almost 7 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation Zenodo

README.md

OSeMOSYS GNU MathProg

Thanks for using OSeMOSYS and welcome to the OSeMOSYS community.

To run OSeMOSYS, enter the following line into your command prompt and data file name:

glpsol -m osemosys.txt -d  ../Training_Case_Studies/utopia.txt -o results.csv

Alternatively, install GUSEK (http://gusek.sourceforge.net/gusek.html) and run the model within this integrated development environment (IDE). To do so, open the datafile (e.g. utopia.txt) and select "Use External .dat file" from the Options menu. Then change to the model file and select the "Go" icon or press F5.

Developers - Testing

This repository uses Travis CI to run regression tests and harmonisation tests across each of the OSeMOSYS GNU MathProg normal and short implementations.

Each push to a branch on the repository, or submission of a pull request triggers a build on Travis CI, with the corresponding status reported back in the pull request comments.

The tests must pass before a pull request may be merged into the main repository.

Tests are defined using the Python package pytest and the runs are configured within the Travis CI configuration file .travis.yml.

The tests are stored in the tests folder.

Running the tests

To run the tests on your local computer, you need a Python 3.7 installation. The easiest way to install this is using miniconda.

Then you need to install pytest conda install pytest pandas and can then run the tests using the command pytest.

Each of the tests in the tests folder runs an OSeMOSYS model file and checks that the output matches a given value.

Developers - Creating a new release and deploying to Github Releases

Creating a new release for OSeMOSYS GNU MathProg is as simple as creating a new semver compliant tag and pushing the tag to a branch. Travis CI will then run the tests, and if they pass, create the package using the makefile found in the root of the repository. The makefile includes the contents of the src and scripts folders, an html render of src/README.md and then zips them up deploying them to Github Releases and providing the contents of docs/changelog.md as a release description.

1. Update the changelog

Add a new heading with the version number you will use and include a description of the changes since the last release.

It can be useful to view the log of git commits since the previous release using the following command:

git log <yourlasttag>..HEAD

2. Run the tests locally

Follow the instructions provided to run the tests.

3. Create a new tag and push to Github

Create a new annotated tag:

git tag -a v1.0.0 -m "A descriptive message for the release"

Please follow the Semantic Versioning guidelines. To create an alpha or beta release (pre-release) you would do the following:

git tag -a v1.0.0-alpha.1 -m "An alpha release"
git tag -a v1.0.0-beta.1 -m "An beta release"
git tag -a v1.0.0 -m "First stable official release!"

4. Check that the package is deployed successfully

You can follow the release process at the Travis CI service.

Finally, check that the release appears on the Github Releases page.

Owner

  • Name: OSeMOSYS
  • Login: OSeMOSYS
  • Kind: organization
  • Email: osemosys@gmail.com

Open-source Energy Modelling System

Citation (CITATION.cff)

cff-version: 1.2.0
title: OSeMOSYS GNU MathProg
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Mark
    family-names: Howells
    orcid: 'https://orcid.org/0000-0001-6419-4957'
    affiliation: Loughborough University Department of Social Sciences
  - family-names: Welsch
    given-names: Manuel
    affiliation: International Atomic Energy Agency
  - family-names: Lefvert
    given-names: Adrian
    orcid: 'https://orcid.org/0000-0001-8587-4054'
  - given-names: Constantinos
    family-names: Taliotis
    orcid: 'https://orcid.org/0000-0003-4022-5506'
    affiliation: The Cyprus Institute
  - given-names: Igor
    family-names: Tatarewicz
    affiliation: >-
      Institute of Environmental Protection - National
      Research Institute / National Centre for Emissions
      Management (KOBiZE)
  - given-names: Tom
    family-names: Alfstad
    affiliation: >-
      United Nations Department of Economic and Social
      Affairs
  - given-names: Nawfal
    family-names: Saadi
    orcid: 'https://orcid.org/0000-0001-8923-7431'
  - given-names: Francesco
    family-names: Gardumi
    orcid: 'https://orcid.org/0000-0001-8371-9325'
    affiliation: KTH Royal Institute of Technology
  - given-names: Vignesh
    family-names: Sridharan
    affiliation: KTH Royal Institute of Technology,
    orcid: 'https://orcid.org/0000-0003-0764-2615'
  - given-names: Agnese
    family-names: Beltramo
    affiliation: KTH Royal Institute of Technology,
    orcid: 'https://orcid.org/0000-0001-6591-3028'
  - given-names: Nandi
    family-names: Moksnes
    affiliation: KTH Royal Institute of Technology,
    orcid: 'https://orcid.org/0000-0002-8641-564X'
  - given-names: Taco
    family-names: Niet
    affiliation: Simon Fraser University,
    orcid: 'https://orcid.org/0000-0003-0266-2705'
  - given-names: Abhishek
    family-names: Shivakumar
    affiliation: United Nations Department of Economic and Social Affairs,
    orcid: 'https://orcid.org/0000-0002-2535-4134'
  - given-names: Roberto
    family-names: Heredia Fonseca,
    affiliation: KTH Royal Institute of Technology,
    orcid: 'https://orcid.org/0000-0003-3947-8725'
  - given-names: Will
    family-names: Usher
    affiliation: KTH Royal Institute of Technology,
    orcid: 'https://orcid.org/0000-0001-9367-1791'
  - given-names: Christoph
    family-names: Muschner
    affiliation: KTH Royal Institute of Technology,
    orcid: 'https://orcid.org/0000-0001-8144-5260'
identifiers:
  - type: doi
    value: 10.5281/zenodo.5255505
    description: "This is the archived snapshot of version 0.8 of OSeMOSYS GNU MathProg"
  - type: doi
    value: 10.5281/zenodo.5255610
    description: "This is the archived snapshot of version 0.8.1 of OSeMOSYS GNU MathProg"
  - type: doi
    value: 10.5281/zenodo.4778833
    description: "This is the archived snapshot of version 1.0.1 of OSeMOSYS GNU MathProg"
  - type: doi
    value: 10.5281/zenodo.4778832
    description: "This is the archived collections of all versions of OSeMOSYS GNU MathProg"
repository-code: 'https://github.com/OSeMOSYS/OSeMOSYS_GNU_MathProg'
url: 'http://www.osemosys.org/'
repository: 'https://github.com/OSeMOSYS/OSeMOSYS'
repository-artifact: 'https://zenodo.org/record/5255610'
abstract: >-
  OSeMOSYS - the Open Source energy MOdelling SYStem. This
  source code repository contains the Apache-2.0 licensed
  source code for the GNU MathProg implementation of the
  model formulation.
keywords:
  - OSeMOSYS
  - energy system model
  - energy system optimisation model
  - ESOM
  - ESM
  - energy system modelling
license: Apache-2.0
version: v1.0.1
date-released: '2021-05-21'
references:
  - type: article
    authors:
    - given-names: Mark
      family-names: Howells
      orcid: 'https://orcid.org/0000-0001-6419-4957'
      affiliation: Loughborough University Department of Social Sciences
    - given-names: Holger
      family-names: Rogner
      affiliation: International Atomic Energy Agency
    - given-names: Neil
      family-names: Strachan
      affiliation: University College London
    - given-names: Charlie
      family-names: Heaps
      affiliation: Stockholm Environment Institute
    - given-names: Hillard
      family-names: Huntington
      affiliation: Stanford University
    - given-names: Socrates
      family-names: Kypreos
      affiliation: Paul Scherrer Institute
    - given-names: Alison
      family-names: Hughes
      affiliation: University of Cape Town
    - given-names: S.
      family-names: Silveira
    - given-names: Joe
      family-names: Decarolis
    - given-names: Morgan
      family-names: Bazilian
    - given-names: A.
      family-names: Roehrl
    doi: "10.1016/j.enpol.2011.06.033"
    journal: "Energy Policy"
    start: 5850 # First page number
    end: 5870 # Last page number
    title: "OSeMOSYS: The Open Source Energy Modeling System: An introduction to its ethos, structure and development"
    volume: 39 # Volume number
    issue: 10 # Issue number
    year: 2011
    keywords:
      - Energy systems analysis
      - Energy modeling
      - Open source
    abstract: "This paper discusses the design and development of the Open Source Energy Modeling System (OSeMOSYS). It describes the model’s formulation in terms of a ‘plain English’ description, algebraic formulation, implementation—in terms of its full source code, as well as a detailed description of the model inputs, parameters, and outputs. A key feature of the OSeMOSYS implementation is that it is contained in less than five pages of documented, easily accessible code. Other existing energy system models that do not have this emphasis on compactness and openness makes the barrier to entry by new users much higher, as well as making the addition of innovative new functionality very difficult. The paper begins by describing the rationale for the development of OSeMOSYS and its structure. The current preliminary implementation of the model is then demonstrated for a discrete example. Next, we explain how new development efforts will build on the existing OSeMOSYS codebase. The paper closes with thoughts regarding the organization of the OSeMOSYS community, associated capacity development efforts, and linkages to other open source efforts including adding functionality to the LEAP model."

GitHub Events

Total
  • Issues event: 4
  • Issue comment event: 5
  • Pull request review event: 4
  • Pull request review comment event: 1
  • Pull request event: 1
  • Fork event: 1
  • Create event: 1
Last Year
  • Issues event: 4
  • Issue comment event: 5
  • Pull request review event: 4
  • Pull request review comment event: 1
  • Pull request event: 1
  • Fork event: 1
  • Create event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 210
  • Total Committers: 13
  • Avg Commits per committer: 16.154
  • Development Distribution Score (DDS): 0.419
Past Year
  • Commits: 10
  • Committers: 2
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.3
Top Committers
Name Email Commits
Will Usher w****r@k****e 122
Abhishek Shivakumar a****8@g****m 20
NMoksnes 3****s 13
FraGard f****i@g****m 12
Roberto David Heredia r****d@g****m 9
Taco Niet t****t@b****a 8
vignesh1987 v****i@k****e 7
AgnesBelt 3****t 7
ResearchAtPlay k****w@u****a 5
chrwm d****e@p****e 3
vignesh1987 3****7 2
HauHe h****h@k****e 1
Roberto David Heredia 5****d 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 2 years ago

All Time
  • Total issues: 49
  • Total pull requests: 47
  • Average time to close issues: 7 months
  • Average time to close pull requests: 26 days
  • Total issue authors: 11
  • Total pull request authors: 12
  • Average comments per issue: 2.12
  • Average comments per pull request: 1.91
  • Merged pull requests: 38
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 9
  • Pull requests: 7
  • Average time to close issues: 3 months
  • Average time to close pull requests: 3 days
  • Issue authors: 5
  • Pull request authors: 4
  • Average comments per issue: 1.11
  • Average comments per pull request: 0.57
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • willu47 (25)
  • HauHe (9)
  • FraGard (6)
  • tniet (4)
  • trevorb1 (3)
  • vignesh1987 (2)
  • Timon-R (1)
  • edwardxtg (1)
  • chrwm (1)
  • emmajjrichardson (1)
  • EmiFej (1)
  • NMoksnes (1)
  • Negarnmz (1)
Pull Request Authors
  • willu47 (18)
  • FraGard (6)
  • tniet (6)
  • abhishek0208 (4)
  • NMoksnes (4)
  • ResearchAtPlay (2)
  • AgnesBelt (2)
  • vignesh1987 (2)
  • HauHe (2)
  • robertodawid (1)
  • trevorb1 (1)
  • amanmajid (1)
  • chrwm (1)
Top Labels
Issue Labels
enhancement (15) bug (14) scripts (6) question (5) good first issue (4) documentation (3) testing (3) help wanted (2) invalid (1)
Pull Request Labels
enhancement (6) documentation (2) performance (1) bug (1)

Dependencies

.github/workflows/citation.yaml actions
  • actions/checkout v2 composite
  • citation-file-format/cffconvert-github-action 2.0.0 composite
.github/workflows/python.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
requirements.txt pypi
  • pandas *
  • pytest *