Skip to content
Courts

Sun on the court: how we predict when it blinds you

A step-by-step look at how PlayPadel predicts the sun on every Tashkent court: NOAA astronomy, court orientation, a glare score, and a check against real venues.

Written byPlayPadel · Coach's Corner
10 min read
Sun on the court: how we predict when it blinds you
Contents

That bandeja you shanked at seven in the morning may not have been your fault. Sometimes the sun sits dead in the end of the court and fires straight into your eyes, and every overhead becomes a coin flip. That is why every court page on PlayPadel carries a "Sun on the court" block: it shows which hours are comfortable to play today and when a low sun rakes down the court. Below is an honest breakdown of exactly how it works — from the Sun's position in the sky to the final "comfortable / moderate / glare" verdict. No magic, just astronomy and geometry.

What we actually compute

The block answers a simple question: at each moment of the day, where is the Sun in the sky, and does it bother a player on this specific court? Answering it needs just two ingredients:

  • The Sun's position — two angles: which compass direction, and how high above the horizon. This is pure astronomy and depends on the date, latitude, longitude and time zone.
  • The court's geometry — which way its long axis points. A low sun down the axis blinds you; the same sun from the side does not.

Everything else follows from those two. The calculation is fully dynamic — it recomputes for today's date and the venue's real coordinates, so summer and winter look different. You can see it live on any of the courts in Tashkent.

The Sun's two angles: azimuth and elevation

The Sun's position at any instant is two numbers.

  • Azimuth — the compass bearing to the Sun: 0° is north, 90° east, 180° south, 270° west (clockwise from north).
  • Elevation — the angle above the horizon: 0° on the horizon, 90° straight overhead.
The Sun's position is two angles: azimuth (compass bearing) and elevation above the horizon
The Sun's position is two angles: azimuth (compass bearing) and elevation above the horizon

What blinds you is not "bright sun" in general but a specific combination of these two angles: the sun has to be low (small elevation) and sit in the end of the court (azimuth along the long axis). So first we need both angles, accurately.

Where the Sun is: the NOAA algorithm

To get azimuth and elevation we use the standard NOAA solar-position algorithm — the same one behind the U.S. National Oceanic and Atmospheric Administration's Solar Calculator. It is accurate to a fraction of a degree, which is far more than a "glare or not" question needs. Inputs: the date, latitude lat, longitude lng and time-zone offset. Then a chain of conversions.

Step 1. Julian Day and Julian century

The calendar date first becomes a Julian Day (JD) — a continuous day count astronomers use — and from there the number of Julian centuries since the J2000.0 epoch:

T = (JD − 2451545.0) / 36525

T is the "clock" for everything that follows: the Sun's apparent motion drifts slowly over centuries, and almost every coefficient depends on T.

Step 2. Solar declination

Declination δ is the "latitude" of the point the Sun sits directly over. It is what drives the seasons: in summer δ ≈ +23.4°, in winter ≈ −23.4°. It comes from the mean longitude L0, the mean anomaly M, the equation of center C, and the obliquity of the ecliptic ε:

λ   = the Sun's true longitude (corrected for the orbit's ellipticity)
ε   = obliquity of the ecliptic (≈ 23.44°)
δ   = arcsin( sin(ε) · sin(λ) )

Step 3. Equation of time and the hour angle

A real solar day is not exactly 24 hours — because of the orbit's tilt and ellipticity. That difference is the equation of time (EoT), which wanders between roughly −14 and +16 minutes across the year. Using it, local clock time becomes true solar time, and that becomes the hour angle ha (how far the Sun is from due-south noon; 0° is solar noon):

true_solar_time = local_minutes + EoT + 4·lng − 60·tz   (mod 1440)
ha = true_solar_time / 4 − 180        // degrees, −180…180

Step 4. Elevation and azimuth

Now some spherical trigonometry. From latitude, declination and the hour angle we get the zenith angle (and therefore elevation), then the azimuth:

cos(zenith) = sin(lat)·sin(δ) + cos(lat)·cos(δ)·cos(ha)
elevation   = 90 − zenith
azimuth     = from arccos( (sin(lat)·cos(zenith) − sin(δ)) / (cos(lat)·sin(zenith)) ),
              signed by whether ha is before or after noon

The same block of formulas also gives sunrise, solar noon and sunset — sunrise and sunset as the moment the Sun's elevation crosses −0.833° (the standard horizon allowing for refraction and the disc's visible radius), and solar noon as the Sun's highest point of the day (the meridian transit, corrected by the equation of time). All of it is pure functions with no network calls, so the block runs identically on the server and in your browser.

When the Sun is in your eyes: court geometry

Astronomy told us where the Sun is. Now: does it bother you? The court's key property is its long-axis orientation (a bearing in degrees from north: 0° is a north–south axis, 90° east–west). A padel court has two ends, and any pair faces down the axis for at least half of a rally — so both directions are dangerous: orientation and orientation + 180°.

The sun blinds you only when it is both low and lined up with a court end; from the side the same sun is fine
The sun blinds you only when it is both low and lined up with a court end; from the side the same sun is fine

Hence the rule: the sun is a problem only when both conditions hold at once — it is low AND within ±30° of an end. A high sun (overhead) does not glare even straight down the axis; a low sun off to the side is fine too. A court whose axis is close to north–south is almost ideal: the low sun rises in the east and sets in the west — i.e. it arrives from the side.

Scoring the discomfort: "low × aligned"

To turn the geometry into a single number we compute two factors between 0 and 1 and multiply them.

