GithubHelp home page GithubHelp logo

philippverpoort / posted Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 4.0 1.03 MB

POSTED: Potsdam open-source techno-economic database

Home Page: https://doi.org/10.5281/zenodo.10639752

License: MIT License

Python 60.06% R 39.94%
data data-science economics energy research research-project research-tool techno-economic techno-economic-analysis technology

posted's Introduction

DOI

POSTED: Potsdam open-source techno-economic database

POSTED is a public database of techno-economic data on energy and climate-mitigation technologies, along with a framework for consistent data handling and an open-source toolbox for techno-economic assessments (TEA). In particular, it provides a structure for and contains data on investment cost, energy and feedstock demand, other fixed and variable costs, emissions intensities, and other characteristics of conversion, storage, and transportation technologies in the energy and related sectors. The accompanying software code is intended for consistent maintenance of this data and for deriving straight-forward results from them, such as levelised cost, greenhouse-gas emission intensities, or marginal abatement cost.

POSTED was created and is maintained by researchers at the Potsdam Institute for Climate Impact Research (PIK), a German research institute conducting integrated research for global sustainability. The source code of the accompanying framework and structure is written in both Python and R, and it is open-sourced via this git repository and may be used and redistributed under the MIT Licence. The data may be used and redistributed under the Creative Commons Licence 4.0. Any scientific work making use of POSTED (both the collected data and the software) are encouraged to cite it (DOI:10.5281/zenodo.10639752, see below).

INSTALLATION

You can install the posted Python package via:

# when using poetry
poetry add git+https://github.com:PhilippVerpoort/posted.git

# when using pip
pip install git+https://github.com:PhilippVerpoort/posted.git

You can install the posted R package using install_github from devtools via:

install_github('PhilippVerpoort/posted')

Packages on PyPI and CRAN will be made available at a later stage.

DEPENDENCY MANAGEMENT FOR TESTING AND DEVELOPMENT

Python dependencies are managed via poetry. To install dependencies in a virtual Python environment, please type the following after cloning.

poetry install

R dependencies are managed via renv and saved to the renv.lock file. To install dependencies in a virtual R environment, please type the following after cloning.

renv::restore()

CITATION

To cite POSTED, please use this:

P.C. Verpoort, P. Effing, C. Bachorz, L. Gast, L. Heidweiler, A. Hofmann, J. Dürrwächter, F. Ueckerdt (2023). POSTED: Potsdam open-source techno-economic database. Version 0.3.0, https://github.com/PhilippVerpoort/posted.

A BibTeX entry for LaTeX users is:

@Manual{,
 title = {POSTED: Potsdam open-source techno-economic database},
 author = {Philipp C. Verpoort and Paul Effing and Clara Bachorz and Lukas Gast and Leo Heidweiler and Anke Hofmann and Jakob Dürrwächter and Falko Ueckerdt},
 year = {2023},
 note = {Version 0.3.0},
 url = {https://github.com/PhilippVerpoort/posted},
}

When using data from POSTED in scientific publication, please remember that it is good scientific practice to cite both POSTED and the authors of the primary publication of the respective data entries you use. BibTeX identifiers for the source are reported in the source column in each techno-economic datafile. The respective BibTeX records can be found under inst/extdata/database/sources.bib.

LICENSE

In a nutshell -- Code: MIT, Data: CC-BY 4.0.

The source code located in subdirectories python/ and R/ of this repository is available under an MIT Licence, a copy of which is also provided as a separate file in this repository.

The data located in subdirectory inst/extdata/database/ of this repository is available under an Creative Commons Attribution 4.0 Licence, a copy of which can be found on the highlighted hyperlink.

posted's People

Contributors

clarabachorz avatar dependabot[bot] avatar effingpaul avatar jakobbd avatar leoheidweiler avatar philippverpoort avatar

Watchers

 avatar  avatar

posted's Issues

Improve input unit flexibility in TEDFs

Some sources for the processes Methanol to Olefins and Naphtha Steam Cracking report functional units from simulations that can be given as kg/s instead of kg, for example. This is then reported relative to the product output, also in kg/s. However, unit_convert does not support such entries, raising that kg/s cannot be converted to kg.
Additionally, such unit conversion issues are not caught with Exceptions, making it hard to identify the row affected.

Suggested Fixes:

  • add another step in unit conversion, which first simplifies the reported units for unit and reference_unit relative to one another (ie. here, convert kg/s to kg for both entries).
  • add Exceptions that can catch such unit conversion issues

Dealing with TEDFs producing multiple output products

Some POSTED TEDFs deal with processes with multiple output products: Fischer-Tropsch, Methanol to Olefins, NGL to Olefins and Naphtha Steam Cracking. Different sources report data based on different reference outputs, eg. in Methanol to Olefins, some data is reported with respect to Output Capacity|Ethylene whilst others are relative to Output Capacity|Propylene.

At the moment, the temporary solution used is to have the primary_output of such processes (reported in tech_types) be the total sum of products (for Methanol to Olefins, Higher-Value Chemicals = Ethylene + Propylene + BTX) or a specific end product (for Fischer-Tropsch, Gasoline.

In the future, we want to move away from this partial solution, and be able to use and change the reference primary_output, eg. to obtain a TED for Methanol-to-Olefins that could be given for the production of 1 ton of ethylene or 1 ton of propylene.

Conversions around OPEX Fixed Specific variable

Two bugs found with the calculation and conversion of OPEX Fixed Specific:

  • Conversion using OCF uses the wrong units: an OCF reported in units of % (eg 91.3%), is interpreted as 91.3, rather than 0.913. This issue affects the Cement with CC file for example, where all OPEX are reported as OPEX Variable to avoid this conversion error.
  • Unit conversions that use heating values: this bug was found in the Methanol Synthesis with Reforming file. The Methanol Output is given in tons, whereas the reference flow has to be in MWh.
    As a result, unit_convert changes this to MWh;LHV, but then raises an error: the reference unit reported goes from 't/a' to 'MWh;LHV/a', which unit_convert finds to be a variant, but splits into 'MWh' and 'LHV/a'. It then doesn't recognize LHV/a as a unit, obviously.
    So there is a bug somewhere about where this '/a' is appended, the unit should have been converted from 't/a' to 'MWh/a;LHV'

Transport services integration in TEDFs

A welcome addition to the current TEDFs would be to integrate transport services: eg person transport through aviation. This will require more development on the parameters POSTED can take.
Some ideas on further steps:

  • Discuss with the REMIND transport team to get an idea of data available / formats / important parameters
  • Literature search to identify more papers containing such techno-economic data to get a better idea on the best way to report this

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.