Skip to main content

A python interface for machine-learning driven methane flux gapfilling.

Project description

methane-gapfill-ml

Python codebase for our manuscript "Gap-filling eddy covariance methane fluxes: Comparison of machine learning model predictions and uncertainties at FLUXNET-CH4 wetlands".

This codebase implements the following features:

  • Data preprocessing
  • Model training
  • Model testing
  • Uncertainty estimation, calibration/sharpness, and post-processing calibration
  • Gap-filling a dataset with a trained model

Jupyter Notebook Tutorial

https://github.com/stanfordmlgroup/methane-gapfill-ml/blob/pip-package/fluxgapfill_tutorial.ipynb

Installation

pip install gapfluxfill

Usage

Prepare data in a CSV and include the following headers:

  • TIMESTAMP_END: Format YYYYMMDDHHmm (e.g. 201312060030)
  • FCH4: Methane flux in nmol m-2 s-1 All other headers will be treated as input predictors.

Create a folder called data/ and make another folder in data/ using the site ID (data/{SiteID}/). This is where all of the processed data for the site will be written.

Place the CSV in this folder and name it raw.csv, so the full path to the CSV should be data/{SiteID}/raw.csv, where {SiteID} should be replaced with the actual ID of the site.

Preprocess the data

python main.py preprocess

Train models

python main.py train

Evaluate a trained model

python main.py test

Gapfill using a trained model

python main.py gapfill

Run all steps, including data preprocessing, model training, model evaluation, and gapfilling

python main.py run_all

Run python main.py {preprocess,train,test,gapfill} --help for descriptions of all of the command-line arguments.

Example commands using the sample data in the repository:

python main.py preprocess --sites NZKop --eval_frac 0.1 --n_train 10
python main.py train --sites NZKop --models [lasso,rf] --predictors_paths predictors/meteorlogical.txt

When specifying multiple values for a parameter, you can either use a comma-separated string or list syntax like in the above command.

Contributions

This tool was developed by Jeremy Irvin, Yulun Zhou, Fred Lu, Vincent Liu, and Sharon Zhou.

License

Apache License 2.0.

Citing

If you're using this codebase, please cite:

  1. The Gapfilling Algorithm: Irvin, J., Zhou, S., McNicol, G., Lu, F., Liu, V., Fluet-Chouinard, E., ... & Jackson, R. B. (2021). Gap-filling eddy covariance methane fluxes: Comparison of machine learning model predictions and uncertainties at FLUXNET-CH4 wetlands. Agricultural and Forest Meteorology, 308, 108528.

  2. The Python-Toolkit: In text: "We used the FluxGapfill python toolkit (Version 0.2.0; Irvin, et al, 2021) to complete our work."

References

Irvin, J., Zhou, Y., Lu, F., Liu, V., Zhou, S., McNicol, G., and Liu, J. (2021). FluxGapfill: A Python Interface for Machine-learning Driven Methane Gap-filling. Version 0.2.0. Zenodo. https://doi.org/10.5281/zenodo.5515761. Accessed 2021-09-19.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fluxgapfill-0.2.1.tar.gz (27.6 kB view details)

Uploaded Source

File details

Details for the file fluxgapfill-0.2.1.tar.gz.

File metadata

  • Download URL: fluxgapfill-0.2.1.tar.gz
  • Upload date:
  • Size: 27.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for fluxgapfill-0.2.1.tar.gz
Algorithm Hash digest
SHA256 72f862d505137fda0e517b301c0d6f3349dc6d2e45ca8060c44810fefec7febd
MD5 1da73174eac150591b2d51e6a71930a0
BLAKE2b-256 dad9f23dc865b4fc86a555d4ab6591bc3c21d2c738ab849b048d6829832f9e2f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page