镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

write sensitivity runs only for a site's own PFTs - #4136

Open
divine7022 wants to merge 4 commits into
PecanProject:developfrom
divine7022:sa-site-pfts
Open

divine7022 wants to merge 4 commits into
PecanProject:developfrom
divine7022:sa-site-pfts

Conversation

@divine7022

Copy link
Copy Markdown
Member

Description

run.write.configs drops design rows that move a trait of a PFT not listed in the site's <site.pft>, before the SA runs are written. If none of the site's PFTs were sampled nothing is dropped, the same rule write.ensemble.configs uses.

Motivation and Context

write.ensemble.configs() gives each site only its own PFTs' parameters, so a run moving another PFT's trait was an exact copy of the median run. The old write.sa.configs() skipped them.
In my 100 site statewide design this was 633 runs per site instead of 157

Review Time Estimate

  • Immediately
  • Within one week
  • When possible

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation.
  • My name is in the list of CITATION.cff
  • I agree that PEcAn Project may distribute my contribution under any or all of
    • the same license as the existing code,
    • and/or the BSD 3-clause license.
  • I have updated the CHANGELOG.md.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

# a site's configs only get its own PFTs' parameters (see
# write.ensemble.configs), so a run moving another PFT's trait would just
# repeat the median run
site.pfts <- intersect(as.character(unlist(settings$run$site$site.pft)), pft.names)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does SA support segmented runs? In the segmented case site.pft contains the initial PFT and others are activated in later segments using the PFT parameters passed here.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect one could make a design argument that from the run.write.configs perspective maybe site.pft should contain every PFT the site will use at any time in the run. But making it work that way would need a change in how write.config.SIPNET handles it and I'm not immediately sure how we'd mark the initially active PFT.

@infotroph

Copy link
Copy Markdown
Member

@divine7022 gentle nudge about my question above -- seems important to get right before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants