Pipeline Walkthrough
Purpose
FEMIC compiles forest-estate model inputs from BC inventory and growth/yield tools.
The working pipeline keeps legacy scientific logic but exposes repeatable runtime
interfaces through femic CLI commands.
End-to-End Flow
Run from your active instance root (maintainers can use
instances/reference/):
cd instances/reference
For deterministic orchestration using the new rebuild runner abstraction, use:
femic instance rebuild --run-config config/run_profile.<case>.yaml --run-id <id>
For fresh-clone source-checkout runs, bootstrap dependencies and annex payloads first:
python -m pip install -r requirements-dev.txt
git submodule update --init --recursive
git -C external/femic-public-data annex enableremote arbutus-s3
datalad get -r external/femic-public-data/data
export FEMIC_EXTERNAL_DATA_ROOT=$PWD/external/femic-public-data/data
Run upstream compilation:
femic run --run-config config/run_profile.<case>.yaml
Let FEMIC launch unattended BTC using generated
03_input-*.csv.FEMIC captures
04_output-*.csv/04_error-*.csvback intodata/.Run downstream post-TIPSY stages:
femic tsa btc-post-tipsy --run-config config/run_profile.<case>.yaml --tsa <code> -v
The command group and flag still use the legacy
tsanaming seam for compatibility. Read them generically as the selected FMU/code target.
For the known-good K3Z Windows path from the parent FEMIC checkout, the practical boundary is:
$env:FEMIC_EXTERNAL_DATA_ROOT="$PWD\external\femic-public-data\data"
python -m femic run --instance-root external/femic-k3z-instance --run-config config/run_profile.k3z.yaml --run-id k3z_windows_cleanstart
python -m femic tsa btc-post-tipsy --instance-root external/femic-k3z-instance --run-config config/run_profile.k3z.yaml --tsa k3z --run-id k3z_windows_cleanstart
Tracked downstream economics extraction is now available too:
python -m femic fansier run-and-parse "<regime.rgm>" --discount-name "FEMIC Raw 0%" --report-type txt --run-id fansier_smoke
Export planning-system packages:
femic export patchworks --tsa <code> femic export woodstock --tsa <code> femic export dual --tsa <code> --with-ws3-smoke --ws3-command "<ws3 smoke command>"
The export flag remains
--tsafor compatibility, but it should be read generically as the selected FMU/code target.
For Patchworks runtime launch, prefer the registry-backed operator surfaces
(run-variant, run-scenario, run-scenario-set) over raw .pin
paths when you are using shipped or user-registered FEMIC variants.
Stage Boundaries
Stage 00 (data prep): ingest/filter inventory, derive strata inputs, compile stand attributes and checkpoints.
Stage 01a (per FMU/code target): build strata/AUs, run VDYP, smooth curves, generate canonical BTC
MSYT.csvinput tables.Stage 01b (post-TIPSY): parse returned BTC/TIPSY outputs, compare against VDYP, publish bundle tables and diagnostics.
For TSR-style named pipelines, the AFLB/CMFLB resultant checkpoint is the
yield-ready model universe. The THLB checkpoint is a managed-area state surface
assigned to those resultant fragments, not a separate stand table. The
complement NTHLB = AFLB - THLB remains inside the model as
unmanaged/full-retention forest and still requires an untreated growth curve.
Do not start Patchworks bundle/export work from THLB area alone unless a
case-specific roadmap explicitly narrows the model universe.
Key Assumptions
Inventory and growth model inputs are local and version-controlled by path, not fetched dynamically at runtime.
BTC is the default unattended Windows BatchTIPSY seam.
FAN$IER is now a tracked downstream Windows batch-extraction seam through FEMIC-owned runtime and parsing commands.
03_input-*.csvis the canonical BTC/BatchTIPSY handoff input; XLSX companions are readability aids generated from the same payload.AFLB/CMFLB resultant fragments outside THLB remain in the model as retained unmanaged area; THLB is treatment eligibility, not the complete growth universe.
Legacy
02_input-*.dat/04_output-*.outremain compatibility artifacts only.Diagnostic plots are required QA artifacts, not optional cosmetics.
Operator Interpretation Callouts
strata-*.pngshould show interpretable abundance and SI distributions before curve fitting is trusted.vdyp_fitdiag_*.pngshould track binned medians; large early-age spikes or inverted SI ordering are red flags.AU-level first-growth synthesis should default to the smoothed observed-bin PCHIP family (
smoothed_bin_pchip); treat older NLLS-oriented fits as legacy/fallback behavior rather than the default story.tipsy_vdyp_*.pngshould be coherent with intended untreated/treated story; if not, tune TIPSY config or use configured managed-curve transform mode.
Primary Sources
00_data-prep.ipynb01a_run-tsa.ipynb01b_run-tsa.ipynbplanning/femic_instance_rebuild_contract.mddocs/reference/run-config.rstdocs/reference/patchworks-export.rstdocs/guides/btc-fansier-runtime-and-extraction.rstdocs/guides/patchworks-variant-and-scenario-management.rst