Set minimum monthly EIR to 1% of the max monthly EIR #380
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This changes the minimum monthly EIR value to 1% of the maximum monthly EIR, which helps conserving the original length of the season better after smoothing (only applicable to when monthly EIR values are used).
When low values or even zeros are used in the seasonality, the Fourier smoothing struggles to find a good approximation and the resulting smoothed seasonality may not match the original input values.
Many users probably have this problem without realizing their smoothed input EIR in OpenMalaria doesn't actually match their initial monthly values.
To illustrate this, you can copy-paste the following monthly EIR values into this tool: https://swisstph.github.io/openmalaria/fourier The following values will crash the simulation when using the SimpleMPD model. You can see with the tool that the Fourier series does not match the input very well.
However, adding 0.01 to the two smallest values solves the problem in most cases:
This is an arbitrary solution but it seems to work well.