There are a number of things to think about first ...
- GPS satelites are not geostationary but I assume you know that and that the almanac gives you the azimuth and elevation of the satellite at a given time at your choosen coordinates.
- Your choosen area is I expect relatively small so you can assume the azimuth angle to be the same throughout the area.
- You need to be careful about how your DEM treats building edges. The rasters in you DEM will not of course fit exactly to the edges of all your buildings.You need to know how that has been treated in your DEM.
Potentially you can then use the Line Of Sight tool in ArcMap. You will need to Construct Sight Lines first. The output lines contain a field which indicates whether the two end points are visible to each other.
However, there is a problem as the Line of Sight tool expects the line endpoints (satellites in your case) to be inside the area of the DEM and of course your satelites may be hundreds of KM away so this will not work.
A quick fix would be to do some maths and place an imaginary 3D line vertice at the edge of your study area. The height and position of this vertice would be calculated from the satelite azimuth and elevation. When you have that you can construct sight lines and then run the Line Of Sight tool. Unfortunately the position of this imaginary vertice would vary depending upon where you are in your raster.
Others have worked on this before. This link is from 2005 but is useful background reading. They do not use the method I suggest but develop a more complex program using satelite orbit data etc.