# Generate gaussian random field in spherical polar coordinates

I would like to generate an isotropic gaussian random field described by a power spectrum $P(k)$ on a 3D grid which represents spherical polar coordinates (i.e., the angular separation between pixels at each slice in the radial direction is equal and each pixel represents a solid angle).

I am currently generating a random field on a cartesian grid by

• Filling a 3D grid in Fourier space $(k_x, k_y, k_z)$ with random numbers drawn from a normal distribution with standard deviation $\sigma = \frac{P(k)}{2}$ where $k = \sqrt{k_x^2 + k_y^2 + k_z^2}$
• Imposing hermitian symmetry to ensure a real field
• Fourier transforming into real space

My only thought is that I could do this process on a high resolution cartesian grid and average into spherical bins, though this seems convoluted.

Is there a more efficient way that I could generate this directly?