Skip to main content

Automated whole-tree chamber workflow for oil-palm ecophysiology — QC, flux calculation, science validation.

Project description

palmwtc

Automated whole-tree chamber workflow for oil-palm ecophysiology.

PyPI Python License: MIT CI

palmwtc is the data-processing and analysis pipeline for the first automated whole-tree chamber (WTC) sized to enclose individual oil palm trees, deployed at the LIBZ field site (Riau, Indonesia) and instrumented with LI-COR LI-850 gas analyzers. It transforms raw sensor cycles into validated CO₂ and H₂O fluxes, applies multi-stage quality control, and produces inputs for the XPalm digital-twin calibration pipeline.

What it does

raw chamber cycles  ──►  QC (rules + ML + breakpoints)  ──►  flux calculation  ──►  science validation
        │                                                                                  │
        └── 30-min weather + soil + tree biophysics ──┬───────────────────────────────────►┘
                                                       └── high-confidence calibration windows

End-to-end run on the bundled synthetic sample:

pip install palmwtc
palmwtc run            # uses bundled sample if no PALMWTC_DATA_DIR set

For your own data:

export PALMWTC_DATA_DIR=/path/to/your/chamber/data
palmwtc run --skip 022 025          # mirrors the original notebook-runner CLI
palmwtc run --notebooks             # papermill mode, produces HTML reports
palmwtc dashboard                   # streamlit monitoring (requires palmwtc[dashboard])

Install

pip install palmwtc                 # core only
pip install 'palmwtc[ml]'           # + scikit-learn IsolationForest QC
pip install 'palmwtc[dashboard]'    # + streamlit monitoring app
pip install 'palmwtc[gpu]'          # + torch (Apple-Silicon MPS / CUDA)
pip install 'palmwtc[all]'          # everything

Requires Python 3.11–3.13.

Library use

from palmwtc.config import DataPaths
from palmwtc.qc import QCProcessor
from palmwtc.flux import calculate_flux_cycles

paths = DataPaths.resolve()                     # layered: CLI → env → yaml → sample
qc_result = QCProcessor(paths).run("CO2_C1")
flux = calculate_flux_cycles(qc_result.data)

Full API reference: adisapoetro.github.io/palmwtc/api/

Citation

If you use palmwtc in scientific work, please cite the Zenodo DOI for the release you used. The latest version is always available at doi.org/10.5281/zenodo.XXXXXXX (populated after the first release).

@software{adisaputro_palmwtc_2026,
  author  = {Adisaputro, Didi},
  title   = {palmwtc: Automated whole-tree chamber workflow for oil-palm ecophysiology},
  year    = {2026},
  version = {0.1.0},
  doi     = {10.5281/zenodo.XXXXXXX},
  url     = {https://github.com/adisapoetro/palmwtc},
}

See CITATION.cff for machine-readable metadata.

Background

Most ecosystem-scale flux measurements over oil-palm plantations use eddy covariance, which integrates over hectares of canopy and cannot resolve single-tree behaviour. palmwtc is built around a different instrument: an automated whole-tree chamber, sized and ventilated to enclose an individual mature oil palm, with an LI-COR LI-850 gas analyzer cycling open and closed on a programmed schedule. This is, to our knowledge, the first WTC deployment for oil palm — the WTC method was previously applied to temperate broadleaf species (Medlyn et al. 2016).

Contributing

See CONTRIBUTING.md. Bug reports and feature requests: github.com/adisapoetro/palmwtc/issues.

License

MIT — see LICENSE.

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

palmwtc-0.1.0.dev0.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

palmwtc-0.1.0.dev0-py3-none-any.whl (2.8 MB view details)

Uploaded Python 3

File details

Details for the file palmwtc-0.1.0.dev0.tar.gz.

File metadata

  • Download URL: palmwtc-0.1.0.dev0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for palmwtc-0.1.0.dev0.tar.gz
Algorithm Hash digest
SHA256 f760e9903c7e7c45ac5304e7cdc1db1f5bcc5e0dc7da1309027763ca9190a4c2
MD5 9cbc5527bd403ee60e27cd0a6952225a
BLAKE2b-256 0d1da33bf4197fc811f80bcf60d84b4dc3ad13c788dc7c693d9b0d83aac0d184

See more details on using hashes here.

File details

Details for the file palmwtc-0.1.0.dev0-py3-none-any.whl.

File metadata

  • Download URL: palmwtc-0.1.0.dev0-py3-none-any.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for palmwtc-0.1.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 987a1309418fa5153f268fdb5fe8abfbac8c21b1f42faba4639b4bb31db39489
MD5 f3c88486fe8fc57036b43fc687f7c1f9
BLAKE2b-256 d3caa34675b45ea26dd1b59724149acd89b8c1f8b139f66720a9f118ff927113

See more details on using hashes here.

Supported by

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