def __init__(self, npts=(<NUM_LIT>,<NUM_LIT:20>), zorder=<NUM_LIT:7>, op='<STR_LIT:*>', barnes_dist=<NUM_LIT>,<EOL>barnes_clip_size=<NUM_LIT:3>, local_updates=True, category='<STR_LIT>', shape=None,<EOL>float_precision=np.float64, donorm=True):
self.donorm = donorm<EOL>super(BarnesStreakLegPoly2P1D, self).__init__(npts=npts, zorder=zorder,<EOL>op=op, barnes_dist=barnes_dist, barnes_clip_size=barnes_clip_size,<EOL>local_updates=local_updates, category=category, shape=shape,<EOL>float_precision=float_precision)<EOL>
A Barnes interpolant. This one is of the form

.. math::
    I = \\left[1 + \\left(\\sum b_k(x) (o) L_k(y)\\right)\\right]  (1 + z q(z)) + c

where b_k are independent barnes interpolants and L_k are legendre
polynomials. q is a polynomial strictly in z. Additionally, the
operation (o) is settable.

Parameters
----------
shape : iterable
    size of the field in pixels, needs to be padded shape

npts : tuple of ints, optional
    Number of control points used for the Barnes interpolant b_k
    in the x-y sum. Default is (40,20)

zorder : integer
    Number of orders for the z-polynomial.

op : string
    The operation to perform between Barnes and LegPoly, '*' or '+'.

barnes_dist : float
    Fractional distance to use for the barnes interpolator

local_updates : boolean
    Whether to perform local updates on the ILM

float_precision : numpy float datatype
    One of numpy.float16, numpy.float32, numpy.float64; precision
    for precomputed arrays. Default is np.float64; make it 16 or 32
    to save memory.

donorm : Bool
    Whether or not to normalize the Barnes interpolation
    (compatibility patch). Use True, i.e. normalize the Barnes
    interpolant. Old version is False. Default is True.