Update Sobol GSA to use sensobol package and validate ensemble design handling#2
Closed
dlebauer wants to merge 26 commits into
Closed
Update Sobol GSA to use sensobol package and validate ensemble design handling#2dlebauer wants to merge 26 commits into
dlebauer wants to merge 26 commits into
Conversation
Replace the old sensitivity-based Sobol postprocessing with sensobol and compute indices from PEcAn standardized ensemble.output.*.Rdata files instead of reconstructing responses from runs.txt and raw per-run outputs. This keeps Sobol analysis aligned with the normal PEcAn workflow and output conventions while saving reproducible Sobol design and index artifacts.
…lidate input_design$param against trait sample bank
…eter and clarify references
…cumentation for generate_joint_ensemble_design: clarify parameters and return value
…alysis and clarify analysis types
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(note: please sync target branch divine7022:develop with pecanproject/develop before review)
Description
This PR replaces the existing Sobol workflow with a
sensobol-based implementation and hardens the ensemble design path used to run global sensitivity analyses.Implementation was generated with ChatGPT based on my specifications and review.
Key changes:
A,B, andABdesigns withsensobolinput_designindicesensemble.output.*.RdataMotivation and Context
The previous Sobol path relied on implicitly splitting a PEcAn design matrix and passing it to
sensitivity::soboljansen(). This introduced implicit assumptions about design structure, run counts, and factor alignment.This PR makes the Sobol design explicit, aligns run counts with workflow execution, and standardizes postprocessing on PEcAn outputs.
Only the design construction and workflow integration are updated; no change to the original analysis intent (type-level Sobol sensitivity analysis)
Design Notes
sensitivity::soboljansen()itself, but with how PEcAn constructed and adapted its design.X1andX2, assuming this produced a valid Sobol base design. This assumption was implicit and not validated.Nand total runsN * (k + 2); this relationship was ambiguous in the previous workflow.sensobolmaps directly to PEcAn’s workflow: explicit Sobol design → PEcAn runs → standardized outputs → Sobol indices.Review Time Estimate
Types of changes
Checklist: