# rft1d.random¶

Functions and classes for generating 1D random fields. The functions randn1d and multirandn1d are similar to the numpy.random.randn and np.random.multivariate_normal functions. If a large number of random fields are required (e.g. for RFT validations) it may be more efficient to use the Generator1D and GeneratorMulti1D classes.

## randn1d¶

Generate smooth Gaussian random fields.

Parameters:

nResponses – number of fields (int)

nodes – number of field nodes (int) OR a binary field (boolean array)

FWHM – field smoothness (float)

Returns:

A 2D numpy array with shape: (nResponses, nodes)

Examples:
```>>> y = rft1d.random.randn1d(8, 101, 15.0)
>>> y = rft1d.random.randn1d(1000, 101, 75.0, pad=True)
```

Warning

Padding is slow but necessary when 2 FWHM > nodes

## multirandn1d¶

rft1d.random.multirandn1d(nResponses, nodes, nComponents, FWHM=10.0, W=None, pad=False)

Generate smooth Gaussian multivariate random fields.

Parameters:

nResponses – number of fields (int)

nodes – number of field nodes (int) OR a binary field (boolean array)

nComponents – number of vector components (int)

FWHM – field smoothness (float)

W – covariance matrix (nComponents x nComponents array)

Returns:

A 3D numpy array with shape: (nResponses, nodes, nComponents)

Notes:
1. The default W is the identity matrix.

2. Padding is slow but necessary when 2 FWHM > nodes

Examples:
```>>> y = rft1d.random.multirandn1d(8, 101, 3, 15.0)
>>> y = rft1d.random.multirandn1d(1000, 101, 5, 65.0, W=np.eye(5), pad=True)
```

## Generator1D¶

Generator of smooth Gaussian random fields.

Parameters:

nResponses – number of fields (int)

nodes – number of field nodes (int) OR a binary field (boolean array)

FWHM – field smoothness (float)

Returns:

A Generator1D object

Notes:
1. Generator1D is faster than randn1d for iteratively generating many random samples.

Examples:
```>>> g = rft1d.random.Generator1D(8, 101, 15.0)
>>> y = g.generate_sample()
```

## GeneratorMulti1D¶

class rft1d.random.GeneratorMulti1D(nResponses=1, nodes=101, nComponents=2, FWHM=10, W=None, pad=False)

Generator of smooth multivariate Gaussian random fields.

Parameters:

nResponses – number of fields (int)

nodes – number of field nodes (int) OR a binary field (boolean array)

nComponents – number of vector components (int)

FWHM – field smoothness (float)

W – covariance matrix (nComponents x nComponents array)

```>>> g = rft1d.random.GeneratorMulti1D(8, 101, 3, 15.0)