pyELQ
Detect, localize, and quantify methane emissions from concentration and wind measurements.
https://github.com/sede-open/pyelq
Category: Emissions
Sub Category: Carbon Intensity and Accounting
Keywords from Contributors
routing parallelism feature-toggle feature-flag featured training control sanitation measurements ui-components
Last synced: about 10 hours ago
JSON representation
Repository metadata
The python Emission Localization and Quantification (pyELQ) code aims to maximize effective use of existing measurement data, especially from continuous monitoring solutions. The code has been developed to detect, localize, and quantify methane emissions from concentration and wind measurements.
- Host: GitHub
- URL: https://github.com/sede-open/pyelq
- Owner: sede-open
- License: apache-2.0
- Created: 2024-02-07T07:19:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-15T13:45:44.000Z (12 days ago)
- Last Synced: 2025-04-17T22:59:55.038Z (10 days ago)
- Language: Python
- Homepage: https://sede-open.github.io/pyELQ/
- Size: 6.79 MB
- Stars: 14
- Watchers: 1
- Forks: 8
- Open Issues: 2
- Releases: 16
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: CODEOWNERS.md
README.md
pyELQ
This repository contains the Python Emission Localization and Quantification software we call pyELQ. It is code used
for gas dispersion modelling, in particular methane emissions detection, localization and quantification.
Background
The python Emission Localization and Quantification (pyELQ) code aims to maximize effective use of
existing measurement data, especially from continuous monitoring solutions. The code has been developed to detect,
localize, and quantify methane emissions from concentration and wind measurements. It can be used in combination with
point or beam sensors that are placed strategically on an area of interest.
The algorithms in the pyELQ code are based a Bayesian statistics framework. pyELQ can ingest long-term concentration
and wind data, and it performs an inversion to predict the likely strengths and locations of persistent methane sources.
The goal is to arrive at a plausible estimate of methane emissions from an area of interest that matches the measured
data. The predictions from pyELQ come with uncertainty ranges that are representative of probability density functions
sampled by a Markov Chain Monte Carlo method. Time series of varying length can be processed by pyELQ: in general,
the Bayesian inversion leads to a more constrained solution if more high-precision measurement data is available.
We have tested our code under controlled conditions as well as in operating oil and gas facilities.
The information on the strength and the approximate location of methane emission sources provided by pyELQ can help
operators with more efficient identification and quantification of (unexpected) methane sources, in order to start
appropriate mitigating actions accordingly. The pyELQ code is being made available in an open-source environment,
to support various assets in their quest to reduce methane emissions.
Use cases where the pyELQ code has been applied are described in the following papers:
-
IJzermans, R., Jones, M., Weidmann, D. et al. "Long-term continuous monitoring of methane emissions at an oil and gas facility using a multi-open-path laser dispersion spectrometer." Sci Rep 14, 623 (2024). (https://doi.org/10.1038/s41598-023-50081-9)
-
Weidmann, D., Hirst, B. et al. "Locating and Quantifying Methane Emissions by Inverse Analysis of Path-Integrated Concentration Data Using a Markov-Chain Monte Carlo Approach." ACS Earth and Space Chemistry 2022 6 (9), 2190-2198 (https://doi.org/10.1021/acsearthspacechem.2c00093)
Deployment design
The pyELQ code needs high-quality methane concentration and wind data to be able to provide reliable output on location
and quantification of methane emission sources. This requires methane concentration sensors of sufficiently high
precision in a layout that allows the detection of relevant methane emission sources, in combination with wind
measurements of high enough frequency and accuracy. The optimal sensor layout typically depends on the prevailing
meteorological conditions at the site of interest and requires multiple concentration sensors to cover the site under
different wind directions.
pyELQ data interpretation
The results from pyELQ come with uncertainty ranges that are representative of probability density functions sampled
by a Markov Chain Monte Carlo method. One should take these uncertainty ranges into account when interpreting the pyELQ
output data. Remember that absence of evidence for methane emissions does not always imply evidence for absence of
methane emissions; for instance, when meteorological conditions are such that there is no sensor downwind of a methane
source during the selected monitoring period, then it will be impossible to detect, localize and quantify
this particular source.
Also, there are limitations to the forward dispersion model which is used in the analysis.
For example, the performance of the Gaussian plume dispersion model will degrade at lower wind speeds.
Therefore, careful interpretation of the data is always required.
Installing pyELQ as a package
Suppose you want to use this pyELQ package in a different project.
You can install it from PyPi through pip
pip install pyelq
.
Or you could clone the repository and install it from the source code.
After activating the environment you want to install pyELQ in, open a terminal, move to the main pyELQ folder
where pyproject.toml is located and run pip install .
, optionally you can pass the -e
flag is for editable mode.
All the main options, info and settings for the package are found in the pyproject.toml file which sits in this repo
as well.
Examples
For some examples on how to use this package please check out these Examples
Contribution
This project welcomes contributions and suggestions. If you have a suggestion that would make this better you can simply open an issue with a relevant title. Don't forget to give the project a star! Thanks again!
For more details on contributing to this repository, see the Contributing guide.
Licensing
Distributed under the Apache License Version 2.0. See the license file for more information.
Owner metadata
- Name: sede-open
- Login: sede-open
- Email:
- Kind: organization
- Description:
- Website: https://www.shell.com/about-us/contact-us.html
- Location: 2596 HR The Hague, The Netherlands
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/84848118?v=4
- Repositories: 101
- Last ynced at: 2024-04-16T02:55:58.426Z
- Profile URL: https://github.com/sede-open
GitHub Events
Total
- Create event: 13
- Release event: 7
- Issues event: 5
- Watch event: 2
- Delete event: 5
- Member event: 1
- Issue comment event: 2
- Push event: 23
- Pull request review comment event: 19
- Pull request review event: 19
- Pull request event: 12
- Fork event: 5
Last Year
- Create event: 13
- Release event: 7
- Issues event: 5
- Watch event: 2
- Delete event: 5
- Member event: 1
- Issue comment event: 2
- Push event: 23
- Pull request review comment event: 19
- Pull request review event: 19
- Pull request event: 12
- Fork event: 5
Committers metadata
Last synced: 7 days ago
Total Commits: 126
Total Committers: 9
Avg Commits per committer: 14.0
Development Distribution Score (DDS): 0.31
Commits in past year: 75
Committers in past year: 8
Avg Commits per committer in past year: 9.375
Development Distribution Score (DDS) in past year: 0.48
Name | Commits | |
---|---|---|
bvandekerkhof | b****f@s****m | 87 |
TannazHajiMohammadloo | T****o@s****m | 14 |
Matthew.Jones | M****2@s****m | 10 |
code_reformat | 7 | |
bump_version | a****n@g****m | 3 |
Jess S | 1****l | 2 |
david.randell | d****l@s****m | 1 |
Jess S | 3****g | 1 |
Rudy McIntyre | r****e@m****m | 1 |
Committer domains:
- shell.com: 4
- mirico.com: 1
- github.com: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 6
Total pull requests: 19
Average time to close issues: 3 months
Average time to close pull requests: 6 days
Total issue authors: 3
Total pull request authors: 6
Average comments per issue: 0.17
Average comments per pull request: 0.16
Merged pull request: 16
Bot issues: 0
Bot pull requests: 1
Past year issues: 6
Past year pull requests: 15
Past year average time to close issues: 3 months
Past year average time to close pull requests: 7 days
Past year issue authors: 3
Past year pull request authors: 5
Past year average comments per issue: 0.17
Past year average comments per pull request: 0.2
Past year merged pull request: 13
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- davidrandell84 (3)
- bvandekerkhof (2)
- rudymcintyre (1)
Top Pull Request Authors
- bvandekerkhof (10)
- TannazH (4)
- rudymcintyre (2)
- JessSpearing (1)
- mattj89 (1)
- whitesource-for-github-shell[bot] (1)
Top Issue Labels
- bug (1)
Top Pull Request Labels
Package metadata
- Total packages: 2
-
Total downloads:
- pypi: 696 last-month
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 18
- Total maintainers: 1
pypi.org: pyelq
Package for detection, localization and quantification code.
- Homepage: https://sede-open.github.io/pyELQ/
- Documentation: https://sede-open.github.io/pyELQ/
- Licenses: Apache-2.0
- Latest release: 1.1.1 (published 12 days ago)
- Last Synced: 2025-04-26T14:03:28.094Z (1 day ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 149 Last month
-
Rankings:
- Dependent packages count: 9.61%
- Average: 31.861%
- Dependent repos count: 54.112%
- Maintainers (1)
pypi.org: pyelq-sdk
Package for detection, localization and quantification code.
- Homepage: https://sede-open.github.io/pyELQ/
- Documentation: https://sede-open.github.io/pyELQ/
- Licenses: Apache-2.0
- Latest release: 1.0.14 (published 2 months ago)
- Last Synced: 2025-04-26T14:03:27.693Z (1 day ago)
- Versions: 16
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 547 Last month
-
Rankings:
- Dependent packages count: 9.854%
- Average: 37.44%
- Dependent repos count: 65.027%
- Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/cache v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v4 composite
- fsfe/reuse-action v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- black >=23.12.1 contributor
- isort >=5.13.2 contributor
- mkdocs-material >=9.5.7 contributor
- mkdocstrings-python >=1.8.0 contributor
- pydocstyle >=6.3.0 contributor
- pylint >=3.0.3 contributor
- pytest >=7.4.4 contributor
- pytest-cov >=4.1.0 contributor
- geojson >=3.1.0
- numpy >=1.26.2
- openmcmc >=1.0.0
- pandas >=2.1.4
- plotly >=5.18.0
- pymap3d >=3.0.1
- python ~3.11
- scikit-learn >=1.3.2
- scipy >=1.11.4
- shapely >=2.0.2
- actions/checkout v4 composite
- actions/setup-python v5 composite
- SonarSource/sonarcloud-github-action master composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/upload-artifact v4 composite
Score: 11.516598710336524