Lookup tables

class rtctools.optimization.optimization_problem.LookupTable

Bases: object

Lookup table.

__call__(self, *args)

Evaluate the lookup table.

Parameters:args (Float, iterable of floats, or Timeseries) – Input values.
Returns:Lookup table evaluated at input values.

Example use:

y = lookup_table(1.0)
[y1, y2] = lookup_table([1.0, 2.0])
class rtctools.optimization.csv_lookup_table_mixin.CSVLookupTableMixin

Bases: rtctools.optimization.optimization_problem.OptimizationProblem

Adds lookup tables to your optimization problem.

During preprocessing, the CSV files located inside the lookup_tables subfolder are read. In every CSV file, the first column contains the output of the lookup table. Subsequent columns contain the input variables.

Cubic B-Splines are used to turn the data points into continuous lookup tables.

Optionally, a file curvefit_options.ini may be included inside the lookup_tables folder. This file contains, grouped per lookup table, the following options:

  • monotonicity:
    • is an integer, magnitude is ignored
    • if positive, causes spline to be monotonically increasing
    • if negative, causes spline to be monotonically decreasing
    • if 0, leaves spline monotonicity unconstrained
  • curvature:
    • is an integer, magnitude is ignored
    • if positive, causes spline curvature to be positive (convex)
    • if negative, causes spline curvature to be negative (concave)
    • if 0, leaves spline curvature unconstrained


Currently only one-dimensional lookup tables are fully supported. Support for two-dimensional lookup tables is experimental.

  • csv_delimiter – Column delimiter used in CSV files. Default is ,.
  • csv_lookup_table_debug – Whether to generate plots of the spline fits. Default is false.
  • csv_lookup_table_debug_points – Number of evaluation points for plots. Default is 100.