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

Initial Interface and perfect-model experiment #15

Merged
merged 10 commits into from
Nov 9, 2023
Merged

Conversation

nefrathenrici
Copy link
Member

@nefrathenrici nefrathenrici commented Aug 24, 2023

This PR implements the initial interface with ClimaAtmos.jl, EnsembleKalmanProcesses.jl, and the Caltech HPC.
This is tested by the only experiment, a moist Held-Suarez perfect-model calibration found in experiments/sphere_held_suarez_rhoe_equilmoist

Content

Folder-by-folder:
src:

  • atmos_interface.jl: contains functions to configure and run the atmos model
  • ekp_interface.jl contains functions to initialize and update EKP

docs:

  • Updated docbuilding
  • Small doc page for the moist held suarez experiment.
  • Comprehensive guide on using the pipeline

experiments:

  • job_array.sh job scheduler for the pipeline
  • initialize.sbatch Initializes the ensemble
  • model_run.sbatch Runs the atmos model for a single ensemble member
  • update.sbatch Computes the observation map and updates the EKI in the pipeline each iteration.
  • Project.toml Environment for running experiments, includes preferences for distributed simulations
  • Manifest.toml this is the bulk of the lines in the PR, needed for full reproducibility
  • folder sphere_held_suarez_rhoe_equilmoist, contains the perfect-model calibration setup on parameter equator_pole_temperature_gradient_wet. Detailed below

experiments/sphere_held_suarez_rhoe_equilmoist:

  • prior.toml: prior distribution for equator_pole_temperature_gradient_wet
  • observation_map.jl: contains function for the observation map for the perfect model calibration. Used in EKI update step
  • generate_observations.sbatch: Script for generating "truth" observations from a model run and process them using the same observation map
  • obs_mean.jld2 and obs_noise_cov.jld2 Truth and noise data generated by generate_observations.sbatch
  • ekp_config.yml: contains info for EKP such as # iterations, ensemble size, locations of truth data and prior
  • atmos_config.yml Contains ClimaAtmos model configuration, diagnostics, location of the restart file
  • day200.0.hdf5: Steady-state restart file for the experiment

test:

  • Tests for atmos model configuration
  • Tests for EKI initialization

.github:

  • Add a testing github action to run tests on push

@nefrathenrici nefrathenrici changed the title Initial code Initial Atmos Interface Aug 24, 2023
@nefrathenrici nefrathenrici changed the title Initial Atmos Interface Initial Interface Aug 24, 2023
@codecov
Copy link

codecov bot commented Sep 14, 2023

Welcome to Codecov 🎉

Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.

Thanks for integrating Codecov - We've got you covered ☂️

@nefrathenrici nefrathenrici force-pushed the ne/initial_code branch 4 times, most recently from 455b2dd to 506a1e3 Compare October 19, 2023 18:10
@nefrathenrici nefrathenrici changed the title Initial Interface Initial Interface and experiment Oct 31, 2023
@nefrathenrici nefrathenrici changed the title Initial Interface and experiment Initial Interface and perfect-model experiment Oct 31, 2023
This was linked to issues Nov 1, 2023
Copy link

@odunbar odunbar left a comment

Choose a reason for hiding this comment

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

Hey! Here are a bunch of comments on the Docs which look really good so far.

My primary comment is that you need to talk about the overall pipeline at the top (e.g. the generate_observations and job_array scripts) as this is what users actually call

My secondary comments are largely just to use snippets where possible rather than explaining so much through sentences about the snippets.

Thanks

docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Show resolved Hide resolved
docs/src/experiment_setup_guide.md Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
Copy link

@odunbar odunbar left a comment

Choose a reason for hiding this comment

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

Hi Nat - this looks much better,

  • Could you attach a final section called something like "Plotting results"
  • Add the function you call to plot the convergence, and the image that we have from our current convergence plot.

I think otherwise this is excellent for what we need. Thanks for the work in making this clear.

docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
docs/src/experiment_setup_guide.md Outdated Show resolved Hide resolved
Copy link

@odunbar odunbar left a comment

Choose a reason for hiding this comment

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

The docs and experiment output look good, also we have had many outside discussions regarding the source code.

Please add any outstanding work you have on this to a checklist in a new issue (e.g. failure handling, updating the prior.toml with constrained_gaussian constructors, etc.)

Then LGTM! Thanks for all the work, squash and merge!

@nefrathenrici nefrathenrici merged commit 41a14bf into main Nov 9, 2023
7 checks passed
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.

O3.2.4 Moist Held-Suarez Perfect-Model Calibration Update to 1.9
2 participants