shape.RmdMomocs2 shape manipulation functions come in two different flavours, those which:
coo_: eg coo_center and coo_sample,get_: eg get_centsize and get_area,We could add morphometrics operation in the second category fo shape descriptors, but we will not.
If you want an exhaustive list you can :
coo_ and then press <tab> and let autocompletion do its jobEach coo_ function, is actually a method, that is a function that will do a different job depending on the class it is pass with. That mechanism is what allows the following to work:
coo_center(bot) # a mom_tbl coo_center(bot$coo) # a coo_list coo_center(bot$coo[[1]]) # a coo_single
Besides arguments that a particular coo_, eg coo_trans may have, these three methods apply seamlessly using the same grammar.
Typically, code is defined for the coo_single method; for coo_list it is applied using purrr::map; for mom_tbl it is slightly more subtle. Indeed, all coo_* methods on mom_tbl also have from_col and to_col arguments. This allows to work using different columns and creating columns with the name you want. By default, coo is used for both from_col and to_col so this:
coo_center(bot)
is actually a shortcut for:
coo_center(bot, from_col=coo, to_col=coo)
This is useless if you have a single column with coordinates named coo and if you want the new coo to be the centered (or anything-ed) version of it. Which is typically the behaviour you want. But this will greatly simplify more complex manipulations.
purrr::map*
coo_tbl and to specify from and to columns, using tidyevaluation