# pointpats.random.normal

pointpats.random.normal(hull, center=None, cov=None, size=None, rng=None)

  Simulate a multivariate random normal point cluster

  Parameters:
    hull A geometry-like object

      This encodes the “space” in which to simulate the normal pattern. All points will lie within this hull. Supported values are: - a bounding box encoded in a numpy array as numpy.array([xmin, ymin, xmax, ymax]) - an (N,2) array of points for which the bounding box will be computed & used - a shapely polygon/multipolygon - a scipy convexh hull

    center iterable of shape (2, )

      A point where the simulations will be centered.

    cov float or a numpy array of shape (2,2)

      either the standard deviation of an independent and identically distributed normal distribution, or a 2 by 2 covariance matrix expressing the covariance of the x and y for the distribution. Default is half of the width or height of the hull’s bounding box, whichever is larger.

    size tuple or int

      a tuple of (n_observations, n_replications), where the first number is the number of points to simulate in each replication and the second number is the number of total replications. So, (10, 4) indicates 10 points, 4 times. If an integer is provided, n_replications is assumed to be 1.

    rng int, numpy.random.Generator, or None, optional

      A source of randomness. This can be:

      - A numpy.random.Generator instance (recommended)

      - An int seed, used to initialize a new Generator

      - None (default), which uses a new numpy.random.default_rng() instance

      This interface follows Scientific Python SPEC 7, ensuring consistent and reproducible random number generation across libraries.

  Returns:
    : numpy.ndarray
    either an (n_replications, n_observations, 2) or (n_observations,2) array containing
    the simulated realizations.