maxcovr
maxcovr copied to clipboard
Appropriately handle `lat` and `long` columns and add flexibility
At the moment maxcovr assumes that all columns with latitude and longitude information are named lat and long.
This is not ideal, as it throws a cryptic error message when these are not given the appropriate names.
There should be three steps in refactoring:
-
Add a
stopfunction that stops the analysis if things are not namedlatandlong. This can then be used in each function that uses that info. -
Allow the user to specify their own
latandlongarguments -
Cleverly detect different variations on
latandlongasleafletdoes and display a nice message
I've got this kind of thing in dodgr with an internal dodgr_graph_cols function, which relies on a whole bunch of helper functions here. It's kinda messy, but works really well at auto-identifying standard columns based on unknown and variable input names. The idea is to return a list so everything else then works like this:
cols <- dodgr_graph_cols (graph)
lon <- my_input [[cols$lon]]
... or whatever. Point is, it's robust and flexible: Write a function to auto-identify the columns you need; return those as list items; then use code like the above to extract when needed.
OK that is rather neat!
Am I correct in that we are looking for something like this to identify say x and y cols:
- https://github.com/ATFutures/dodgr/blob/master/R/graph-functions-misc.R#L84 and
- https://github.com/ATFutures/dodgr/blob/master/R/graph-functions.R#L43
yeah, the details are all pretty easy. The difficult and important thing was figuring out that the get_columns function should return a list. From that point on, it's all easy