alignDiff   = angular distance from the azimuth to the nearest court end (0…180°)
alignFactor = max(0, 1 − alignDiff / 30°)      // 1 = straight down an end, 0 = ≥30° off
lowFactor   = max(0, 1 − elevation / 30°)       // 1 = on the horizon, 0 = above 30°
glare       = alignFactor · lowFactor           // 0…1

The product — not a sum — is the whole point: a high score happens only when it is low AND aligned at the same time. Let either factor fall to zero (the sun is high, or it has moved off to the side) and glare collapses to zero. Then three thresholds:

glare scoreVerdictWhat it means
≥ 0.45GlareLow sun straight down an end — in the eyes
≥ 0.15ModerateNear the axis, but not critical
otherwiseComfortableHigh, or off to the side
Discomfort map: the harsh zone is only the bottom-left corner, where the sun is low AND nearly down the axis
Discomfort map: the harsh zone is only the bottom-left corner, where the sun is low AND nearly down the axis

In the map above, "glare" (red) occupies only the bottom-left corner — low elevation plus a small offset from an end. The whole rest of the field is comfortable. That is exactly why most hours on a court's timeline are green: the sun is either high enough or far enough to the side.

Shade from the roof and walls

For covered and canopied courts we also draw the shade on the floor. The geometry is the same — shadow length depends on the obstacle's height and the Sun's elevation:

L = obstacle_height / tan(elevation)
  • A canopy (roof ≈ 6 m) shades from above: a high midday sun is almost entirely blocked by the roof, while a low sun ducks under the eaves and lights the floor. Shaded fraction = the shaded rectangle's area ÷ the court area (20×10 m).
  • An open court has no roof, so only the glass walls cast shade — thin strips along the lit edges (we cap them, because in reality such a court is mostly in sun).

So a venue with mixed courts, like Padel.uz — Humo Arena, gets a separate diagram per type: covered and open courts behave differently in the sun, and you can see that at a glance when booking.

A check against real courts

The best test of the model is real Tashkent venues. Take two courts on the same summer morning.

Two real courts on the same day: orientation decides whether the sun is in your eyes
Two real courts on the same day: orientation decides whether the sun is in your eyes
  • Tennis & Padel City — axis ≈ 160° (almost north–south). Today: sunrise at 04:51 with an azimuth of ≈ 58° (ENE), sunset at 20:00 with ≈ 302° (WNW) — the low sun arrives from the side. And when the azimuth does line up with the axis (≈ 162° around noon), the Sun is already at ≈ 71° elevation — far too high to blind. Result: green all day.
  • Humo Arena (open courts) — axis ≈ 58° (NE–SW). At dawn the Sun rises almost straight down the axis and sits low — hence the red "sun in eyes" window from roughly 05:01 to 05:51.

One city, one day — the only difference is orientation. That is not a bug, it is physics: a court that faces the sunrise catches the low sun in its end.

And in winter?

The calculation is tied to the date, so the season changes everything. The same Tennis & Padel City on 21 December: the Sun tracks low and further south, and around 11:05 it sits in the end (azimuth ≈ 161°) at only ≈ 23° elevation — that is now moderate (a couple of amber hours), though it never reaches "glare". So the green summer timeline looks different in December — open the court page in the cold season and compare.

How to use it when booking

The real value of the block is practical. Before you play:

  1. Open the venue page under courts and find the "Sun on the court" block.
  2. Read the timeline: green hours are comfortable, amber tolerable, red is sun-in-eyes. Drag the handle to your booking time and check.
  3. At a mixed venue, check the court numbers: the block shows which courts (by number) are covered and which are open. If you want shade during a red hour, take a covered court.
  4. If you do play into the sun, make it tactical: you are not the only one at a disadvantage — so is the pair facing the sun. For how to exploit that, see our breakdown of court positioning.

Good sunglasses and a cap help too — you can find some in the shops. And if you want to dig deeper into your game, drop in on the PlayPadel coaches or the upcoming tournaments.

Frequently Asked Questions

Does the calculation depend on the time of year?

Yes, completely. The Sun's position is computed for today's date and the court's real coordinates, so summer and winter differ: in winter the Sun is lower and further south, and "sun in eyes" windows appear where summer has none.

Does it account for both players (both ends)?

Yes. A court has two ends, and the model checks the direction to the Sun against both orientation and orientation + 180°. Whichever pair is facing the low sun, it counts as discomfort.

Why can a court be "green" all day?

If the long axis is close to north–south, the low sunrise and sunset light arrives from the side (east and west), and the Sun only lines up with the axis around noon — when it is already high. Then the two conditions for glare are never met at the same time.

Where does the court orientation come from?

A venue admin sets it — the long-axis bearing in degrees from north. We read it from the satellite geometry of the build and, where possible, double-check it on site with a compass.

How accurate is the astronomy?

The NOAA algorithm gives the Sun's position to a fraction of a degree — much finer than a "glare or not" answer needs. The discomfort threshold is deliberately soft (±30°), so a small uncertainty in court orientation barely changes the result.

Does it work for indoor courts?

A fully indoor hall gets no direct sun on the floor, so the block shows a note saying as much. For canopied and open courts we draw the roof/wall shade separately — see the shade section above.

Share
About this column
Coach's Corner

The blog's deepest column: advanced shots (bandeja, víbora), positional play, periodised training and honest gear breakdowns — grounded in the experience of Tashkent's playing coaches.

Reviews

Log in to leave a review