As pointed out by @edsmall-bodc in #23 :
Currently the user has to define many things for the OWC toolbox to run:
For the update salinity mapping, they need to define:
- Which data set they want to use from each WMO box (argo/CTD/bottle data) [though we have discussed how the WMO boxes could be phased out!]
- The float name they want to analyse
- The maximum number of historical casts they want to use during analysis
- Whether or not they would like to use potential vorticity
- Whether or not they would like to use special constraints around the subantarctic front
- The latitude and longitude scales used for decorrelation (4 values)
- The cross isobath scales (2 values)
- The age scales (2 values)
- The exclusion depth
- The age exclusion parameter
Many of these parameters have a default value, but I know operators change them regularly
That brings variables for salinity mapping to 15, which is somewhat tricky to manage in a usable way. Either we will need to group some of these variables together (into classes or dictionaries?), OR we can split the update salinity mapping routine up into separate routines that can be called?
We may want to consider a set of options (as a dictionary) used throughout the package that users can set or change within context and in their script.
Most of the time, users will only need to modify a subset of the parameters.
This is a mechanism used in matplotlib (they also use files) and xarray that I implemented in http://www.github.com/euroargodev/argopy as well
It is very easy to manage and I think is rather elegant and intuitive in terms of user experience:
Optional parameters can be set 3 ways:
- at the beginning of a script, notebook:
argopy.set_options(src='erddap')
with argopy.set_options(src='erddap'):
loader = ArgoDataFetcher().profile(6902746, 34)
I love this one, because it will make very easy for users to test different parameters in a single script
- or with options when calling methods:
loader = ArgoDataFetcher(src='erddap').profile(6902746, 34)
As pointed out by @edsmall-bodc in #23 :
Currently the user has to define many things for the OWC toolbox to run:
For the update salinity mapping, they need to define:
Many of these parameters have a default value, but I know operators change them regularly
That brings variables for salinity mapping to 15, which is somewhat tricky to manage in a usable way. Either we will need to group some of these variables together (into classes or dictionaries?), OR we can split the update salinity mapping routine up into separate routines that can be called?
We may want to consider a set of options (as a dictionary) used throughout the package that users can set or change within context and in their script.
Most of the time, users will only need to modify a subset of the parameters.
This is a mechanism used in matplotlib (they also use files) and xarray that I implemented in http://www.github.com/euroargodev/argopy as well
It is very easy to manage and I think is rather elegant and intuitive in terms of user experience:
Optional parameters can be set 3 ways:
I love this one, because it will make very easy for users to test different parameters in a single script