{"calculation_version":"2026-10-10.1","forecast_source":"history","night_date":"2026-02-28","schedule":[{"end":"2026-02-28T17:15Z","end_local":"19:15","hours":1.08,"mean_quality":0.0,"start":"2026-02-28T16:10Z","start_local":"18:10","target":null},{"end":"2026-02-28T19:10Z","end_local":"21:10","hours":1.92,"mean_quality":0.44,"start":"2026-02-28T17:15Z","start_local":"19:15","target":"M31"},{"end":"2026-03-01T05:00Z","end_local":"07:00","hours":9.83,"mean_quality":0.0,"start":"2026-02-28T19:10Z","start_local":"21:10","target":null}],"targets":[{"best_window":{"end":"2026-02-28T17:55Z","end_local":"19:55","hours":0.17,"label":"good","mean_quality":0.6,"start":"2026-02-28T17:45Z","start_local":"19:45"},"dec":41.26875,"moon_separation":97.2,"name":"M31","quality_hours":0.92,"ra":10.68470833,"resolved":{"common_name":"Andromeda Galaxy","dec":41.26875,"morphology":"SA(s)b","name":"M 31","ra":10.68470833,"simbad_url":"https://simbad.cds.unistra.fr/simbad/sim-id?Ident=M31","source":"sesame","type":"AGN","type_text":"galaxy with an active nucleus","vmag":3.44},"score":14,"score_astronomy":14,"score_weather":100,"transit":{"airmass":1.0,"alt":89.6,"az":128.9,"t":"2026-02-28T12:30Z"},"verdict":"poor","weather_known":true,"windows":[{"end":"2026-02-28T16:40Z","end_local":"18:40","hours":0.5,"label":"unusable","mean_quality":0.0,"start":"2026-02-28T16:10Z","start_local":"18:10"},{"end":"2026-02-28T17:15Z","end_local":"19:15","hours":0.58,"label":"poor","mean_quality":0.1,"start":"2026-02-28T16:40Z","start_local":"18:40"},{"end":"2026-02-28T17:45Z","end_local":"19:45","hours":0.5,"label":"marginal","mean_quality":0.31,"start":"2026-02-28T17:15Z","start_local":"19:15"},{"end":"2026-02-28T17:55Z","end_local":"19:55","hours":0.17,"label":"good","mean_quality":0.6,"start":"2026-02-28T17:45Z","start_local":"19:45"},{"end":"2026-02-28T19:10Z","end_local":"21:10","hours":1.25,"label":"marginal","mean_quality":0.47,"start":"2026-02-28T17:55Z","start_local":"19:55"},{"end":"2026-02-28T19:15Z","end_local":"21:15","hours":0.08,"label":"poor","mean_quality":0.29,"start":"2026-02-28T19:10Z","start_local":"21:10"},{"end":"2026-03-01T05:00Z","end_local":"07:00","hours":9.75,"label":"unusable","mean_quality":0.0,"start":"2026-02-28T19:15Z","start_local":"21:15"}]}],"unscheduled":[],"warnings":[]}
