-
Notifications
You must be signed in to change notification settings - Fork 125
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
Several redundant functions for fitting exceedance freq to return periods #904
Comments
We can adapt the |
There is also a reason for having two methods. One is just an ordering of the values with a linear interpolation between these values |
I personally find the return period calculations rather obscure to the user, so I would welcome improvements. Personally, in addition to the above points, I would consider three options and leave it to the user to specify which one (with a good default of course):
In my view the default should probably be (1) or (3). In addition, I would suggest the following:
Some of these points we've implemented on our end already, so if you undertake a PR, happy to contribute. |
(Just to be clear: when I write three options I mean as an input parameter to the function(s) rather than separate functions at the top-level code API - which doesn't prevent the options to be split into individual private functions) |
Is your feature request related to a problem? Please describe.
There are several functions that do the same computation (fitting the relation between exceedance frequency and return periods) but in different interpolation ways. They might be worth to combine. The ones I can find now are:
Impact.calc_freq_curve
impact exceedance frequency curve (aggregated over centroids)
method: np.interp(freq_cum, imp)
Impact.local_exceedance_imp
usingloc_return_imp
using_cen_return_imp
impact exceedance frequency per centroid for several return periods
method: np.polyfit( np.log(freq_cum), imp, deg = 1)
Hazard.local_exceedance_inten
using_loc_return_inten
using_cen_return_inten
hazard exceedance frequency per centroid for several return periods
method: np.polyfit( np.log(freq_cum), haz, deg = 1)
Hazard.local_return_period
using_loc_return_period
return period per centroid for several threshold intensities
method: np.searchsorted() (i.e. fitting a step function between haz and freq_cum)
Describe the solution you'd like
We could write one or two flexible functions that do the computation for all above cases, and maybe some wrapper functions.
Describe alternatives you've considered
None
Additional context
related to issue #209
The text was updated successfully, but these errors were encountered: