-
Notifications
You must be signed in to change notification settings - Fork 10
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
Compute surface albedo correctly #851
base: main
Are you sure you want to change the base?
Conversation
# α = 1/(λ_max - λ_min) * ∫_λ_min ^λ_max α(λ) dλ | ||
# We assume that the PAR and NIR bands are each exactly 50% of the incoming SW radiation | ||
# Therefore the integral reduces to: | ||
@. p.α_sfc = (f_abs_par + f_abs_nir) / 2 |
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.
This cannot be calculated like this. First, I think what you tried to do is:
@. p.α_sfc = (f_refl_par + f_refl_nir) / 2
but this is not right either. This is better:
@. p.α_sfc = SW_u / max(SW_d, eps(FT))
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.
youre right! I meant f_refl_par, etc.
For the second comment - since SW_u is proportional to SW_d, if SW_d = 0, SW_u = 0, and albedo would not be defined (as you pointed out before). Because of that, in our current main branch, we have what you suggested.
I thought this was not ok because then we would have albedo =0 at night, which would mess up our monthly/daily averages that we save as output, and which also isnt exactly physical, since albedo should be a well defined physical property, and not depend on insolation. For example, the albedo of soil is always defined, even if light is not shining on it.
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.
So, albedo at night doesn't make sense anyway. So, it definitely shouldn't be included in the calculations of monthly, daily values. A quick workaround would be to set it to NaN when SW_d = 0. But if we need a number for the calculations, we can set it to zero when SW_d is zero.
Because while we do have this general assumption that PAR and NIR are roughy half of the energy, the fraction doesn't hold like this. So, it is best to keep track of SW_u and SW_d
Also, soil albedo and leaf albedo are intrinsic properties of the material, but canopy albedo is different, because it depends on the incident angle of radiation, the proportion of direct and diffuse, canopy structure, LAI, etc. So that is why we call leaf/soil albedo, single scattering albedo.
That should be fine for the atmos coupling, because if there's no incident radiation SW 0 times 0 = 0. But for the diagnostic (daily, monthly averages), we will need to add NaNs instead. It is the same issue with the canopy temperature before. Otherwise we will have unrealistic low values of canopy albedo, driven by the zeros at night.
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.
We need to change how we calculate SW albedo.
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.
Changes to the TwoStream scheme look good and make sense to me!
Purpose
Close #845
Because this involves name changing, a lot of files changed in experiments, test.
For review, I think it is enough to focus on the changes to files in src/. @braghiere
Tagging @Espeer5 since you implemented the two stream scheme and this impacts those functions - only review as your time permits :)
To-do
Verify
Review
Content
Previously, we computed the absorbed, reflected, and transmitted fluxes in moles of photons per m^2/s in both NIR and PAR. This required:
Content:
compute_absorbances
->compute_fractional_absorbances
,plant_absorbed_pfd
->canopy_sw_rt
(shortwave radiative transfer)