I have created an online analytics application that calculates the rise/set azimuths of the Sun and Moon at various times in their calendrical cycle (which for the Sun takes one year, and for the Moon takes on average 18.6 years), along with the rise/set azimuths of all bright stars. The application allows the user to select on the latitude of the site of interest, and also the date it was built (from 5000 BCE to 2000 CE). It also allows the user to correct for the elevation angle of the horizon… particularly in hilly terrain, this can change the rise/set azimuth of celestial bodies significantly. The application uses the Python pyephem package to calculate the rise/set azimuths, and the azimuths are corrected for refraction.
The application can be found at https://archaeoastronomy.shinyapps.io/rise_set_full_range/
An application with a more restricted range in latitude to latitudes in the Northern Hemisphere, which can be a bit easier to use for fine latitude adjustment for locations in that hemisphere can be found at https://archaeoastronomy.shinyapps.io/rise_set_restricted_range/
Note that “sunrise” and “moonrise” are calculated for the top of the disk hitting the horizon. The Sun and the Moon each subtend approximately half a degree of arc, so to obtain the rise azimuth angle for the entire disk to just be visible, add 0.5 degrees to the elevation angle of the horizon in the application.