Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to easily perturb forcings #77

Open
arbennett opened this issue Feb 11, 2020 · 0 comments
Open

Add ability to easily perturb forcings #77

arbennett opened this issue Feb 11, 2020 · 0 comments

Comments

@arbennett
Copy link
Member

arbennett commented Feb 11, 2020

It would be useful to be able to perform sensitivity analysis on forcing data. Currently this is not implemented, but could be added with some helper methods on the Ensemble class or ensemble module. To accomplish this we would need to:

  1. Standardize the way that forcings are perturbed - I propose we should enforce use of xarray here for predictability.
  2. Standardize naming of perturbations.
  3. Update the force file list to include the standardized naming of forcing perturbations.
  4. Update the file manager to point to any changes to the forcing file list name.
  5. Ensure interop with other types of ensembles. It should be possible to create larger sets of ensembles with forcing perturbations, parameter perturbations, and decision sets without going deep into the internals of the Ensemble configuration.

I have been running some of these types of runs in an ad hoc manner by writing multiple file managers and forcing file lists with some shell scripts then using the following lines to set up the ensembles:

dT_list = ['-4.0K', '+0.0K', '+4.0K']
config_perturbed = {
    '{}K_perturb'.format(dT): 
        {'file_manager': './file_manager_{}K.txt'.format(dT),
         'decisions': {'snowLayers': 'jrdn1991'},
         'parameters': {'windReductionParam': 0.90} 
    for dT in dT_list}

executable = 'summa.exe'
ens_dT = ps.Ensemble(executable, config_perturbed, num_workers=len(config_perturbed))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant