astro py:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- Astropy v5.2.1 »
- Models and Fitting (`astropy.modeling`) »
- Reference/API »
- Polynomial2D

# Polynomial2D

class astropy.modeling.polynomial.Polynomial2D(degree, x_domain=None, y_domain=None, x_window=None, y_window=None, n_models=None, model_set_axis=None, name=None, meta=None, **params)

  Bases: `PolynomialModel`

  2D Polynomial model.

  Represents a general polynomial of degree n:

  \[P(x,y) = c_{00} + c_{10}x + ...+ c_{n0}x^n + c_{01}y + ...+ c_{0n}y^n + c_{11}xy + c_{12}xy^2 + ... + c_{1(n-1)}xy^{n-1}+ ... + c_{(n-1)1}x^{n-1}y\]

  For explanation of `x_domain`, `y_domain`, `x_window` and `y_window` see Notes regarding usage of domain and window.

  Parameters:
    degree `python:int`

      Polynomial degree: largest sum of exponents (\(i + j\)) of variables in each monomial term of the form \(x^i y^j\). The number of terms in a 2D polynomial of degree `n` is given by binomial coefficient \(C(n + 2, 2) = (n + 2)! / (2!\,n!) = (n + 1)(n + 2) / 2\).

    x_domain `python:tuple` or `python:None`, optional

      domain of the x independent variable If None, it is set to (-1, 1)

    y_domain `python:tuple` or `python:None`, optional

      domain of the y independent variable If None, it is set to (-1, 1)

    x_window `python:tuple` or `python:None`, optional

      range of the x independent variable If None, it is set to (-1, 1) Fitters will remap the x_domain to x_window

    y_window `python:tuple` or `python:None`, optional

      range of the y independent variable If None, it is set to (-1, 1) Fitters will remap the y_domain to y_window

    **params `python:dict`

      keyword: value pairs, representing parameter_name: value

  Other Parameters:
    fixed `a` `python:dict`, optional

      A dictionary `{parameter_name: boolean}` of parameters to not be varied during fitting. True means the parameter is held fixed. Alternatively the `fixed` property of a parameter may be used.

    tied `python:dict`, optional

      A dictionary `{parameter_name: callable}` of parameters which are linked to some other parameter. The dictionary values are callables providing the linking relationship. Alternatively the `tied` property of a parameter may be used.

    bounds `python:dict`, optional

      A dictionary `{parameter_name: value}` of lower and upper bounds of parameters. Keys are parameter names. Values are a list or a tuple of length 2 giving the desired range for the parameter. Alternatively, the `min` and `max` properties of a parameter may be used.

    eqcons `python:list`, optional

      A list of functions of length `n` such that `eqcons[j](x0,*args) == 0.0` in a successfully optimized problem.

    ineqcons `python:list`, optional

      A list of functions of length `n` such that `ieqcons[j](x0,*args) >= 0.0` is a successfully optimized problem.

  Attributes Summary

  `input_units` | This property is used to indicate what units or sets of units the evaluate method expects, and returns a dictionary mapping inputs to units (or `None` if any units are accepted).
  `n_inputs` | The number of inputs.
  `n_outputs` | The number of outputs.
  `x_domain` |
  `x_window` |
  `y_domain` |
  `y_window` |

  Methods Summary

  `__call__`(*inputs[, model_set_axis, ...]) | Evaluate this model using the given input(s) and the parameter values that were specified when the model was instantiated.
  `evaluate`(x, y, *coeffs) | Evaluate the model on some input variables.
  `fit_deriv`(x, y, *params) | Computes the Vandermonde matrix.
  `invlex_coeff`(coeffs) |
  `multivariate_horner`(x, y, coeffs) | Multivariate Horner's scheme
  `prepare_inputs`(x, y, **kwargs) | This method is used in `__call__` to ensure that all the inputs to the model can be broadcast into compatible shapes (if one or both of them are input as arrays), particularly if there are more than one parameter sets.

  Attributes Documentation

  input_units
  n_inputs = 2

    The number of inputs.

  n_outputs = 1

    The number of outputs.

  x_domain
  x_window
  y_domain
  y_window

  Methods Documentation

  __call__(*inputs, model_set_axis=None, with_bounding_box=False, fill_value=nan, equivalencies=None, inputs_map=None, **new_inputs)

    Evaluate this model using the given input(s) and the parameter values that were specified when the model was instantiated.

  evaluate(x, y, *coeffs)

    Evaluate the model on some input variables.

  fit_deriv(x, y, *params)

    Computes the Vandermonde matrix.

    Parameters:
      x `ndarray`

        input

      y `ndarray`

        input

      *params

        throw-away parameter list returned by non-linear fitters

    Returns:
      result `ndarray`

        The Vandermonde matrix

  invlex_coeff(coeffs)
  multivariate_horner(x, y, coeffs)

    Multivariate Horner’s scheme

    Parameters:
      x, y `array`
      coeffs `array`

        Coefficients in inverse lexical order.

  prepare_inputs(x, y, **kwargs)

    This method is used in `__call__` to ensure that all the inputs to the model can be broadcast into compatible shapes (if one or both of them are input as arrays), particularly if there are more than one parameter sets. This also makes sure that (if applicable) the units of the input will be compatible with the evaluate method.