-
Notifications
You must be signed in to change notification settings - Fork 8
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 UKI to AIDA ice nucleation calibrations #460
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #460 +/- ##
=======================================
Coverage 96.98% 96.98%
=======================================
Files 41 41
Lines 1559 1559
=======================================
Hits 1512 1512
Misses 47 47
|
When loss function is total evolution of ICNC, perfect model does well and passes unit tests. When loss function is catered to end of the simulation, the final ICNC matches better in AIDA calibrations, however, perfect model unit tests are prone to failing. |
3ddf380
to
98bdc5a
Compare
@@ -133,7 +133,7 @@ function perf_model_pseudo_data(FT, IN_mode, params, IC) | |||
G_truth = run_model(params, coeff_true, IN_mode, FT, IC) | |||
dim_output = length(G_truth) | |||
|
|||
Γ = 0.03 * LinearAlgebra.I * (maximum(G_truth) - minimum(G_truth)) | |||
Γ = 0.001 * LinearAlgebra.I * (maximum(G_truth) - minimum(G_truth)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do we obtain this number?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to ask AIDA people what the noise in their data is. I am using an arbitrary number here for now
FT, | ||
IN_mode, | ||
params, | ||
IC, | ||
y_truth, | ||
y_truth[end-25:end], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be good not to hard code 25 as the number but instead have some top level parameter that defines the window we average over at the end of the simulation. And then based on that compute the index value of the cutoff
@@ -100,7 +102,8 @@ function run_model(p, coefficients, IN_mode, FT, IC) | |||
|
|||
# solve ODE | |||
local sol = run_parcel(IC, FT(0), t_max, params) | |||
return sol[9, :] ./ (IC[7] + IC[8] + IC[9]) # frozen fraction | |||
# return sol[9, end-25:end] ./ (IC[7] + IC[8] + IC[9]) # frozen fraction | |||
return sol[9,end-25:end] ./ (IC[7] + IC[8] + IC[9]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be good not to hard code 25 as the number but instead have some top level parameter that defines the window we average over at the end of the simulation. And then based on that compute the index value of the cutoff
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will open as an issue if the other AIDA data are shorter than 100 timesteps long. Otherwise, I will have it as a variable called end_sim
for now if that's fine
So the I'm fine with increasing the relative tolerance for the calibration test as needed. Especially since it seems that it just doesn't matted for the loss function. - The final number concentration is ok. I would vote to
|
1716fe7
to
0b91107
Compare
Seems like EKP wasn't up-to-date only in |
27b630a
to
95b1709
Compare
Purpose
Add UKI calibration so we can compare to the EKI results and also have some error metrics.
To-do
Content