reemission
A Python library and a command line interface tool for estimating CO2, CH4 and N2O emissions from water reservoirs.
https://github.com/tomjanus/reemission
Category: Emissions
Sub Category: Emission Observation and Modeling
Keywords
climate greenhouse-gas-emissions hydropower water-resources
Last synced: about 21 hours ago
JSON representation
Repository metadata
RE-emission is a collection of methods for calculating GHG emisisons from reservoirs
- Host: GitHub
- URL: https://github.com/tomjanus/reemission
- Owner: tomjanus
- License: gpl-3.0
- Created: 2021-10-30T19:45:13.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-24T12:24:45.000Z (7 months ago)
- Last Synced: 2025-04-19T10:14:27.629Z (8 days ago)
- Topics: climate, greenhouse-gas-emissions, hydropower, water-resources
- Language: Python
- Homepage: https://tomjanus.github.io/reemission/
- Size: 6.98 MB
- Stars: 6
- Watchers: 4
- Forks: 1
- Open Issues: 18
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE.txt
- Citation: CITATION.cff
- Authors: AUTHORS.rst
README.md
About The Library
Re-Emission is a Python library and a command line interface (CLI) tool for estimating CO2, CH4 and N2O emissions from reservoirs.
It calculates full life-cycle emissions as well as emission profiles over time for each of the three greenhouse gases.
🔥 Features
- Calculates CO2, CH4 and N2O emissions for a single reservoir and for batches of reservoirs.
- Two reservoir Phosphorus mass balance calculation methods in CO2 emission calculations: G-Res method and McDowell method.
- Two N2O calculation methods.
- Model parameters, and presentation of outputs are fully configurable using YAML configuration files.
- Inputs can be constructed in Python using the
Input
class or read from JSON files. - Outputs in tabular form can be presented in JSON, LaTeX and PDF formats and can be configured by changing settings in the
outputs.yaml
configuration file. - Integrates with the upstream catchment and reservoir delineation package GeoCARET (formerly HEET), whcih is currently in Beta version and undergoing development.
- Combines tabular and GIS inputs from catchment delineation with gas emission outputs and visualizes the combined data in interactive maps.
A quick demo of results from RE-Emission using input data from catchment delineation tool GeoCARET
Preliminary results of our first case study (for presentation use only), are shown in https://tomjanus.github.io/mya_emissions_map/. The case study looks into an assessment of gas emissions from existing and planned hydroelectric reservoirs in Myanmar. A snapshot of the map is presented below.
Requirements
Python Version
RE-Emission requires Python 3.10 or newer.
LaTeX Installation (Optional)
If you would like to generate output documents in a PDF format, you will need to install LaTeX. Without LaTeX, upon an attempt to compile the generated LaTeX source code to PDF, pylatex
library implemented in this software will throw pylatex.errors.CompilerError
. LaTeX source file with output results will still be created but it will not be able to get compiled to PostScript or PDF.
LaTeX installation guidelines can be found alonside the software installation guidelines in the documentation Documentation
Basic Installation
From GitHub
- Clone the repository using either:
- HTTPS
git clone https://github.com/tomjanus/reemission.git
- SSH
git clone [email protected]:tomjanus/reemission.git
- Install from source:
- for development
pip install -r requirements.txt -e .
- or as a build
pip install .
- for development
Usage
As a toolbox
For calculation of emissions for a number of reservoirs with input data in test_input.json
file and output configuration in outputs.yaml
file.
import pprint
# Import reemission utils module
import reemission.utils as utils
# Import EmissionModel class from the `model` module
from reemission.model import EmissionModel
# Import Inputs class from the `input` module
from reemission.input import Inputs
# Run a simple example input file from the /examples/ suite
input_data = Inputs.fromfile(utils.get_package_file('../../examples/simple_example/test_input.json'))
output_config = utils.get_package_file('config/outputs.yaml')
model = EmissionModel(inputs=input_data, config=output_config)
model.calculate()
pprint.pprint(model.outputs)
Jupyter Notebook Examples
Using Command Line Interface (CLI)
RE-Emission has two CLI interfaces: reemission
for performing greenhouse gas emission calculations and reemission-geocaret
for processing outputs obtained from an upstream reservoir and catchment delineation tool GeoCARET (formerly HEET) and creating input files to RE-Emission.
For more information about the usage, type in Terminal/Console:
reemission --help
and
reemission-geocaret --help
For more examples, please refer to the Documentation
📚 Documentation
The software documentation can be accessed here
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repository and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Citing
If you use RE-Emission for academic research, please cite the library using the following BibTeX entry.
@misc{reemission2022,
author = {Tomasz Janus, Christopher Barry, Jaise Kuriakose},
title = {RE-Emission: Python tool for calculating greenhouse gas emissions from man-made reservoirs},
year = {2022},
url = {https://github.com/tomjanus/reemission},
}
📬 Contact
- Tomasz Janus - mailto:[email protected] , mailto:[email protected]
- Christopher Barry - mailto:[email protected]
- Jaise Kuriakose - mailto:[email protected]
Project Link: https://github.com/tomjanus/reemission
Acknowledgments
Institutions
Development of this software was funded, to a large degree, by the University of Manchester and the FutureDams project.
Resources
- Best README Template
- Choose an Open Source License
- Img Shields
- GitHub Pages
- Cookiecutter template for a Python library
- Cookiecutter template for a Python package
References
[1] Marco Aurelio dos Santos, Luiz Pinguelli Rosa, Bohdan Sikar, Elizabeth Sikar, Ednaldo Oliveira dos Santos. (2006). Gross greenhouse gas fluxes from hydro-power reservoir compared to thermo-power plants. Energy Policy, Volume 34, Issue 4, pp. 481-488, ISSN 0301-421. https://doi.org/10.1016/j.enpol.2004.06.015
[2]
Beaulieu, J. J., Tank, J. L., Hamilton, S. K., Wollheim, W. M., Hall, R. O., Mulholland, P. J., Dahm, C. N. (2011). Nitrous oxide emission from denitrification in stream and river networks. Proceedings of the National Academy of Sciences of the United States of America, 108(1),
214–219. https://doi.org/10.1073/pnas.1011464108
[3]
Scherer, Laura and Pfister, Stephan (2016) Hydropower's Biogenic Carbon Footprint. PLOS ONE, Volume 9, 1-11, https://doi.org/10.1371/journal.pone.0161947.
[4]
Yves T. Prairie, Sara Mercier-Blais, John A. Harrison, Cynthia Soued, Paul del Giorgio, Atle Harby, Jukka Alm, Vincent Chanudet, Roy Nahas (2021) A new modelling framework to assess biogenic GHG emissions from reservoirs: The G-res tool. Environmental Modelling & Software, Volume 143, 105-117, ISSN 1364-8152, https://doi.org/10.1016/j.envsoft.2021.105117.
[5] Prairie YT, Alm J, Harby A, Mercier-Blais S, Nahas R. 2017. The GHG Reservoir Tool (G-res) Technical documentation. Updated version 3.0 (2021-10-27). UNESCO/IHA research
project on the GHG status of freshwater reservoirs. Joint publication of the UNESCO Chair in Global Environmental Change and the International Hydropower Association. 73 pages.
Contributors ✨
This project follows the all-contributors specification. Contributions of any kind welcome!
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." title: "RE-Emission: Python tool for estimation of greenhouse gas emissions from reservoirs" authors: - family-names: Janus given-names: Tomasz - family-names: Barry given-names: Christopher - family-names: Kuriakose given-names: Jaise version: 0.0.1 date-released: "2022-05-20" license: GPL-3.0 repository-code: "https://github.com/tomjanus/reemission" doi:
Owner metadata
- Name: Tomek Janus
- Login: tomjanus
- Email:
- Kind: user
- Description: Jack of all trades, master of none. water, chemical and control engineer with interest in programming, simulation, optimization, control and identification.
- Website:
- Location: United Kingdom
- Twitter:
- Company: University of Manchester, De Montfort University
- Icon url: https://avatars.githubusercontent.com/u/8837107?u=5eecc65ed3b510230285eeb948f823bbd8b884ea&v=4
- Repositories: 1
- Last ynced at: 2023-03-04T17:23:50.173Z
- Profile URL: https://github.com/tomjanus
GitHub Events
Total
- Watch event: 2
Last Year
- Watch event: 2
Committers metadata
Last synced: 5 days ago
Total Commits: 358
Total Committers: 2
Avg Commits per committer: 179.0
Development Distribution Score (DDS): 0.006
Commits in past year: 61
Committers in past year: 1
Avg Commits per committer in past year: 61.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
tjanus | t****s@g****m | 356 |
jojo0094 | a****4@g****m | 2 |
Committer domains:
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 48
Total pull requests: 3
Average time to close issues: 5 months
Average time to close pull requests: 1 minute
Total issue authors: 2
Total pull request authors: 1
Average comments per issue: 0.71
Average comments per pull request: 0.0
Merged pull request: 3
Bot issues: 0
Bot pull requests: 0
Past year issues: 6
Past year pull requests: 0
Past year average time to close issues: about 4 hours
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 0.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- tomjanus (47)
- XINGXING-ZHANG (1)
Top Pull Request Authors
- tomjanus (3)
Top Issue Labels
- enhancement (22)
- bug (9)
- methodology (5)
- documentation (5)
- good first issue (4)
- urgent (4)
- testing (3)
- help wanted (2)
Top Pull Request Labels
Dependencies
- pip >=19.1.1
- setuptools >=18.0.1
- six >=1.14.0
- tox *
- virtualenv >=16.6.0
- sphinx >=1.3
- sphinx-rtd-theme *
- PyYAML *
- click *
- coverage *
- gdown *
- matplotlib *
- notebook *
- numpy *
- openpyxl *
- pandas *
- pyfiglet *
- pylatex *
- pytest *
- pyyaml *
- quantities *
- unittest *
Score: 3.871201010907891