grid2sphere#

diffsims.utils.atomic_diffraction_generator_utils.grid2sphere(arr, x, dx, C)[source]#

Projects 3d array onto a sphere

Parameters:
  • arr (np.ndarray [float], (nx, ny, nz)) – Input function to be projected

  • x (list [np.ndarray [float]], of shapes [(nx,), (ny,), (nz,)]) – Vectors defining mesh of <arr>

  • dx (list [np.ndarray [float]], of shapes [(3,), (3,), (3,)]) – Basis in which to orient sphere. Centre of sphere will be at C*dx[2] and mesh of output array will be defined by the first two vectors

  • C (float) – Radius of sphere

Returns:

out – If y is the point on the line between i*dx[0]+j*dx[1] and C*dx[2] which also lies on the sphere of radius C from C*dx[2] then: out[i,j] = arr(y). Interpolation on arr is linear.

Return type:

np.ndarray [float], (nx, ny)