def transform_vector_sphericalPolar_2_cartesian(positionVectorSpherical, vector
    ):
    """Function transforming the components of a vector from a spherical-polar basis to a Cartesian basis. The input position vector must be given as [radius, polar angle, azimuthal angle], all angles specified in radians.

The origin of the Cartesian frame of reference is located at the centre of the sphere, the positive half of x-axis goes through 0 deg E, 0 deg N, the positive half of y-axis goes through 90 deg E, 0 deg N and the positive half of the z-axis goes through the North Pole equivalent."""
    import numpy as np
    [radius, theta, phi] = positionVectorSpherical
    transformationMatrix = np.array([[np.sin(theta) * np.cos(phi), np.cos(
        theta) * np.cos(phi), -np.sin(phi)], [np.sin(theta) * np.sin(phi), 
        np.cos(theta) * np.sin(phi), np.cos(phi)], [np.cos(theta), -np.sin(
        theta), 0]])
    transformed_Vector = np.dot(transformationMatrix, np.array(vector))
    return transformed_Vector
