if you have lat/long, you also need altitude of both.
if you have Cartesians G for the ground station and S for the satellite, create the vectors $\vec z=0 \to G$, and $\vec s=G \to S$
$\vec z$ is the zenith (going straight up) at the ground station.
find the "zenith angle" of the satellite, by finding the angle beetween the vectors $\epsilon=acos\left(\frac{\vec z \cdot \vec s}{|\vec g|*|\vec s|}\right)$
the elevation angle is $90-\epsilon$
Edited to Add:
As uhoh points out, the above gives the astronomic zenith and elevation angles but the local zenith (well, nadir actually) doesn't necessarily go through Earth's centre of mass.
To obtain the geodetic zenith angle I think you substitute in the ground station latitude and longitude: $\epsilon=acos\left(\frac{\vec s_xcos(lat)cos(long)+\vec s_ycos(lat)sin(long)+\vec s_zsin(lat)}{\left\vert\vec g\right\vert\times\left\vert\vec s\right\vert}\right)$
but take that with a pinch of salt, If it doesn't produce very similar results to the above I've made a mistake.
.altaz()
method and as I've used it here and here and here. For the math, there may or may not be an answer here already, I'm not sure, but it might be worth a search here. $\endgroup$