Skip to content

LAI-DA for eCLM-PDAF#37

Draft
jjokella wants to merge 11 commits intotsmp-pdaf-patchedfrom
tsmp-pdaf-patched-LAI_DA
Draft

LAI-DA for eCLM-PDAF#37
jjokella wants to merge 11 commits intotsmp-pdaf-patchedfrom
tsmp-pdaf-patched-LAI_DA

Conversation

@jjokella
Copy link
Copy Markdown
Collaborator

@jjokella jjokella commented Nov 21, 2025

First implementation of LAI-DA by @lstrebel.

Testing

  • by @zhao7777
  • goal: use LAI-DA in ESMDA in https://github.com/HPSCTerrSys/TSMP_DA
  • OL parameter perturbations
    • soil hydraulic parameters perturbation + forcing perturbation (influence small)
      • spread too small: simulated LAI ensemble does not cover MODIS LAI observations (500m resolution)
    • currently: Try out perturbing Medlyn-parameters + Kmax + leaf carbon nitrogen in addition to SHP/forcing perturbation

Summary of PR: LAI Data Assimilation

This branch implements assimilation of Leaf Area Index (LAI) observations into eCLM (with BGC active).

Background

In eCLM with BGC, LAI is a diagnostic quantity derived from leaf carbon (leafc) and plant-functional-type constants for specific leaf area (slatop, dsladlai) via the Thornton & Zimmermann (2007) formula. Because LAI is not a direct model state variable, assimilation must operate on leafc (and the consistent leafn) rather than on LAI directly.

New enkfpf.par parameters

  • Parameter: CLM:update_lai
  • Section: [CLM]
  • Default: 0
  • Description: Selects the LAI DA mode (0 = off, 1 = gridcell state vector, 2 = patch-level state vector)

  • Parameter: CLM:update_lai_params
  • Section: [CLM]
  • Default: 0
  • Description: Enables joint state–parameter estimation of slatop/dsladlai (0 = off, 1 = with mode 1, 2 = with mode 2)

Mode 1 (update_lai=1): the state vector holds one gridcell-averaged LAI per grid cell. A set function aggregates per-patch LAI from leafc; after the PDAF update an inverse transformation distributes the updated LAI back to per-patch leafc/leafn.

Mode 2 (update_lai=2): the state vector holds leafc, slatop, and dsladlai for every patch (size: 3 × #patches). The mapping to observed gridcell LAI is performed inside obs_op_pdaf, using a nonlinear ensemble observation operator.

Documentation

  • docs/users_guide/running_tsmp_pdaf/input_enkfpf.md
  • docs/users_guide/running_tsmp_pdaf/lai_da.md (new)

@jjokella jjokella marked this pull request as draft November 21, 2025 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant