# Calculating the volume of a sphere after switching to spherical coordinates?

I used the code in the second answer on this page to switch from Cartesian to Spherical coordinates and integrate a function over the sphere. I would like to use this code to calculate the volume of a sphere. However if I set $$f(x, y, z) = 1$$, I get the following output:

$$-\frac{1}{3}r^3 \varphi\cos(\theta)$$

Here is the code I used:

Needs["VectorAnalysis"]

JacobianDeterminant[Spherical[r, θ, ϕ]]

f[x_, y_, z_] := 1

Integrate[
f @@ CoordinatesToCartesian[#, Spherical @@ #] JacobianDeterminant[
Spherical @@ #] &@{r, θ, ϕ},
r, θ, ϕ]


How can I make the code return the volume of a sphere which is $$\frac{4}{3}\pi r^3$$?

Employing most of your own code;

Integrate[
f @@ CoordinatesToCartesian[#, Spherical @@ #] JacobianDeterminant[Spherical @@ #] &@{r, θ, ϕ},
{r, 0, R}, {θ, 0, π}, {ϕ, -π, π}
]


(4 π R^3)/3

That is, you just have to add the integral boundaries.

Try this

transform[f : (_Function | _Symbol), coordi_: {x, y, z}, coordf_: {r, θ, ϕ}] := Module[{rules, jdet},
rules = Thread[coordi -> CoordinateTransformData["Spherical" -> "Cartesian", "Mapping", coordf]];
jdet = CoordinateTransformData["Spherical" -> "Cartesian", "MappingJacobianDeterminant", coordf];
jdet f @@ coordi /. rules
]

f[x_, y_, z_] := 1

Integrate[transform[f], r, {θ, 0, π}, {ϕ, 0, 2 π}]

(4 π r^3)/3
`