Will a target be observable from the National Astronomical Observatory Rozhen (41.693° N, 24.739° E, 1750 m) on a given night — and what does the night itself look like: sunset and twilights, the Moon, the target's altitude hour by hour, and the cloud forecast over the Rhodopes.
Try: M31 · M42 · V1057 Cyg · HD 189733 · NGC 7000 · Vega · 3C 273 · ← previous night · next night → · plan a whole night with several targets →
Bands: daylight → civil → nautical → astronomical twilight → night. Dashed grey: the Moon. Dashed lines: 20° (airmass ~2.9) and 30° (airmass 2.0).
Mean cloud cover during astronomical night: 60% · what it was: ERA5 reanalysis
| local | sky | target alt | Moon alt | cloud % | low / mid / high | RH % | wind km/h | rain mm | °C | quality |
|---|---|---|---|---|---|---|---|---|---|---|
| 20:00 | civil twilight | 60° | 7 | 23 | 22 / 14 / 0 | 71 | 0.8 | 0.0 | 8.3 | unusable 0.0 |
| 21:00 | astronomical twilight | 71° | down | 49 | 8 / 17 / 38 | 73 | 0.6 | 0.0 | 7.7 | poor 0.23 |
| 22:00 | night | 81° | down | 91 | 1 / 1 / 91 | 74 | 0.8 | 0.0 | 7.8 | unusable 0.0 |
| 23:00 | night | 86° | down | 66 | 0 / 0 / 66 | 75 | 1.3 | 0.0 | 7.3 | poor 0.27 |
| 00:00 | night | 76° | down | 10 | 0 / 0 / 10 | 73 | 2.4 | 0.0 | 6.8 | good 0.89 |
| 01:00 | night | 65° | down | 9 | 0 / 0 / 9 | 71 | 3.7 | 0.0 | 6.3 | good 0.9 |
| 02:00 | night | 55° | down | 30 | 0 / 0 / 30 | 71 | 3.0 | 0.0 | 6.4 | good 0.64 |
| 03:00 | night | 45° | down | 85 | 0 / 0 / 85 | 73 | 1.3 | 0.0 | 6.1 | unusable 0.0 |
| 04:00 | night | 35° | down | 93 | 0 / 0 / 93 | 73 | 1.3 | 0.0 | 6.4 | unusable 0.0 |
| 05:00 | night | 25° | down | 99 | 0 / 0 / 99 | 75 | 1.7 | 0.0 | 6.1 | unusable 0.0 |
| 06:00 | astronomical twilight | 17° | down | 100 | 0 / 0 / 100 | 76 | 1.9 | 0.0 | 6.0 | unusable 0.0 |
| 07:00 | civil twilight | 10° | down | 100 | 0 / 0 / 100 | 78 | 3.1 | 0.0 | 5.7 | unusable 0.0 |
Weather: ERA5 reanalysis — what it was. RH above ~90 % with little wind is the fog signature on this ridge.
The 20°/30° limits are the usual photometric ones (airmass ~2.9 / 2.0), not the mechanical limits of any instrument — those, the dome, and the observing schedule are the observatory's to confirm.
2026-10-10.1.All times are local (Europe/Sofia). The night runs from local noon to the next local noon.
curl -sS "https://devops.majbase.com/rozhen-planner/api?target=M31&date=2026-09-14"
curl -sS "https://devops.majbase.com/rozhen-planner/api?target=83.63+22.01" # RA Dec in degrees
curl -sS "https://devops.majbase.com/rozhen-planner/api" # just the night (Sun, Moon, clouds)
{
"night_date": "2026-10-09",
"site": {"name": "NAO Rozhen", "lat": 41.693, "lon": 24.739, "elev_m": 1750},
"night": {"sunset": "…Z", "sunrise": "…Z", "twilight": {"civil": {…}, "nautical": {…}, "astronomical": {…}},
"dark_from": "…Z", "dark_to": "…Z", "dark_hours": 9.55,
"moonrise": "…Z", "moonset": "…Z", "moon": {"illumination": 0.007, "phase": "new moon", "waxing": false},
"moon_free_dark_hours": 9.55},
"target": {"ra": 10.68, "dec": 41.27, "ra_of_date": 11.03, "dec_of_date": 41.41,
"transit": {"t": "…Z", "alt": 89.6, "az": 187.9, "airmass": 1.0},
"good_hours": 9.58, "usable_hours": 9.58, "moon_separation": 144.4,
"verdict": "good", "summary": "…", "resolved": {"name": "M31", "common_name": "Andromeda Galaxy", "type": "AGN"},
"track": [{"t": "…Z", "alt": 12.3, "az": 41.0, "airmass": 4.6}, …]},
"assessment": {"score": 84, "verdict": "good", "headline": "Worth it",
"score_astronomy": 92, "verdict_astronomy": "good", "score_weather": 71, "weather_known": true,
"quality_hours": 3.4,
"best_window": {"label": "good", "start_local": "22:30", "end_local": "02:15", "hours": 3.75, "mean_quality": 0.82},
"windows": [{"label": "marginal", "start_local": "20:30", "end_local": "22:30", …}, …],
"hourly": [{"time": "21:00", "sky": "night", "alt": 45, "moon_alt": -12, "cloud": 20, "low": 5, "mid": 0, "high": 20,
"rh": 71, "wind": 9.4, "precip": 0, "temp": 6.1, "q": 0.78, "label": "good"}, …],
"reasons": ["cloud cover cost 2.1 quality-hours"], "hard_limit": null, "cost": {…}},
"forecast": [...hourly rows...], "forecast_source": "forecast", "forecast_updated_at": "…Z",
"calculation_version": "2026-10-10.1", "warnings": []
}
Three marks: score_astronomy (darkness × altitude × Moon, always known), score_weather (clouds over the dark hours; null without a forecast or history) and score, the overall — null with verdict: "unknown" when the weather is not known, never a geometry-only number dressed up as a promise. Errors: {"error": "…", "code": "target_unresolved"} with HTTP 400 when a target is given but cannot be resolved; an unparseable date is not an error — tonight is used and a warning is added. date is the evening the night starts on, as 2026-10-09, 2026.10.09 or 09.10.2026; omitted = tonight. The response carries night (sunset/sunrise, twilights, dark window, Moon), target (coordinates, transit, dark hours above the limits, Moon separation, verdict of good / marginal / poor / none / never, and the 5-minute track of altitude, azimuth and airmass) and forecast (hourly rows for the night). Times are ISO 8601 UTC.