Azimuth from equatorial coordinates calculator
This azimuth from equatorial coordinates calculator converts an object's declination and local hour angle into the horizontal direction seen by an observer at a specified latitude.
Run — free
It applies the astronomical spherical triangle directly and reports azimuth in degrees clockwise from true north. The convention is explicit: hour angle is positive westward, east is 90 degrees, south is 180 degrees, and west is 270 degrees. Use it for telescope pointing, observation planning, coordinate checks, or teaching transformations between equatorial and horizontal coordinate systems.
Provide the three angles with the correct conventions
Enter the object's declination, its local hour angle, and the observer's latitude in decimal degrees. Declination locates the object north or south of the celestial equator and must remain between -90 and +90 degrees. Latitude locates the observer north or south of Earth's equator and has the same permitted range. Local hour angle describes how far the object has rotated from the local meridian. In this calculator, positive hour angles are westward: an object that crossed the meridian earlier generally has a positive hour angle, while an object still rising toward the meridian generally has a negative one. Hour angle may be supplied outside a single 360-degree turn because sine and cosine naturally normalize it. If your source gives hour angle in hours, multiply by 15 before entering it, since 24 hours corresponds to 360 degrees. The result uses the navigation-friendly azimuth convention of zero at true north, increasing clockwise through east, south, and west.
Understand the spherical-triangle calculation
Equatorial and horizontal coordinates describe the same direction using different reference frames. The conversion forms a spherical triangle between the celestial pole, the zenith, and the object. Rather than using a tangent expression that becomes numerically awkward near a celestial pole, the calculator resolves the object's horizontal projection into east and north components. The east component is minus cosine of declination times sine of hour angle. The north component combines declination, latitude, and the cosine of hour angle. Applying the two-argument arctangent to those components preserves the correct quadrant, which is essential because an ordinary one-argument arctangent cannot distinguish directions separated by 180 degrees. The computed angle is then normalized into the interval from zero up to, but not including, 360 degrees and rounded to a stable precision. When the object is exactly at the zenith or nadir, its horizontal projection has no direction, so azimuth is physically undefined and the calculator returns an input error instead of inventing a bearing.
Interpret and verify the reported azimuth
Read the output as a compass bearing from true north: values near 0 degrees point north, 90 degrees points east, 180 degrees points south, and 270 degrees points west. This is a geometric direction for the supplied instant, not a complete apparent-place or mount-control solution. The calculator assumes that declination and local hour angle are already appropriate for the time and reference frame you intend to use. It does not derive hour angle from right ascension and sidereal time, correct coordinates for precession or nutation, model atmospheric refraction near the horizon, account for polar motion, or convert true north to magnetic north. Those effects can matter in precision observation and should be applied in the correct stage of a larger pipeline. A useful check is the meridian case: with hour angle zero, an object is due north or due south unless it coincides with the zenith or nadir. For automated use, each API request costs $0.002, and identical numeric inputs always produce identical output.
What you can do with it
Plan a telescope pointing direction
Convert prepared equatorial coordinates and local hour angle into the azimuth required for an observing plan.
Check coordinate-conversion software
Use deterministic results as reference cases when testing an astronomy application or mount-control pipeline.
Teach the astronomical triangle
Demonstrate how declination, hour angle, and observer latitude determine a direction around the horizon.
FAQ
From which direction is azimuth measured?
Azimuth is measured clockwise from true north: east is 90 degrees, south is 180 degrees, and west is 270 degrees.
Which sign convention does hour angle use?
Hour angle is positive westward. A negative value places the object east of the local meridian under this convention.
Can I enter hour angle in hours?
Convert it to degrees first by multiplying hours by 15. The hour_angle_deg input always expects decimal degrees.
Why can azimuth be undefined?
At the exact zenith or nadir there is no unique horizontal direction, so every azimuth bearing is geometrically ambiguous.
Does the calculation include atmospheric refraction?
No. It is a geometric spherical-coordinate conversion and does not model refraction, precession, nutation, or polar motion.
What does an API calculation cost?
Each API request costs $0.002.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/astro/azimuth-equatorial \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"declination_deg":20,"hour_angle_deg":45,"latitude_deg":52}'const res = await fetch("https://api.kit.forhosting.com/astro/azimuth-equatorial", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"declination_deg": 20,
"hour_angle_deg": 45,
"latitude_deg": 52
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/azimuth-equatorial",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"declination_deg": 20,
"hour_angle_deg": 45,
"latitude_deg": 52
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/azimuth-equatorial", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"declination_deg":20,"hour_angle_deg":45,"latitude_deg":52}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"declination_deg":20,"hour_angle_deg":45,"latitude_deg":52}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/azimuth-equatorial", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"declination_deg": 20,
"hour_angle_deg": 45,
"latitude_deg": 52
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.azimuth_equatorial",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |