Skip to content

Managing calibration and other software options and parameters #29

@gmaze

Description

@gmaze

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')
  • in a temporary context:
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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority-lowLow priority for next releaserefactoringimprove the design, structure, and/or implementation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions