{"calculation_version":"2026-10-10.1","forecast_source":"history","night_date":"2025-10-20","schedule":[{"end":"2025-10-20T16:35Z","end_local":"19:35","hours":1.08,"mean_quality":0.0,"start":"2025-10-20T15:30Z","start_local":"18:30","target":null},{"end":"2025-10-20T18:00Z","end_local":"21:00","hours":1.42,"mean_quality":0.75,"start":"2025-10-20T16:35Z","start_local":"19:35","target":"M31"},{"end":"2025-10-20T18:30Z","end_local":"21:30","hours":0.5,"mean_quality":0.0,"start":"2025-10-20T18:00Z","start_local":"21:00","target":null},{"end":"2025-10-20T19:00Z","end_local":"22:00","hours":0.5,"mean_quality":0.3,"start":"2025-10-20T18:30Z","start_local":"21:30","target":"M31"},{"end":"2025-10-21T04:45Z","end_local":"07:45","hours":9.75,"mean_quality":0.0,"start":"2025-10-20T19:00Z","start_local":"22:00","target":null}],"targets":[{"best_window":{"end":"2025-10-20T18:00Z","end_local":"21:00","hours":0.92,"label":"good","mean_quality":0.91,"start":"2025-10-20T17:05Z","start_local":"20:05"},"dec":41.26875,"moon_separation":148.9,"name":"M31","quality_hours":1.78,"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":18,"score_astronomy":100,"score_weather":18,"transit":{"airmass":1.0,"alt":89.5,"az":128.3,"t":"2025-10-20T21:05Z"},"verdict":"poor","weather_known":true,"windows":[{"end":"2025-10-20T16:05Z","end_local":"19:05","hours":0.58,"label":"unusable","mean_quality":0.0,"start":"2025-10-20T15:30Z","start_local":"18:30"},{"end":"2025-10-20T16:35Z","end_local":"19:35","hours":0.5,"label":"poor","mean_quality":0.13,"start":"2025-10-20T16:05Z","start_local":"19:05"},{"end":"2025-10-20T17:05Z","end_local":"20:05","hours":0.5,"label":"marginal","mean_quality":0.44,"start":"2025-10-20T16:35Z","start_local":"19:35"},{"end":"2025-10-20T18:00Z","end_local":"21:00","hours":0.92,"label":"good","mean_quality":0.91,"start":"2025-10-20T17:05Z","start_local":"20:05"},{"end":"2025-10-20T18:30Z","end_local":"21:30","hours":0.5,"label":"poor","mean_quality":0.3,"start":"2025-10-20T18:00Z","start_local":"21:00"},{"end":"2025-10-20T19:00Z","end_local":"22:00","hours":0.5,"label":"marginal","mean_quality":0.3,"start":"2025-10-20T18:30Z","start_local":"21:30"},{"end":"2025-10-20T21:00Z","end_local":"00:00","hours":2.0,"label":"poor","mean_quality":0.18,"start":"2025-10-20T19:00Z","start_local":"22:00"},{"end":"2025-10-21T04:45Z","end_local":"07:45","hours":7.75,"label":"unusable","mean_quality":0.0,"start":"2025-10-20T21:00Z","start_local":"00:00"}]}],"unscheduled":[],"warnings":[]}
