gustavdelius / mizer

This is my old mizer fork that is not actively used any more but still has lots of material in its many branches.
http://gustavdelius.github.io/mizer/
0 stars 2 forks source link

Make add_species() more user-friendly #53

Closed gustavdelius closed 6 years ago

gustavdelius commented 6 years ago

In the species_params data frame the user should only need to give those parameters that are absolutely needed and add_species() should handle the rest using sensible defaults. For example if the user does not want to give h and gamma, then add_species should calculate them. Similarly for erepro, sel_func, knife_edge_size, gear, r_max.

richardsouthwell commented 6 years ago

I should also perhaps make it so that the user chooses the total biomass of each foreground species, and the proportion of the total biomass that is taken up by the foreground species (still need to pick limits that we look at biomass between). In this case, we know the total biomass of foreground, so we can compute the total biomass of everything, and use this to pick the kappa we use.

gustavdelius commented 6 years ago

Yes, that would be preferable to the current mult parameter.

richardsouthwell commented 6 years ago

Now I'm thinking about how to clean up the add_species data input routine. It seems to me that the user will usually often know the VB parameter of the newly added species. So I am tempted to fill out k_vb for the background species, so that rbind(params@species_params, species_params) still works. Actually row presence mismatches could appear for a few parameters, so its tempting to write a routine that fills in an NA for each dataframe row that is present in species_params), but absent in params@species_params. I could actually compute a fitting k_vb for the background species using a rearranged version of (8.1) [ or perhaps that new version of (8.1) you proposed including (1-fc/f0), which I still don't understand].

richardsouthwell commented 6 years ago

To Do:

try and use the "is in columns" thing, so we can use a and b, rather then aa and bb

add secondary warning, if k_vb is missing too, like in mizerParams

clean up code

redo help example

talk to gustav about how to set h (what if ks!=0.2*h)