ecalc

eCalc™ is a software tool for calculation of energy demand and greenhouse gas emissions from oil and gas production and processing.

https://github.com/equinor/ecalc

Science Score: 26.0%

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

  • 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
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

eCalc™ is a software tool for calculation of energy demand and greenhouse gas emissions from oil and gas production and processing.

Basic Info
Statistics
  • Stars: 39
  • Watchers: 9
  • Forks: 7
  • Open Issues: 20
  • Releases: 118
Created about 3 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Code of conduct Codeowners Security

README.md

eCalc Logo

CI Build License Code style: black PyPI - Python Version PyPI - Wheel PyPI - Implementation Pre-commit - Enabled

eCalc™

eCalc™ is a software tool for calculation of energy demand and greenhouse gas (GHG) emissions from oil and gas production and processing.

Note

eCalc™ is a work in progress and is by no means considered a finished and final product. We currently recommend to use the YAML API when using eCalc, and only fallback to the Python API when it is strictly needed.

Warning

The quality of the results produced by eCalc™ is highly dependent on the quality of the input data. Further, we do not make any guarantees and are not liable for the quality of results when using eCalc™.


eCalc Illustration


Reference Links


Introduction

eCalc™ is a software tool for calculation of energy demand and GHG emissions from oil and gas production and processing. It enables the cross-disciplinary collaboration required to achieve high-quality and transparent energy and GHG emission prognosis and decision support.

eCalc™ performs energy and emission calculations by integrating data, knowledge and future plans from different disciplines. This could be production and injection profiles from the reservoir engineer, characteristics of energy consuming equipment units such as gas turbines, compressors and pumps from the facility engineer, and emission factors for different fuels from the sustainability engineer. The main idea is using physical or data-driven models to relate production rates and pressures to the required processing energy and resulting emissions. Integrated bookkeeping for all emission sources is offered.

eCalc™ uses a bottom-up approach to give high-quality installation and portfolio level forecasts at the same time as detailed insights about the energy drivers and processing capacities for the individual installation.

Getting started

eCalc™ is both a Python library and has a command line interface (CLI) to use with eCalc YAML Models. We currently recommend using eCalc™ from the command line with eCalc YAML Models, since the Python API is about to change soon, but the YAML will be more or less stable and backwards compatible.

To get started, please refer to the eCalc™ Docs - Getting Started, or follow the quick guide below:

Prerequisites

  • Python, version 3.11 or higher
  • Java, version 8 or higher
  • Docker (Optional), Linux or MacOS

eCalc™ only supports Python 3, and will follow Komodo wrt. minimum requirement for Python, which currently is 3.11.

Installation

bash pip install libecalc ecalc --version ecalc selftest

Alternative using Docker:

bash docker build --target build -t ecalc . docker run -it ecalc /bin/bash

Inside the docker container, run:

bash ecalc --version ecalc selftest

Please refer to Docker Docs for details on how to use Docker.

Alternative using devcontainer:

In vscode: - Install extension "Dev Containers" and open command palette (ctrl+p or cmd+p or F1) and click "reopen in container" then click the alternative "eCalc Python Dev Environment".

In github codespaces: - In the repo click the "<> Code" button -> codespaces -> in the codespaces section click the ellipsis menu (three dots) -> click "New with options.." -> under "Dev container configuration" click and choose "eCalc Python Dev Environment" -> then click button "Create Codespace".

ecalc-selftest

Create and run your first model

Please refer to the https://equinor.github.io/ecalc/docs/about/modelling/setup/ on how to set up your own model with the YAML API and https://equinor.github.io/ecalc/docs/about/getting_started/cli/ on how to run it.

See Examples below to use one of our predefined examples.

Development and Contribution

We welcome all kinds of contributions, including code, bug reports, issues, feature requests, and documentation. The preferred way of submitting a contribution is to either make an issue on GitHub or by forking the project on GitHub and making a pull request.

See Contribution Document on how to contribute.

See the Developer Guide for details.

Running tests

We use pytest for our tests, to run all tests shell poetry run pytest

To update inline snapshots shell poetry run pytest -m "inlinesnapshot" --inline-snapshot=fix

Examples

Jupyter Notebook examples can be found in /examples. In order to run these examples, you need to install the optional dependencies.

Using pip

bash pip install libecalc[notebooks]

In the examples you will find examples using both the YAML specifications and Python models. See /examples

Run jupyter:

bash jupyter notebook examples

Using poetry

shell poetry install --extras notebooks poetry run jupyter notebook examples

Documentation

The documentation can be found at https://equinor.github.io/ecalc

Owner

  • Name: Equinor
  • Login: equinor
  • Kind: organization

GitHub Events

Total
  • Create event: 327
  • Issues event: 10
  • Release event: 37
  • Watch event: 9
  • Delete event: 248
  • Issue comment event: 117
  • Push event: 1,635
  • Pull request event: 545
  • Pull request review event: 658
  • Pull request review comment event: 443
  • Fork event: 2
Last Year
  • Create event: 330
  • Issues event: 10
  • Release event: 38
  • Watch event: 9
  • Delete event: 250
  • Issue comment event: 118
  • Push event: 1,646
  • Pull request event: 552
  • Pull request review event: 660
  • Pull request review comment event: 443
  • Fork event: 2

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 982
  • Total Committers: 24
  • Avg Commits per committer: 40.917
  • Development Distribution Score (DDS): 0.826
Past Year
  • Commits: 458
  • Committers: 16
  • Avg Commits per committer: 28.625
  • Development Distribution Score (DDS): 0.716
Top Committers
Name Email Commits
Jostein Solaas j****s@e****m 171
Frode Helgetun Krogh 7****k@u****m 161
Jostein Solaas 3****s@u****m 98
Ole Petter Lødøen o****l@e****m 88
Thomas Falch Johansen T****y@u****m 83
github-actions[bot] 4****]@u****m 82
Jostein Solaas j****s@g****m 59
Thomas Johansen t****5@e****m 43
Jørgen j****e@e****m 41
Markus Rye Foss m****s@b****o 35
Kjetil Brakstad 6****k@u****m 20
Kristin Solbakken k****a@g****m 20
Aleksander Karlsson A****A@e****m 17
Markus Rye Foss 8****f@u****m 12
Shi Chen 9****n@u****m 12
dependabot[bot] 4****]@u****m 10
Martin Storødegård 1****c@u****m 9
Jason Foulkes 9****l@u****m 5
Ketil Wik 7****k@u****m 5
Morten Dæhli Aslesen m****l@e****m 5
Kjetil Brakstad k****k@e****m 3
Jfoul j****u@e****m 1
Morten Dæhli Aslesen m****i@g****m 1
eCalc Team o****e@e****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 16
  • Total pull requests: 1,540
  • Average time to close issues: 3 days
  • Average time to close pull requests: 10 days
  • Total issue authors: 6
  • Total pull request authors: 19
  • Average comments per issue: 1.19
  • Average comments per pull request: 0.28
  • Merged pull requests: 1,214
  • Bot issues: 1
  • Bot pull requests: 217
Past Year
  • Issues: 8
  • Pull requests: 768
  • Average time to close issues: 2 days
  • Average time to close pull requests: 5 days
  • Issue authors: 4
  • Pull request authors: 13
  • Average comments per issue: 1.13
  • Average comments per pull request: 0.21
  • Merged pull requests: 571
  • Bot issues: 1
  • Bot pull requests: 119
Top Authors
Issue Authors
  • andreas-el (7)
  • berland (4)
  • patnr (2)
  • SAKavli (1)
  • github-actions[bot] (1)
  • kjbrak (1)
Pull Request Authors
  • jsolaas (378)
  • frodehk (311)
  • github-actions[bot] (188)
  • olelod (180)
  • TeeeJay (166)
  • markusrf (65)
  • krisolba1 (47)
  • kjbrak (38)
  • jorgenengelsen (35)
  • Aleksander-Karlsson (33)
  • dependabot[bot] (29)
  • equinor-schen (24)
  • Blubtastic (16)
  • ketwik (14)
  • tj098895 (5)
Top Labels
Issue Labels
bug (3) dependencies (1) autorelease: pending (1)
Pull Request Labels
autorelease: tagged (96) autorelease: pending (90) dependencies (29) documentation (12) bug (9) python (6) javascript (5) Breaking Change (2) enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,749 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 226
  • Total maintainers: 4
proxy.golang.org: github.com/equinor/ecalc
  • Versions: 117
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 10 months ago
pypi.org: libecalc

eCalc™ is a software tool for calculation of energy demand and greenhouse gas (GHG) emissions from oil and gas production and processing.

  • Versions: 109
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,749 Last month
Rankings
Dependent packages count: 6.9%
Average: 18.7%
Dependent repos count: 30.5%
Maintainers (4)
Last synced: 10 months ago

Dependencies

.github/workflows/docs-ci.yml actions
  • actions/checkout v3.5.0 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4.5.0 composite
.github/workflows/docs-publish.yml actions
  • actions/checkout v3.5.0 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4.5.0 composite
.github/workflows/examples-ci.yml actions
  • actions/checkout v3.5.0 composite
  • actions/setup-python v4.5.0 composite
.github/workflows/lib-ci.yml actions
  • actions/checkout v3.5.0 composite
  • actions/setup-python v4.5.0 composite
.github/workflows/on-push-any-branch.yml actions
.github/workflows/on-push-main-branch.yml actions
.github/workflows/on-push-release-branch.yml actions
.github/workflows/pre-ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/publish.yml actions
  • actions/cache v3.0.11 composite
  • actions/checkout v3 composite
  • actions/setup-python v4.3.0 composite
  • snok/install-poetry v1.3.3 composite
.github/workflows/release-please.yml actions
  • actions/checkout v2 composite
  • google-github-actions/release-please-action v3 composite
.devcontainer/Dockerfile docker
  • mcr.microsoft.com/vscode/devcontainers/javascript-node 16 build
Dockerfile docker
  • dev latest build
  • python 3.8-slim build
docs/package-lock.json npm
  • 1097 dependencies
docs/package.json npm
  • @docusaurus/module-type-aliases ^2.4.0 development
  • @docusaurus/types ^2.4.0 development
  • @tsconfig/docusaurus ^1.0.7 development
  • typescript ^5.0.4 development
  • @docusaurus/core ^2.4.0
  • @docusaurus/plugin-content-docs ^2.4.0
  • @docusaurus/preset-classic ^2.4.0
  • @easyops-cn/docusaurus-search-local ^0.35.0
  • @mdx-js/react ^1.6.22
  • clsx ^1.2.1
  • hast-util-is-element ^2.1.3
  • mdx-mermaid ^v1.3.0
  • mermaid ^10.1.0
  • prism-react-renderer ^1.3.5
  • react ^17.0.2
  • react-dom ^17.0.2
  • rehype-katex ^5.0.0
  • remark-math ^3.0.0
poetry.lock pypi
  • 139 dependencies
pyproject.toml pypi
  • PyYAML ^6.0
  • Shapely ^2.0
  • jupyter ^1.0.0
  • matplotlib ^3.7.1
  • networkx ^3.1
  • numpy ~1.24.0
  • orjson ^3.8.11
  • pandas ^1
  • py4j ^0.10
  • pydantic ^1.10
  • python >=3.8,<3.12
  • rich ^13.4.1
  • ruamel.yaml ^0.17.21
  • scipy ^1.10
  • typer ^0.9.0