-
Notifications
You must be signed in to change notification settings - Fork 92
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
Make disturbance rates happen in parallel #490
Comments
Just thinking about this a bit, and adding my voice to the idea from the perspective of fire, where we can in principle have low level fires every day that wouldn't result in any mortaliy or disturbance if they were smaller than the physiological mortality, abnd vice-versa... Then if we add low level logging in too, we might end up substantially under estimating disturbance and turnover rates, i think the idea of dealing with overlap in disturbance rates should work fine. Do we assume that disturbances are non-overlapping until they are > 100% in total, or do we impose some kind of conditional probability thing? (assuming, for example, that logger might avoid forests that are currently on fire...) |
If we assume that the disturbances are uniformly distributed in space, then the fraction of ground Fj experienced jointly by both of two disturbances with area fractions F1 and F2 would simply be their multiplier, right? Fj = F1 * F2, Ftotal = Fj + (F1-Fj) + (F2-Fj) And for three different entities.. I feel like we could figure this out be drawing out a cube with overlapping fractions in the 3 dimensions, but there would be three regions where 2 types overlap, and 1 region where 3 types overlap. |
I guess we could write some algorithm for that type of logic. Would perhaps
not be trivially extensible to n dimensional disturbance types, but there's
probably code that does that on the internet somewhere though.
…On Thu, 2 May 2019, 19:26 Ryan Knox, ***@***.***> wrote:
If we assume that the disturbances are uniformly distributed in space,
then the fraction of ground Fj experienced jointly by both of two
disturbances with area fractions F1 and F2 would simply be their
multiplier, right? Fj = F1 * F2, Ftotal = Fj + (F1-Fj) + (F2-Fj) And for
three different entities.. I feel like we could figure this out be drawing
out a cube with overlapping fractions in the 3 dimensions, but there would
be three regions where 2 types overlap, and 1 region where 3 types overlap.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#490 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ADC2YQZQ7O5SCOZGAXJCFSTPTMP27ANCNFSM4G2DOZFA>
.
|
Just wanted to note here that I have some code that I think will fix this issue, in https://github.com/ckoven/fates/tree/parallel_disturbance2, basically by looping over disturbance types rather than evaluating which is the largest and executing only that. It doesn't try to deal with the joint disturbance problem though. I will try to test this over the next few days, but if anyone wants to take a look to see if it makes sense, and/or try it once I confirm that it is basically working, let me know. E.g., this could be relevant to your harvest code @sshu88. |
@ckoven I will look and try the code after your test. |
@sshu88 ok I ran the code on that branch for a couple years in a global 4x5 run as a test, and weirdly it seems to just work correctly. the key thing is that now the history variable |
1 similar comment
@sshu88 ok I ran the code on that branch for a couple years in a global 4x5 run as a test, and weirdly it seems to just work correctly. the key thing is that now the history variable |
@ckoven Thank you Charlie! Will merge your work and test with logging. |
@ckoven I tested the code and passed the same global 4x5 test (
Here the disturbance rates are modified if their sum exceeds one. But the diagnostic output |
Hi @sshu88 thanks for testing, and glad that it works with logging! I guess that, assuming everything goes well with #875 and it gets integrated, I actually might suggest that we delete the diagnostic variable |
A thing that's been on our to-do list for a while is to improve the disturbance logic so that it doesn't have to decide which is the dominant type of disturbance in a given timestep. E.g. see here: #266 (comment) and subsequent comments and also point 5 in #450 (comment) for discussion on proposed fix. Marking this as an issue here to hopefully come back to this and try to fix it soon. It seems to me like the simplest solution might be to handle the overlap and possible disturbed area > 100% problems in the subroutine disturbance_rates and then loop over disturbance types instead of picking the largest in subroutine spawn_patches?
The text was updated successfully, but these errors were encountered: